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 -->