You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2004/07/02 17:46:52 UTC
svn commit: rev 22484 - in avalon/trunk/planet/facilities/jmx: mx4j mx4j/src/java/org/apache/avalon/jmx/mx4j spi/src/java/org/apache/avalon/jmx/spi test test/etc
Author: mcconnell
Date: Fri Jul 2 08:46:51 2004
New Revision: 22484
Removed:
avalon/trunk/planet/facilities/jmx/mx4j/src/java/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.xconfig
avalon/trunk/planet/facilities/jmx/test/etc/
Modified:
avalon/trunk/planet/facilities/jmx/mx4j/build.xml
avalon/trunk/planet/facilities/jmx/mx4j/src/java/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java
avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractComponentRegistrationManager.java
avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractJMXComponentRegistrationManager.java
avalon/trunk/planet/facilities/jmx/test/build.xml
Log:
Simplify the build and implementation of the jmx facility.
Modified: avalon/trunk/planet/facilities/jmx/mx4j/build.xml
==============================================================================
--- avalon/trunk/planet/facilities/jmx/mx4j/build.xml (original)
+++ avalon/trunk/planet/facilities/jmx/mx4j/build.xml Fri Jul 2 08:46:51 2004
@@ -9,7 +9,19 @@
<target name="build" depends="standard.build">
<x:block name="jmx" embed="MAIN">
<x:component name="registry"
- class="org.apache.avalon.jmx.mx4j.MX4JComponentRegistrationManager"/>
+ class="org.apache.avalon.jmx.mx4j.MX4JComponentRegistrationManager">
+ <x:parameters>
+ <x:parameter name="manager-adaptor-host" value="localhost"/>
+ <x:parameter name="manager-adaptor-port" value="8082"/>
+ <x:parameter name="enable-rmi-adaptor" value="false"/>
+ <!--
+ <x:parameter name="rmi-naming-factory" value="com.sun.jndi.rmi.registry.RegistryContextFactory"/>
+ <x:parameter name="stylesheets-dir" value="conf/xsl"/>
+ <x:parameter name="user" value=""/>
+ <x:parameter name="password" value=""/>
+ -->
+ </x:parameters>
+ </x:component>
</x:block>
</target>
Modified: avalon/trunk/planet/facilities/jmx/mx4j/src/java/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java
==============================================================================
--- avalon/trunk/planet/facilities/jmx/mx4j/src/java/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java (original)
+++ avalon/trunk/planet/facilities/jmx/mx4j/src/java/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java Fri Jul 2 08:46:51 2004
@@ -28,9 +28,9 @@
import javax.management.ObjectName;
import javax.management.ReflectionException;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
@@ -51,10 +51,10 @@
* @version $Revision: 1.2 $
*
* @avalon.component name="jmx-mx4j-manager" lifestyle="singleton"
- * @avalon.service type="org.apache.avalon.jmx.ComponentRegistrationManager"
+ * @avalon.service type="org.apache.avalon.jmx.ComponentRegistrationManager"
+ * @avalon.attribute key="urn:composition:deployment.timeout" value="6000"
*/
public class MX4JComponentRegistrationManager extends AbstractJMXComponentRegistrationManager
- implements Contextualizable, Configurable
{
private static final Resources REZ =
ResourceManager.getPackageResources( MX4JComponentRegistrationManager.class );
@@ -72,84 +72,48 @@
private String m_namingFactory;
private String m_password;
private String m_username;
-
- /*
- public MX4JComponentRegistrationManager(
- final Context context, final Configuration configuration, ServiceManager manager )
- {
- }
+
+ /**
+ * @avalon.entry key="urn:avalon:home" type="java.io.File"
*/
-
- /**
- * @avalon.entry key="urn:avalon:home" type="java.io.File"
- */
- public void contextualize( Context context ) throws ContextException
- {
- m_homeDir = ( File ) context.get( "urn:avalon:home" );
- }
-
- public void configure( final Configuration configuration ) throws ConfigurationException
- {
- m_host = configuration.getChild( "manager-adaptor-host" ).getValue(
- DEFAULT_HTTPADAPTER_HOST );
-
- m_port = configuration.getChild( "manager-adaptor-port" ).getValueAsInteger(
- DEFAULT_HTTPADAPTER_PORT );
-
- //This is for backwards compatability with old-style
- //RI JMX implementation
- m_port = configuration.getChild( "port" ).getValueAsInteger( m_port );
-
- getLogger().debug( "MX4J HTTP listener port: " + m_port );
-
- m_rmi = configuration.getChild( "enable-rmi-adaptor" ).getValueAsBoolean( false );
-
- m_namingFactory = configuration.getChild( "rmi-naming-factory" ).getValue(
- DEFAULT_NAMING_FACTORY );
-
- final String stylesheets =
- configuration.getChild( "stylesheets-dir" ).getValue( null );
- if ( null != stylesheets )
- {
- m_stylesheetDir = new File( m_homeDir, stylesheets ).getAbsolutePath();
- }
-
- /*
- * <user>
- * <name>user</name>
- * <password>passwd</password>
- * </user>
- */
- final Configuration userConfig = configuration.getChild( "user" );
- m_username = userConfig.getChild( "name" ).getValue( null );
- m_password = userConfig.getChild( "password" ).getValue( null );
- }
-
- public void initialize() throws Exception
- {
- super.initialize();
-
- final MBeanServer mBeanServer = getMBeanServer();
-
- startHttpAdaptor( mBeanServer );
-
- if ( m_rmi )
- {
- startRMIAdaptor( mBeanServer );
- }
+ public MX4JComponentRegistrationManager(
+ final Logger logger, final Context context, final Parameters parameters )
+ throws Exception
+ {
+ super( logger );
+
+ m_homeDir = ( File ) context.get( "urn:avalon:home" );
+ m_host = parameters.getParameter( "manager-adaptor-host", DEFAULT_HTTPADAPTER_HOST );
+ m_port = parameters.getParameterAsInteger( "manager-adaptor-port", DEFAULT_HTTPADAPTER_PORT );
+ getLogger().debug( "MX4J HTTP listener port: " + m_port );
+ m_rmi = parameters.getParameterAsBoolean( "enable-rmi-adaptor", false );
+ m_namingFactory = parameters.getParameter( "rmi-naming-factory", DEFAULT_NAMING_FACTORY );
+
+ final String stylesheets = parameters.getParameter( "stylesheets-dir", null );
+ if ( null != stylesheets )
+ {
+ m_stylesheetDir = new File( m_homeDir, stylesheets ).getAbsolutePath();
+ }
+
+ m_username = parameters.getParameter( "name", null );
+ m_password = parameters.getParameter( "password", null );
+
+ final MBeanServer mBeanServer = getMBeanServer();
+ startHttpAdaptor( mBeanServer );
+ if( m_rmi )
+ {
+ startRMIAdaptor( mBeanServer );
+ }
}
public void dispose()
{
final MBeanServer mBeanServer = getMBeanServer();
-
stopHttpAdaptor( mBeanServer );
-
if ( m_rmi )
{
stopRMIAdaptor( mBeanServer );
}
-
super.dispose();
}
Modified: avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractComponentRegistrationManager.java
==============================================================================
--- avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractComponentRegistrationManager.java (original)
+++ avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractComponentRegistrationManager.java Fri Jul 2 08:46:51 2004
@@ -22,7 +22,7 @@
import org.apache.avalon.composition.model.ComponentModel;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.jmx.ComponentRegistrationManager;
import org.apache.avalon.jmx.ComponentRegistrationException;
@@ -37,15 +37,23 @@
* @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
* @version $Revision: 1.3 $
*/
-public abstract class AbstractComponentRegistrationManager extends AbstractLogEnabled
+public abstract class AbstractComponentRegistrationManager
implements ComponentRegistrationManager
{
private static final Resources REZ = ResourceManager.getPackageResources(
AbstractComponentRegistrationManager.class );
- private Map m_entries = Collections.synchronizedMap( new HashMap() );
-
+ private Map m_entries = Collections.synchronizedMap( new HashMap() );
+
+ private final Logger m_logger;
+
+ public AbstractComponentRegistrationManager( final Logger logger )
+ throws Exception
+ {
+ m_logger = logger;
+ }
+
public void register( ComponentModel componentModel )
throws ComponentRegistrationException
{
@@ -217,6 +225,11 @@
verifyInterface( clazz );
}
+ }
+
+ protected Logger getLogger()
+ {
+ return m_logger;
}
}
Modified: avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractJMXComponentRegistrationManager.java
==============================================================================
--- avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractJMXComponentRegistrationManager.java (original)
+++ avalon/trunk/planet/facilities/jmx/spi/src/java/org/apache/avalon/jmx/spi/AbstractJMXComponentRegistrationManager.java Fri Jul 2 08:46:51 2004
@@ -28,8 +28,9 @@
import org.apache.avalon.composition.model.ComponentModel;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.jmx.ComponentRegistrationException;
import org.apache.avalon.jmx.util.MBeanInfoBuilder;
@@ -44,24 +45,31 @@
* @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
* @version $Revision: 1.1 $
*/
-public abstract class AbstractJMXComponentRegistrationManager extends AbstractComponentRegistrationManager
- implements Initializable, Disposable
+public abstract class AbstractJMXComponentRegistrationManager
+ extends AbstractComponentRegistrationManager
+ implements Disposable
{
private static final Resources REZ = ResourceManager.getPackageResources(
AbstractJMXComponentRegistrationManager.class );
private MBeanInfoBuilder topicBuilder;
private MBeanServer m_mBeanServer;
- private String m_domain = "Merlin";
-
- public void initialize() throws Exception
- {
- final MBeanServer mBeanServer = createMBeanServer();
- setMBeanServer( mBeanServer );
-
- topicBuilder = new MBeanInfoBuilder();
- setupLogger( topicBuilder );
- }
+ private String m_domain = "Merlin";
+
+ public AbstractJMXComponentRegistrationManager( final Logger logger )
+ throws Exception
+ {
+ super( logger );
+
+ final MBeanServer mBeanServer = createMBeanServer();
+ setMBeanServer( mBeanServer );
+ topicBuilder = new MBeanInfoBuilder();
+
+ if( topicBuilder instanceof LogEnabled )
+ {
+ ( (LogEnabled)topicBuilder).enableLogging( logger );
+ }
+ }
public void dispose()
{
@@ -114,15 +122,15 @@
while ( i.hasNext() )
{
- final ObjectName objectName = createObjectName( name,
- target.getTopic( ( String ) i.next() ) );
-
+ final ObjectName objectName =
+ createObjectName( name, target.getTopic( ( String ) i.next() ) );
getMBeanServer().unregisterMBean( objectName );
}
}
catch ( final Exception e )
{
- final String message = REZ.getString( "jmxmanager.error.unexport.fail", name );
+ final String message =
+ REZ.getString( "jmxmanager.error.unexport.fail", name );
getLogger().error( message, e );
throw new ComponentRegistrationException( message, e );
}
@@ -173,8 +181,10 @@
{
if ( getLogger().isDebugEnabled() )
{
- final String message = REZ.getString( "jmxmanager.debug.interface",
- allInterfaces[i].getName() );
+ final String message =
+ REZ.getString(
+ "jmxmanager.debug.interface",
+ allInterfaces[i].getName() );
getLogger().debug( message );
}
@@ -326,7 +336,8 @@
}
catch ( Exception e )
{
- final String message = REZ.getString( "jmxmanager.error.mbean.load.class", className );
+ final String message =
+ REZ.getString( "jmxmanager.error.mbean.load.class", className );
getLogger().error( message, e );
throw new ComponentRegistrationException( message, e );
}
@@ -340,7 +351,8 @@
}
catch ( final Exception e )
{
- final String message = REZ.getString( "jmxmanager.error.mbean.instantiate", className );
+ final String message =
+ REZ.getString( "jmxmanager.error.mbean.instantiate", className );
getLogger().error( message, e );
throw new ComponentRegistrationException( message, e );
}
@@ -355,7 +367,8 @@
}
catch ( Exception e )
{
- final String message = REZ.getString( "jmxmanager.error.mbean.set.resource", className );
+ final String message =
+ REZ.getString( "jmxmanager.error.mbean.set.resource", className );
getLogger().error( message, e );
throw new ComponentRegistrationException( message, e );
}
Modified: avalon/trunk/planet/facilities/jmx/test/build.xml
==============================================================================
--- avalon/trunk/planet/facilities/jmx/test/build.xml (original)
+++ avalon/trunk/planet/facilities/jmx/test/build.xml Fri Jul 2 08:46:51 2004
@@ -6,5 +6,19 @@
<property file="build.properties"/>
<import file="${project.system}/build/standard.xml"/>
+ <target name="build" depends="standard.build">
+ <x:block name="jmx" embed="MAIN">
+ <x:component name="mx4j"
+ class="org.apache.avalon.jmx.mx4j.MX4JComponentRegistrationManager">
+ <x:parameters>
+ <x:parameter name="enable-rmi-adaptor" value="true"/>
+ <x:parameter name="rmi-naming-factory" value="com.sun.jndi.rmi.registry.RegistryContextFactory"/>
+ </x:parameters>
+ </x:component>
+ <x:component name="test" class="org.apache.avalon.playground.jmxtest.JMXTestComponent"/>
+ <x:component name="handler" class="org.apache.avalon.jmx.handler.JmxManagementHandler"/>
+ </x:block>
+ </target>
+
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org