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>


Reply via email to