leosimons 01/04/16 07:09:39 Modified: proposal/4.0/src/java/org/apache/phoenix/engine/facilities ManagerImpl.java Log: adding rudimentary jmx support Revision Changes Path 1.2 +78 -29 jakarta-avalon-phoenix/proposal/4.0/src/java/org/apache/phoenix/engine/facilities/ManagerImpl.java Index: ManagerImpl.java =================================================================== RCS file: /home/cvs/jakarta-avalon-phoenix/proposal/4.0/src/java/org/apache/phoenix/engine/facilities/ManagerImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ManagerImpl.java 2001/04/06 15:41:30 1.1 +++ ManagerImpl.java 2001/04/16 14:09:38 1.2 @@ -8,58 +8,107 @@ package org.apache.phoenix.engine.facilities; import javax.management.MBeanServer; +import javax.management.ObjectName; +import org.apache.phoenix.facilities.Manager; +import org.apache.phoenix.core.Kernel; +import org.apache.phoenix.core.Embeddor; import org.apache.framework.context.Context; +import org.apache.framework.context.ContextException; import org.apache.framework.configuration.Configuration; +import org.apache.framework.lifecycle.StartException; +import org.apache.framework.lifecycle.StopException; -import org.apache.phoenix.facilities.Manager; +import org.apache.avalon.camelot.Deployer; import org.apache.log.Logger; +import org.apache.jmx.introspector.DynamicMBeanFactory; + /** * * @author <a href="mailto:[EMAIL PROTECTED]">Leo Simons</a> */ public class ManagerImpl implements Manager { + private MBeanServer mBeanServer; + private Logger logger; + private Embeddor embeddor; + private Deployer deployer; + private Kernel kernel; + public ManagerImpl() { } - public ManagerImpl( MBeanServer mBeanServer ) - { - } ///////////////////////// /// LIFECYCLE METHODS /// ///////////////////////// public void setLogger( Logger logger ) - { - } - public void contextualize( Context context ) - { - } - public void configure( Configuration configuration ) - { - } - public void init() - { - } - public void start() - { - } - public void run() - { - } - public void suspend() - { - } - public void resume() - { - } - public void stop() { + this.logger = logger; } - public void dispose() + public void contextualize( Context context ) throws ContextException { + try { this.mBeanServer = (MBeanServer)context.get( "javax.management.MBeanServer" ); } + catch( Exception e ) { + logger.error( "Invalid context - no MBeanServer supplied", e ); + throw new ContextException( "Invalid context - no MBeanServer supplied", e ); } + try { this.embeddor = (Embeddor)context.get( "org.apache.framework.atlantis.core.Embeddor" ); } + catch( Exception e ) { + logger.error( "Invalid context - no Embeddor supplied", e ); + throw new ContextException( "Invalid context - no Embeddor supplied", e ); } + try { this.kernel = (Kernel)context.get( "org.apache.framework.atlantis.core.Kernel" ); } + catch( Exception e ) { + logger.error( "Invalid context - no Kernel supplied", e ); + throw new ContextException( "Invalid context - no Kernel supplied", e ); } + try { this.deployer = (Deployer)context.get( "org.apache.avalon.camelot.Deployer" ); } + catch( Exception e ) { + logger.error( "Invalid context - no Deployer supplied", e ); + throw new ContextException( "Invalid context - no Deployer supplied", e ); } + } + public void start() throws StartException + { + try + { + mBeanServer.registerMBean( + DynamicMBeanFactory.create( embeddor ), + new ObjectName( "Embeddor" ) ); + } + catch( Exception e ) { logger.error( "Unable to register MBean for Embeddor", e ); } + try + { + mBeanServer.registerMBean( + DynamicMBeanFactory.create( deployer ), + new ObjectName( "Deployer" ) ); + } + catch( Exception e ) { logger.error( "Unable to register MBean for Deployer", e ); } + try + { + mBeanServer.registerMBean( + DynamicMBeanFactory.create( kernel ), + new ObjectName( "Kernel" ) ); + } + catch( Exception e ) { logger.error( "Unable to register MBean for Kernel", e ); } + try + { + mBeanServer.registerMBean( + DynamicMBeanFactory.create( logger ), + new ObjectName( "Logger" ) ); + } + catch( Exception e ) { logger.error( "Unable to register MBean for Logger", e ); } + } + public void stop() throws StopException + { + try { + mBeanServer.unregisterMBean( new ObjectName( "Embeddor" ) ); + mBeanServer.unregisterMBean( new ObjectName( "Kernel" ) ); + mBeanServer.unregisterMBean( new ObjectName( "Deployer" ) ); + mBeanServer.unregisterMBean( new ObjectName( "Logger" ) ); + } + catch( Exception e ) + { + logger.error( "error unregistering MBeans", e ); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]