Update of /cvsroot/batchserver/batchserver/src/org/jmonks/batchserver/framework/mgmtmntr/jmxmp/repository
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13319
Added Files:
JMXMPRepositoryMgmtMntrManager.java
Log Message:
no message
--- NEW FILE: JMXMPRepositoryMgmtMntrManager.java ---
package org.jmonks.batchserver.framework.mgmtmntr.jmxmp.repository;
import java.io.IOException;
import java.util.HashMap;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;
import org.apache.log4j.Logger;
import org.jmonks.batchserver.framework.JobContext;
import org.jmonks.batchserver.framework.common.StatusCode;
import org.jmonks.batchserver.framework.controller.JobController;
import org.jmonks.batchserver.framework.mgmtmntr.*;
/**
* <p>
* This is the concrete implementation of the MgmtMntrManager, which uses framework repository
* as the lookup place to exchange the connector information between the client and server.
* It uses the machine the job being run as a host machine to create the connector server and
* the port will be chosen automatically by the implementation.
*<br>
* <pre>
* <mgmt-mntr-config mgmt-mntr-class-name="org.jmonks.batchserver.framework.mgmtmntr.jmxmp.repository.JMXMPRepositoryMgmtMntrManager">
* </mgmt-mntr-config>
* </pre>
* </p>
*
* @author Suresh Pragada
* @version 1.0
* @since 1.0
*/
public class JMXMPRepositoryMgmtMntrManager extends MgmtMntrManager
{
private static Logger logger=Logger.getLogger(JMXMPRepositoryMgmtMntrManager.class);
/**
* JMX Messaging Protocol URL to be used to create the connector server.
*/
protected static final String JMXMP_SERVICE_URL = "service:jmx:jmxmp://";
protected JMXConnectorServer connectorServer=null;
/**
* Protected constructor to make sure this class will not be instantiated directly.
*/
protected JMXMPRepositoryMgmtMntrManager()
{
}
/**
* @see org.jmonks.batchserver.framework.mgmtmntr.MgmtMntrManager@init(java.util.Map)
*/
public void init(java.util.Map mgmtMntrManagerConfigProps)
{
logger.trace("Entering init") ;
/**
* This implementation does not require any properties in configuration file
* for lookup information.
*/
logger.trace("Exiting init") ;
}
/**
* @see org.jmonks.batchserver.framework.mgmtmntr.MgmtMntrManager@registerController(org.jmonks.batchserver.framework.controller.JobController)
*/
public boolean registerController(JobController controller)
{
logger.trace("Entering registerController") ;
if(controller==null)
throw new IllegalArgumentException("controller cannot be null for the registration");
boolean registered=false;
try
{
JMXServiceURL jmxServiceURL=new JMXServiceURL(JMXMPRepositoryMgmtMntrManager.JMXMP_SERVICE_URL);
MBeanServer mbeanServer=MBeanServerFactory.createMBeanServer(MgmtMntrManager.MBEAN_SERVER_NAME);
connectorServer=JMXConnectorServerFactory.newJMXConnectorServer(jmxServiceURL, new HashMap(), mbeanServer);
registered=JobContext.getReposiotry().registerJobMgmtMntrInfo(this.getJobName(), jmxServiceURL.toString());
}
catch(IOException exception)
{
exception.printStackTrace();
logger.error(exception.getMessage(),exception);
registered=false;
}
logger.trace("Exiting registerController") ;
return registered;
}
/**
* @see org.jmonks.batchserver.framework.mgmtmntr.MgmtMntrManager@unregisterController(org.jmonks.batchserver.framework.common.StatusCode)
*/
public boolean unregisterController(StatusCode controllerExitStatus)
{
logger.trace("Entering unregisterController") ;
if(controllerExitStatus==null)
throw new IllegalArgumentException("controller exist status code cannot be null to unregister the controller");
boolean unregistered=false;
if(connectorServer!=null)
{
try
{
connectorServer.stop();
unregistered=JobContext.getReposiotry().unregisterJobMgmtMntrInfo(this.getJobName());
}
catch(IOException exception)
{
exception.printStackTrace();
logger.error(exception.getMessage(),exception);
unregistered=false;
}
}
else
unregistered=false;
logger.trace("Exiting unregisterController") ;
return unregistered;
}
}
|