Author: cschneider
Date: Wed Aug 24 09:22:17 2011
New Revision: 1161026

URL: http://svn.apache.org/viewvc?rev=1161026&view=rev
Log:
CAMEL-4358 Move initialization code to management package

Added:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java
Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1161026&r1=1161025&r2=1161026&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 Wed Aug 24 09:22:17 2011
@@ -69,12 +69,9 @@ import org.apache.camel.component.proper
 import org.apache.camel.impl.converter.BaseTypeConverterRegistry;
 import org.apache.camel.impl.converter.DefaultTypeConverter;
 import org.apache.camel.impl.converter.LazyLoadingTypeConverter;
-import org.apache.camel.management.DefaultManagementAgent;
-import org.apache.camel.management.DefaultManagementLifecycleStrategy;
 import org.apache.camel.management.DefaultManagementMBeanAssembler;
-import org.apache.camel.management.DefaultManagementStrategy;
 import org.apache.camel.management.JmxSystemPropertyKeys;
-import org.apache.camel.management.ManagedManagementStrategy;
+import org.apache.camel.management.ManagementStrategyFactory;
 import org.apache.camel.model.Constants;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.RouteDefinition;
@@ -2313,37 +2310,7 @@ public class DefaultCamelContext extends
     }
 
     protected ManagementStrategy createManagementStrategy() {
-        ManagementStrategy answer;
-
-        if (disableJMX || Boolean.getBoolean(JmxSystemPropertyKeys.DISABLED)) {
-            log.info("JMX is disabled. Using DefaultManagementStrategy.");
-            answer = new DefaultManagementStrategy();
-        } else {
-            try {
-                log.info("JMX enabled. Using ManagedManagementStrategy.");
-                answer = new ManagedManagementStrategy(new 
DefaultManagementAgent(this));
-                // must start it to ensure JMX works and can load needed 
Spring JARs
-                startServices(answer);
-                // prefer to have it at first strategy
-                lifecycleStrategies.add(0, new 
DefaultManagementLifecycleStrategy(this));
-            } catch (Exception e) {
-                answer = null;
-                log.warn("Cannot create JMX lifecycle strategy. Fallback to 
using DefaultManagementStrategy (non JMX).", e);
-            }
-        }
-
-        if (answer == null) {
-            log.warn("Cannot use JMX. Fallback to using 
DefaultManagementStrategy (non JMX).");
-            answer = new DefaultManagementStrategy();
-        }
-
-        // inject CamelContext
-        if (answer instanceof CamelContextAware) {
-            CamelContextAware aware = (CamelContextAware) answer;
-            aware.setCamelContext(this);
-        }
-
-        return answer;
+        return new ManagementStrategyFactory().create(this, disableJMX || 
Boolean.getBoolean(JmxSystemPropertyKeys.DISABLED));
     }
 
     @Override

Added: 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java?rev=1161026&view=auto
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java
 (added)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java
 Wed Aug 24 09:22:17 2011
@@ -0,0 +1,36 @@
+package org.apache.camel.management;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ManagementStrategy;
+import org.apache.camel.util.ServiceHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ManagementStrategyFactory {
+    private final transient Logger log = LoggerFactory.getLogger(getClass());
+
+    public ManagementStrategy create(CamelContext context, boolean disableJMX) 
{
+        ManagementStrategy answer = null;
+
+        if (disableJMX || Boolean.getBoolean(JmxSystemPropertyKeys.DISABLED)) {
+            log.info("JMX is disabled. Using DefaultManagementStrategy.");
+        } else {
+            try {
+                log.info("JMX enabled. Using ManagedManagementStrategy.");
+                answer = new ManagedManagementStrategy(new 
DefaultManagementAgent(context));
+                // must start it to ensure JMX works and can load needed 
Spring JARs
+                ServiceHelper.startService(answer);
+                // prefer to have it at first strategy
+                context.getLifecycleStrategies().add(0, new 
DefaultManagementLifecycleStrategy(context));
+            } catch (Exception e) {
+                answer = null;
+                log.warn("Cannot create JMX lifecycle strategy. Fallback to 
using DefaultManagementStrategy (non JMX).", e);
+            }
+        }
+
+        if (answer == null) {
+            answer = new DefaultManagementStrategy();
+        }
+        return answer;
+    }
+}


Reply via email to