You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/09/17 17:25:43 UTC

svn commit: r576477 - in /activemq/camel/trunk: components/camel-spring/src/main/java/org/apache/camel/spring/ components/camel-spring/src/main/resources/org/apache/camel/spring/ examples/camel-example-spring/src/main/resources/META-INF/spring/

Author: jstrachan
Date: Mon Sep 17 08:25:42 2007
New Revision: 576477

URL: http://svn.apache.org/viewvc?rev=576477&view=rev
Log:
enable JMX using a flag on the CamelContextFactoryBean and <camelContext> element to simplify the XML

Removed:
    activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelInstrumentationAgentFactoryBean.java
Modified:
    activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
    activemq/camel/trunk/components/camel-spring/src/main/resources/org/apache/camel/spring/jaxb.index
    activemq/camel/trunk/examples/camel-example-spring/src/main/resources/META-INF/spring/camel-context.xml

Modified: activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java?rev=576477&r1=576476&r2=576477&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java (original)
+++ activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java Mon Sep 17 08:25:42 2007
@@ -19,8 +19,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.management.MBeanServer;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
@@ -31,6 +33,7 @@
 import org.apache.camel.model.IdentifiedType;
 import org.apache.camel.model.RouteContainer;
 import org.apache.camel.model.RouteType;
+import org.apache.camel.spi.InstrumentationAgent;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.DisposableBean;
@@ -63,6 +66,10 @@
     private List<EndpointFactoryBean> endpoints;
     @XmlElement(name = "route", required = false)
     private List<RouteType> routes = new ArrayList<RouteType>();
+    @XmlAttribute(required = false)
+    private Boolean useJmx;
+    @XmlAttribute(required = false)
+    private String mbeanServer;
     @XmlTransient
     private SpringCamelContext context;
     @XmlTransient
@@ -73,6 +80,8 @@
     private ApplicationContext applicationContext;
     @XmlTransient
     private ClassLoader contextClassLoaderOnStart;
+    @XmlTransient
+    private InstrumentationAgent instrumentationAgent;
 
     public CamelContextFactoryBean() {
 
@@ -96,6 +105,18 @@
         // lets force any lazy creation
         getContext().addRouteDefinitions(routes);
 
+        if (instrumentationAgent == null && isJmxEnabled()) {
+            SpringInstrumentationAgent agent = new SpringInstrumentationAgent();
+            agent.setCamelContext(getContext());
+            String name = getMbeanServer();
+            if (name != null) {
+                MBeanServer mbeanServer = (MBeanServer) getApplicationContext().getBean(name, MBeanServer.class);
+                agent.setMBeanServer(mbeanServer);
+            }
+            instrumentationAgent = agent;
+            instrumentationAgent.start();
+        }
+
         LOG.debug("Found JAXB created routes: " + getRoutes());
 
         findRouteBuiders();
@@ -195,6 +216,26 @@
      */
     public void setPackages(String[] packages) {
         this.packages = packages;
+    }
+
+    public String getMbeanServer() {
+        return mbeanServer;
+    }
+
+    public void setMbeanServer(String mbeanServer) {
+        this.mbeanServer = mbeanServer;
+    }
+
+    public boolean isJmxEnabled() {
+        return useJmx != null && useJmx.booleanValue();
+    }
+
+    public Boolean getUseJmx() {
+        return useJmx;
+    }
+
+    public void setUseJmx(Boolean useJmx) {
+        this.useJmx = useJmx;
     }
 
     // Implementation methods

Modified: activemq/camel/trunk/components/camel-spring/src/main/resources/org/apache/camel/spring/jaxb.index
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/resources/org/apache/camel/spring/jaxb.index?rev=576477&r1=576476&r2=576477&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-spring/src/main/resources/org/apache/camel/spring/jaxb.index (original)
+++ activemq/camel/trunk/components/camel-spring/src/main/resources/org/apache/camel/spring/jaxb.index Mon Sep 17 08:25:42 2007
@@ -16,7 +16,6 @@
 ## ------------------------------------------------------------------------
 CamelBeanPostProcessor
 CamelContextFactoryBean
-CamelInstrumentationAgentFactoryBean
 CamelProxyFactoryType
 CamelServiceExporterType
 CamelTemplateFactoryBean

Modified: activemq/camel/trunk/examples/camel-example-spring/src/main/resources/META-INF/spring/camel-context.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-spring/src/main/resources/META-INF/spring/camel-context.xml?rev=576477&r1=576476&r2=576477&view=diff
==============================================================================
--- activemq/camel/trunk/examples/camel-example-spring/src/main/resources/META-INF/spring/camel-context.xml (original)
+++ activemq/camel/trunk/examples/camel-example-spring/src/main/resources/META-INF/spring/camel-context.xml Mon Sep 17 08:25:42 2007
@@ -29,11 +29,8 @@
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
 
-  <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
+  <camelContext useJmx="true" xmlns="http://activemq.apache.org/camel/schema/spring">
     <package>org.apache.camel.example.spring</package>
-
-    <!-- lets enable JMX -->
-    <jmxAgent id="camelJmxAgent"/>
   </camelContext>
 
   <!-- lets configure the default ActiveMQ broker URL -->