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

svn commit: r579301 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/management/ camel-core/src/test/java/org/apache/camel/management/ compo...

Author: chirino
Date: Tue Sep 25 08:51:35 2007
New Revision: 579301

URL: http://svn.apache.org/viewvc?rev=579301&view=rev
Log:
Appling http://issues.apache.org/activemq/browse/CAMEL-154

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedService.java
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
    activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
    activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
    activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/managment/JmxInstrumentationWithConnectorTest.java
    activemq/camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateTest.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java Tue Sep 25 08:51:35 2007
@@ -36,6 +36,11 @@
  */
 public interface CamelContext extends Service {
 
+    /**
+     * Gets the name of the this context.
+     */
+    String getName();
+
     // Component Management Methods
     //-----------------------------------------------------------------------
 

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Tue Sep 25 08:51:35 2007
@@ -62,7 +62,10 @@
  */
 public class DefaultCamelContext extends ServiceSupport implements CamelContext, Service {
     private static final transient Log LOG = LogFactory.getLog(DefaultCamelContext.class);
+    private static final String NAME_PREFIX = "camel-";
+    private static int NAME_SUFFIX = 0;
 
+    private String name;
     private Map<String, Endpoint> endpoints = new HashMap<String, Endpoint>();
     private Map<String, Component> components = new HashMap<String, Component>();
     private List<Route> routes;
@@ -78,6 +81,7 @@
     private List<RouteType> routeDefinitions = new ArrayList<RouteType>();
 
     public DefaultCamelContext() {
+    	name = NAME_PREFIX + ++NAME_SUFFIX;
     }
 
     /**
@@ -94,7 +98,22 @@
      * Creates the {@link CamelContext} using the given registry
      */
     public DefaultCamelContext(Registry registry) {
+    	this();
         this.registry = registry;
+    }
+
+    /**
+     * Gets the name of the this context.
+     */
+    public String getName() {
+    	return name;
+    }
+
+    /**
+     * Sets the name of the this context.
+     */
+    public void setName(String name) {
+    	this.name = name;
     }
 
     /**

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java Tue Sep 25 08:51:35 2007
@@ -28,14 +28,18 @@
 
 public class CamelNamingStrategy {
     public static final String VALUE_UNKNOWN = "unknown";
-    public static final String KEY_CONTEXT = "context";
-    public static final String KEY_CLASS = "class";
-    public static final String KEY_TYPE = "type";
+    public static final String VALUE_ROUTE = "route";
     public static final String KEY_NAME = "name";
+    public static final String KEY_TYPE = "type";
+    public static final String KEY_CONTEXT = "context";
+    public static final String KEY_GROUP = "group";
+    public static final String KEY_COMPONENT = "component";
+    public static final String KEY_ROUTE_TYPE = "routeType";
     public static final String KEY_ROUTE = "route";
-    public static final String CLASS_ENDPOINTS = "endpoints";
-    public static final String CLASS_SERVICES = "services";
-    public static final String CLASS_ROUTES = "routes";
+    public static final String GROUP_ENDPOINTS = "endpoints";
+    public static final String GROUP_SERVICES = "services";
+    public static final String GROUP_ROUTE_BUILDER = "routeBuilder";
+    public static final String GROUP_ROUTE_TYPE = "routeType";
     protected String domainName;
     protected String hostName = "locahost";
 
@@ -87,7 +91,8 @@
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName + ":");
         buffer.append(KEY_CONTEXT + "=" + getContextId(ep.getContext()) + ",");
-        buffer.append(KEY_CLASS + "=" + CLASS_ENDPOINTS + ",");
+        buffer.append(KEY_GROUP + "=" + GROUP_ENDPOINTS + ",");
+        buffer.append(KEY_COMPONENT + "=" + getComponentId(ep) + ",");
         buffer.append(KEY_NAME + "=" + getEndpointId(ep));
         return createObjectName(buffer);
     }
@@ -105,7 +110,7 @@
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName + ":");
         buffer.append(KEY_CONTEXT + "=" + getContextId(context) + ",");
-        buffer.append(KEY_CLASS + "=" + CLASS_SERVICES + ",");
+        buffer.append(KEY_GROUP + "=" + GROUP_SERVICES + ",");
         buffer.append(KEY_NAME + "=" + Integer.toHexString(mbean.getService().hashCode()));
         return createObjectName(buffer);
     }
@@ -123,12 +128,17 @@
     public ObjectName getObjectName(ManagedRoute mbean) throws MalformedObjectNameException {
         Endpoint ep = mbean.getRoute().getEndpoint();
         String ctxid = ep != null ? getContextId(ep.getContext()) : VALUE_UNKNOWN;
-
+        String cid = getComponentId(ep);
+        String id = VALUE_UNKNOWN.equals(cid) ? getEndpointId(ep) : 
+        	"[" + cid + "]" + getEndpointId(ep);
+        
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName + ":");
         buffer.append(KEY_CONTEXT + "=" + ctxid + ",");
-        buffer.append(KEY_CLASS + "=" + CLASS_ROUTES + ",");
-        buffer.append(KEY_ROUTE + "=" + getEndpointId(ep));
+        buffer.append(KEY_GROUP + "=" + GROUP_ROUTE_BUILDER + ",");
+        buffer.append(KEY_ROUTE_TYPE + "=" + GROUP_ROUTE_TYPE + ",");
+        buffer.append(KEY_ROUTE + "=" + id + ",");
+        buffer.append(KEY_NAME + "=" + VALUE_ROUTE);
         return createObjectName(buffer);
     }
 
@@ -145,8 +155,8 @@
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName + ":");
         buffer.append(KEY_CONTEXT + "=" + getContextId(context) + ",");
-        buffer.append(KEY_CLASS + "=" + CLASS_ROUTES + ",");
-        buffer.append(KEY_ROUTE + "=" + "Route.Counter" + ",");     // TODO: figure out the route id
+        buffer.append(KEY_GROUP + "=" + GROUP_ENDPOINTS + ",");
+        buffer.append(KEY_ROUTE + "=" + "Route.Counter" + ",");
         buffer.append(KEY_NAME + "=" + "Stats");
         return createObjectName(buffer);
     }
@@ -168,15 +178,20 @@
     }
 
     protected String getContextId(CamelContext context) {
-        String id = context != null ? Integer.toString(context.hashCode()) : VALUE_UNKNOWN;
+        String id = context != null ? context.getName() : VALUE_UNKNOWN;
         return hostName + "/" + id;
     }
 
+    protected String getComponentId(Endpoint ep) {
+        String uri = ep.getEndpointUri();
+        int pos = uri.indexOf(':');
+        return (pos == -1) ? VALUE_UNKNOWN : uri.substring(0, pos);
+    }
+    
     protected String getEndpointId(Endpoint ep) {
         String uri = ep.getEndpointUri();
         int pos = uri.indexOf(':');
-        String id = (pos == -1) ? uri :
-                "[" + uri.substring(0, pos) + "]" + uri.substring(pos + 1);
+        String id = (pos == -1) ? uri : uri.substring(pos + 1);
 		if (!ep.isSingleton()) { 
 			id += "." + Integer.toString(ep.hashCode());
 		}

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java Tue Sep 25 08:51:35 2007
@@ -95,12 +95,16 @@
 		PerformanceCounter mc = new PerformanceCounter();
 		routeType.intercept(new InstrumentationProcessor(mc));
 
+		/*
+		 *  Merge performance counter with the MBean it represents instead 
+		 *  of registering a new MBean
 		try {
 			agent.register(mc, getNamingStrategy().getObjectName(context, mc));
 		}
 		catch(JMException e) {
 			LOG.warn("Could not register Counter MBean", e);
 		}
+		*/
 	}
 
     public CamelNamingStrategy getNamingStrategy() {

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedService.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedService.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedService.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedService.java Tue Sep 25 08:51:35 2007
@@ -41,7 +41,7 @@
 	}
 	
 	@ManagedAttribute(description = "Service running state")
-    private boolean isStarted() throws IOException {
+    public boolean isStarted() throws IOException {
     	return service.isStarted();
     }
 

Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java Tue Sep 25 08:51:35 2007
@@ -17,12 +17,9 @@
  */
 package org.apache.camel.management;
 
-import java.io.IOException;
 import java.util.Iterator;
 import java.util.Set;
 
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanInfo;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
@@ -46,7 +43,7 @@
 
     	resolveMandatoryEndpoint("mock:end", MockEndpoint.class);
 
-        ObjectName name = new ObjectName(domainName + ":class=endpoints,*");
+        ObjectName name = new ObjectName(domainName + ":group=endpoints,*");
         Set s = iAgent.getMBeanServer().queryNames(name, null);
 
         if (sleepSoYouCanBrowseInJConsole) {
@@ -62,6 +59,9 @@
 
         resultEndpoint.assertIsSatisfied();
 
+        /* 
+         * Fixme: after stats are merged with the mbean they represent
+         * 
         MBeanServer mbs = iAgent.getMBeanServer();
         ObjectName name = new ObjectName(domainName + ":name=Stats,*");
         Set s = mbs.queryNames(name, null);
@@ -95,6 +95,7 @@
         		"'<domain>:name=Stats,*' key must be of type PerformanceCounter.class", valueofMeanProcessingTime);
         assertTrue(valueofMeanProcessingTime >= valueofMinProcessingTime &&
         		valueofMeanProcessingTime <= valueofMaxProcessingTime);
+         */
     }
 
     protected void enableJmx() {

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=579301&r1=579300&r2=579301&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 Tue Sep 25 08:51:35 2007
@@ -239,7 +239,9 @@
      * Create the context
      */
     protected SpringCamelContext createContext() {
-        return new SpringCamelContext(getApplicationContext());
+    	SpringCamelContext ctx = new SpringCamelContext(getApplicationContext());
+    	ctx.setName(getId());
+    	return ctx;
     }
 
     /**

Modified: activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java (original)
+++ activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java Tue Sep 25 08:51:35 2007
@@ -135,6 +135,7 @@
             Object value = parseUsingJaxb(element, parserContext);
             if (value instanceof CamelContextFactoryBean) {
                 CamelContextFactoryBean factoryBean = (CamelContextFactoryBean)value;
+                builder.addPropertyValue("id", contextId);
                 builder.addPropertyValue("routes", factoryBean.getRoutes());
 
                 if (factoryBean.getPackages().length > 0) {

Modified: activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/managment/JmxInstrumentationWithConnectorTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/managment/JmxInstrumentationWithConnectorTest.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/managment/JmxInstrumentationWithConnectorTest.java (original)
+++ activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/managment/JmxInstrumentationWithConnectorTest.java Tue Sep 25 08:51:35 2007
@@ -34,4 +34,8 @@
 	protected ClassPathXmlApplicationContext createApplicationContext() {
         return new ClassPathXmlApplicationContext("org/apache/camel/spring/management/jmxInstrumentationWithConnector.xml");
 	}
+    
+    public void testGetContext() {
+        assertNotNull(this.applicationContext.getBean("camel"));        
+    }
 }

Modified: activemq/camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateTest.java?rev=579301&r1=579300&r2=579301&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateTest.java (original)
+++ activemq/camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateTest.java Tue Sep 25 08:51:35 2007
@@ -22,8 +22,6 @@
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import static org.apache.camel.language.simple.SimpleLanguage.simple;
-import org.apache.camel.util.ExchangeHelper;
 
 /**
  * @version $Revision: 1.1 $