Author: davsclaus Date: Sun Mar 7 10:17:24 2010 New Revision: 919962 URL: http://svn.apache.org/viewvc?rev=919962&view=rev Log: Spring XML configuration of custom management made easier with using constructor parameters.
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/jmxInstrumentationWithConnector.xml Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java?rev=919962&r1=919961&r2=919962&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java Sun Mar 7 10:17:24 2010 @@ -23,6 +23,7 @@ import javax.management.JMException; import org.apache.camel.CamelContext; +import org.apache.camel.CamelContextAware; import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Endpoint; @@ -81,16 +82,27 @@ * @see org.apache.camel.spi.ManagementStrategy * @version $Revision$ */ -public class DefaultManagementLifecycleStrategy implements LifecycleStrategy, Service { +public class DefaultManagementLifecycleStrategy implements LifecycleStrategy, Service, CamelContextAware { private static final Log LOG = LogFactory.getLog(DefaultManagementLifecycleStrategy.class); private final Map<Processor, KeyValueHolder<ProcessorDefinition, InstrumentationProcessor>> wrappedProcessors = new HashMap<Processor, KeyValueHolder<ProcessorDefinition, InstrumentationProcessor>>(); - private final CamelContext context; + private CamelContext camelContext; private boolean initialized; - public DefaultManagementLifecycleStrategy(CamelContext context) { - this.context = context; + public DefaultManagementLifecycleStrategy() { + } + + public DefaultManagementLifecycleStrategy(CamelContext camelContext) { + this.camelContext = camelContext; + } + + public CamelContext getCamelContext() { + return camelContext; + } + + public void setCamelContext(CamelContext camelContext) { + this.camelContext = camelContext; } public void onContextStart(CamelContext context) { @@ -365,7 +377,7 @@ } for (Route route : routes) { - ManagedRoute mr = new ManagedRoute(context, route); + ManagedRoute mr = new ManagedRoute(camelContext, route); mr.init(getManagementStrategy()); // skip already managed routes, for example if the route has been restarted @@ -472,7 +484,7 @@ // that then delegates to the real mbean which we register later in the onServiceAdd method DelegatePerformanceCounter pc = new DelegatePerformanceCounter(); // set statistics enabled depending on the option - boolean enabled = context.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.All; + boolean enabled = camelContext.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.All; pc.setStatisticsEnabled(enabled); // and add it as a a registered counter that will be used lazy when Camel @@ -516,10 +528,11 @@ } private ManagementStrategy getManagementStrategy() { - return context.getManagementStrategy(); + return camelContext.getManagementStrategy(); } public void start() throws Exception { + ObjectHelper.notNull(camelContext, "CamelContext"); } public void stop() throws Exception { Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java?rev=919962&r1=919961&r2=919962&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java Sun Mar 7 10:17:24 2010 @@ -51,6 +51,9 @@ private static final Log LOG = LogFactory.getLog(ManagedManagementStrategy.class); + public ManagedManagementStrategy() { + } + public ManagedManagementStrategy(CamelContext camelContext) { this(new DefaultManagementAgent(camelContext)); } Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/jmxInstrumentationWithConnector.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/jmxInstrumentationWithConnector.xml?rev=919962&r1=919961&r2=919962&view=diff ============================================================================== --- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/jmxInstrumentationWithConnector.xml (original) +++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/jmxInstrumentationWithConnector.xml Sun Mar 7 10:17:24 2010 @@ -22,54 +22,48 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd "> - <!-- START SNIPPET: example --> - <bean id="agent" class="org.apache.camel.management.DefaultManagementAgent"> - <property name="MBeanServer" ref="mbeanServer"/> - <!-- From Camel 2.3.0, you need to set the camelContext property of DefaultManagementAgent --> - <property name="camelContext" ref="camel" /> - </bean> + <!-- START SNIPPET: example --> + <bean id="agent" class="org.apache.camel.management.DefaultManagementAgent"> + <property name="MBeanServer" ref="mbeanServer"/> + </bean> <bean id="managementStrategy" class="org.apache.camel.management.ManagedManagementStrategy"> - <constructor-arg index="0"><ref bean="agent"/></constructor-arg> + <property name="managementAgent" ref="agent"/> + </bean> + + <bean id="mybean" class="org.apache.camel.spring.example.DummyBean"> + <property name="endpoint" ref="endpoint1"/> + </bean> + + <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> + <endpoint id="endpoint1" uri="direct:start"/> + <endpoint id="endpoint2" uri="mock:end"/> + + <route> + <from ref="endpoint1"/> + <to ref="endpoint2"/> + </route> + </camelContext> + + <!-- + this bean needs to be eagerly pre-instantiated in order for the exporting to occur; + this means that it must not be marked as lazily initialized + --> + <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"> + <property name="defaultDomain" value="org.apache.camel.test"/> + </bean> + + <bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> + <property name="port" value="9877"/> + </bean> + + <bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean" + depends-on="registry"> + <property name="objectName" value="connector:name=rmi"/> + <property name="serviceUrl" value="service:jmx:rmi:///jndi/rmi://localhost:9877/jmxrmi"/> + <property name="threaded" value="true"/> + <property name="daemon" value="true"/> </bean> - - <bean id="lifeCycleStrategy" class="org.apache.camel.management.DefaultManagementLifecycleStrategy"> - <constructor-arg index="0" ref="camel"/> - </bean> - - <bean id="mybean" class="org.apache.camel.spring.example.DummyBean"> - <property name="endpoint" ref="endpoint1"/> - </bean> - - <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> - <beanPostProcessor/> - <endpoint id="endpoint1" uri="direct:start"/> - <endpoint id="endpoint2" uri="mock:end"/> - - <route> - <from ref="endpoint1"/> - <to ref="endpoint2"/> - </route> - </camelContext> - - <!-- - this bean needs to be eagerly pre-instantiated in order for the exporting to occur; - this means that it must not be marked as lazily initialized - --> - <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"> - <property name="defaultDomain" value="org.apache.camel.test"/> - </bean> - <bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> - <property name="port" value="9877"/> - </bean> - <bean id="serverConnector" - class="org.springframework.jmx.support.ConnectorServerFactoryBean" depends-on="registry"> - <property name="objectName" value="connector:name=rmi"/> - <property name="serviceUrl" - value="service:jmx:rmi:///jndi/rmi://localhost:9877/jmxrmi"/> - <property name="threaded" value="true"/> - <property name="daemon" value="true"/> - </bean> - <!-- END SNIPPET: example --> + <!-- END SNIPPET: example --> </beans>