Author: davsclaus
Date: Mon Sep  7 08:49:28 2009
New Revision: 812040

URL: http://svn.apache.org/viewvc?rev=812040&view=rev
Log:
CAMEL-1991: Producers are now also managed. Fixed issue with using JMX agent in 
Spring DSL.

Added:
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java
      - copied, changed from r812001, 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterConsumerTest.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultProducerCacheTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
    
camel/trunk/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java 
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java Mon 
Sep  7 08:49:28 2009
@@ -112,7 +112,9 @@
      * @param componentName the name of the component
      * @param factory       used to create a new component instance if the 
component was not previously added.
      * @return the component
+     * @deprecated will be removed in Camel 2.2
      */
+    @Deprecated
     Component getOrCreateComponent(String componentName, Callable<Component> 
factory);
 
     // Endpoint Management Methods
@@ -260,6 +262,7 @@
      * @throws Exception is thrown if the route could not be started for 
whatever reason
      * @deprecated will be removed in Camel 2.2
      */
+    @Deprecated
     void startRoute(RouteDefinition route) throws Exception;
 
     /**
@@ -278,6 +281,7 @@
      * @throws Exception is thrown if the route could not be stopped for 
whatever reason
      * @deprecated will be removed in Camel 2.2
      */
+    @Deprecated
     void stopRoute(RouteDefinition route) throws Exception;
 
     /**
@@ -304,6 +308,7 @@
      * @return the status for the route
      * @deprecated will be removed in Camel 2.2
      */
+    @Deprecated
     ServiceStatus getRouteStatus(RouteDefinition route);
 
     // Properties

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=812040&r1=812039&r2=812040&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
 Mon Sep  7 08:49:28 2009
@@ -1166,6 +1166,8 @@
 
     public void setManagementStrategy(ManagementStrategy managementStrategy) {
         this.managementStrategy = managementStrategy;
+        // should be considered initialized as we use a custom strategy
+        managementStrategyInitialized.set(true);
     }
 
     public InterceptStrategy getDefaultTracer() {

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
 Mon Sep  7 08:49:28 2009
@@ -53,14 +53,14 @@
 
     public DefaultProducerTemplate(CamelContext context) {
         this.context = context;
-        this.producerCache = new 
ProducerCache(context.getProducerServicePool());
+        this.producerCache = new ProducerCache(context);
         this.executor = 
ExecutorServiceHelper.newScheduledThreadPool(DEFAULT_THREADPOOL_SIZE, 
"ProducerTemplate", true);
     }
 
     public DefaultProducerTemplate(CamelContext context, ExecutorService 
executor) {
         this.context = context;
+        this.producerCache = new ProducerCache(context);
         this.executor = executor;
-        this.producerCache = new 
ProducerCache(context.getProducerServicePool());
     }
 
     public DefaultProducerTemplate(CamelContext context, Endpoint 
defaultEndpoint) {

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java 
Mon Sep  7 08:49:28 2009
@@ -18,6 +18,7 @@
 
 import java.util.Map;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
@@ -27,12 +28,11 @@
 import org.apache.camel.ProducerCallback;
 import org.apache.camel.ServicePoolAware;
 import org.apache.camel.spi.ServicePool;
-import org.apache.camel.spi.Synchronization;
 import org.apache.camel.util.LRUCache;
+import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
 import org.apache.camel.util.ServiceHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
 
 /**
  * Cache containing created {...@link Producer}.
@@ -44,15 +44,20 @@
 
     private final Map<String, Producer> producers;
     private final ServicePool<Endpoint, Producer> pool;
+    private final CamelContext context;
 
     // TODO: Have easy configuration of pooling in Camel
 
-    public ProducerCache(ServicePool<Endpoint, Producer> producerServicePool) {
-        this.pool = producerServicePool;
-        this.producers = new LRUCache<String, Producer>(1000);
+    public ProducerCache(CamelContext context) {
+        this(context, context.getProducerServicePool());
+    }
+
+    public ProducerCache(CamelContext context, ServicePool<Endpoint, Producer> 
producerServicePool) {
+        this(context, producerServicePool, new LRUCache<String, 
Producer>(1000));
     }
 
-    public ProducerCache(ServicePool<Endpoint, Producer> producerServicePool, 
Map<String, Producer> cache) {
+    public ProducerCache(CamelContext context, ServicePool<Endpoint, Producer> 
producerServicePool, Map<String, Producer> cache) {
+        this.context = context;
         this.pool = producerServicePool;
         this.producers = cache;
     }
@@ -185,7 +190,8 @@
             // create a new producer
             try {
                 answer = endpoint.createProducer();
-                answer.start();
+                // add it as service to camel context so it can be managed as 
well
+                context.addService(answer);
             } catch (Exception e) {
                 throw new FailedToCreateProducerException(endpoint, e);
             }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java
 Mon Sep  7 08:49:28 2009
@@ -25,7 +25,9 @@
  * A simple processor which just sends the message exchange to the default 
endpoint of the {...@link ProducerTemplate}
  *
  * @version $Revision$
+ * @deprecated not used will be removed in Camel 2.2
  */
+...@deprecated
 public class ProducerTemplateProcessor implements Processor {
     private final ProducerTemplate producerTemplate;
 

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
 Mon Sep  7 08:49:28 2009
@@ -26,10 +26,12 @@
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
+import org.apache.camel.Producer;
 import org.apache.camel.Route;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.spi.InterceptStrategy;
 import org.apache.camel.spi.ManagementNamingStrategy;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * Naming strategy used when registering MBeans.
@@ -43,6 +45,7 @@
     public static final String TYPE_ENDPOINT = "endpoints";
     public static final String TYPE_PROCESSOR = "processors";
     public static final String TYPE_CONSUMER = "consumers";
+    public static final String TYPE_PRODUCER = "producers";
     public static final String TYPE_ROUTE = "routes";
     public static final String TYPE_COMPONENT = "components";
     public static final String TYPE_TRACER = "tracer";
@@ -116,12 +119,33 @@
         buffer.append(domainName).append(":");
         buffer.append(KEY_CONTEXT + 
"=").append(getContextId(context)).append(",");
         buffer.append(KEY_TYPE + "=").append(TYPE_CONSUMER).append(",");
+
+        String name = consumer.getClass().getSimpleName();
+        if (ObjectHelper.isEmpty(name)) {
+            name = "Consumer";
+        }
         buffer.append(KEY_NAME + "=")
-            .append(consumer.getClass().getSimpleName())
+            .append(name)
             .append("(").append(getIdentityHashCode(consumer)).append(")");
         return createObjectName(buffer);
     }
 
+    public ObjectName getObjectNameForProducer(CamelContext context, Producer 
producer) throws MalformedObjectNameException {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append(domainName).append(":");
+        buffer.append(KEY_CONTEXT + 
"=").append(getContextId(context)).append(",");
+        buffer.append(KEY_TYPE + "=").append(TYPE_PRODUCER).append(",");
+
+        String name = producer.getClass().getSimpleName();
+        if (ObjectHelper.isEmpty(name)) {
+            name = "Producer";
+        }
+        buffer.append(KEY_NAME + "=")
+            .append(name)
+            .append("(").append(getIdentityHashCode(producer)).append(")");
+        return createObjectName(buffer);
+    }
+
     public ObjectName getObjectNameForTracer(CamelContext context, 
InterceptStrategy tracer) throws MalformedObjectNameException {
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName).append(":");

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=812040&r1=812039&r2=812040&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
 Mon Sep  7 08:49:28 2009
@@ -24,6 +24,7 @@
 import org.apache.camel.management.mbean.ManagedConsumer;
 import org.apache.camel.management.mbean.ManagedEndpoint;
 import org.apache.camel.management.mbean.ManagedProcessor;
+import org.apache.camel.management.mbean.ManagedProducer;
 import org.apache.camel.management.mbean.ManagedRoute;
 import org.apache.camel.management.mbean.ManagedTracer;
 import org.apache.camel.model.ProcessorDefinition;
@@ -102,6 +103,11 @@
             objectName = 
getManagementNamingStrategy().getObjectNameForConsumer(ms.getContext(), 
ms.getConsumer());
         }
 
+        if (managedObject instanceof ManagedProducer) {
+            ManagedProducer ms = (ManagedProducer) managedObject;
+            objectName = 
getManagementNamingStrategy().getObjectNameForProducer(ms.getContext(), 
ms.getProducer());
+        }
+
         if (managedObject instanceof ManagedTracer) {
             ManagedTracer mt = (ManagedTracer) managedObject;
             objectName = 
getManagementNamingStrategy().getObjectNameForTracer(mt.getCamelContext(), 
mt.getTracer());

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
 Mon Sep  7 08:49:28 2009
@@ -18,7 +18,6 @@
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Producer;
-import org.apache.camel.Route;
 import org.springframework.jmx.export.annotation.ManagedAttribute;
 import org.springframework.jmx.export.annotation.ManagedResource;
 
@@ -40,7 +39,7 @@
     }
 
     @ManagedAttribute(description = "Endpoint Uri")
-    public String getUri() {
+    public String getEndpointUri() {
         return producer.getEndpoint().getEndpointUri();
     }
 

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java 
Mon Sep  7 08:49:28 2009
@@ -87,14 +87,14 @@
         Processor finallyProcessor = null;
 
         if (beforeUri != null) {
-            pipe.add(new SendDefinition(beforeUri));
+            pipe.add(new ToDefinition(beforeUri));
         }
         pipe.addAll(getOutputs());
 
         if (afterUri != null) {
-            pipe.add(new SendDefinition(afterUri));
+            pipe.add(new ToDefinition(afterUri));
         } else if (afterFinallyUri != null) {
-            finallyProcessor = new 
SendDefinition(afterFinallyUri).createProcessor(routeContext);
+            finallyProcessor = new 
ToDefinition(afterFinallyUri).createProcessor(routeContext);
         }
 
         Processor tryProcessor = createOutputsProcessor(routeContext, pipe);

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java 
Mon Sep  7 08:49:28 2009
@@ -36,9 +36,8 @@
  *
  * @version $Revision$
  */
-//@XmlType(name = "sendType")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class SendDefinition<Type extends ProcessorDefinition> extends 
ProcessorDefinition<Type> {
+public abstract class SendDefinition<Type extends ProcessorDefinition> extends 
ProcessorDefinition<Type> {
     @XmlAttribute(required = false)
     protected String uri;
     @XmlAttribute(required = false)

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
 Mon Sep  7 08:49:28 2009
@@ -81,7 +81,7 @@
     protected ProducerCache getProducerCache(Exchange exchange) throws 
Exception {
         // setup producer cache as we need to use the pluggable service pool 
defined on camel context
         if (producerCache == null) {
-            this.producerCache = new 
ProducerCache(exchange.getContext().getProducerServicePool());
+            this.producerCache = new ProducerCache(exchange.getContext());
             this.producerCache.start();
         }
         return this.producerCache;

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java
 Mon Sep  7 08:49:28 2009
@@ -89,7 +89,7 @@
     protected ProducerCache getProducerCache(Exchange exchange) throws 
Exception {
         // setup producer cache as we need to use the pluggable service pool 
defined on camel context
         if (producerCache == null) {
-            this.producerCache = new 
ProducerCache(exchange.getContext().getProducerServicePool());
+            this.producerCache = new ProducerCache(exchange.getContext());
             this.producerCache.start();
         }
         return this.producerCache;

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
 Mon Sep  7 08:49:28 2009
@@ -92,10 +92,10 @@
     protected ProducerCache getProducerCache(Exchange exchange) throws 
Exception {
         // setup producer cache as we need to use the pluggable service pool 
defined on camel context
         if (producerCache == null) {
-            this.producerCache = new 
ProducerCache(exchange.getContext().getProducerServicePool());
-            this.producerCache.start();
+            producerCache = new ProducerCache(exchange.getContext());
+            producerCache.start();
         }
-        return this.producerCache;
+        return producerCache;
     }
 
     public Endpoint getDestination() {
@@ -114,14 +114,12 @@
     }
 
     protected void doStart() throws Exception {
-        if (producerCache != null) {
-            producerCache.start();
-        }
     }
 
     protected void doStop() throws Exception {
         if (producerCache != null) {
             producerCache.stop();
+            producerCache = null;
         }
     }
 

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
 Mon Sep  7 08:49:28 2009
@@ -24,6 +24,7 @@
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
+import org.apache.camel.Producer;
 import org.apache.camel.Route;
 import org.apache.camel.model.ProcessorDefinition;
 
@@ -46,6 +47,8 @@
 
     ObjectName getObjectNameForConsumer(CamelContext context, Consumer 
consumer) throws MalformedObjectNameException;
 
+    ObjectName getObjectNameForProducer(CamelContext context, Producer 
producer) throws MalformedObjectNameException;
+
     ObjectName getObjectNameForTracer(CamelContext context, InterceptStrategy 
tracer) throws MalformedObjectNameException;
 
 }

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultProducerCacheTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultProducerCacheTest.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultProducerCacheTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultProducerCacheTest.java
 Mon Sep  7 08:49:28 2009
@@ -26,7 +26,7 @@
 public class DefaultProducerCacheTest extends ContextTestSupport {
 
     public void testCacheProducers() throws Exception {
-        ProducerCache cache = new 
ProducerCache(context.getProducerServicePool());
+        ProducerCache cache = new ProducerCache(context);
         cache.start();
 
         assertEquals("Size should be 0", 0, cache.size());

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
 Mon Sep  7 08:49:28 2009
@@ -56,6 +56,8 @@
             assertEquals(domainName, mbsc.getDefaultDomain());
         }
 
+        template.sendBody("direct:start", "Hello World");
+
         resolveMandatoryEndpoint("mock:end", MockEndpoint.class);
 
         Set s = mbsc.queryNames(new ObjectName(domainName + 
":type=endpoints,*"), null);
@@ -67,6 +69,12 @@
         s = mbsc.queryNames(new ObjectName(domainName + ":type=processors,*"), 
null);
         assertEquals("Could not find 2 processors: " + s, 2, s.size());
 
+        s = mbsc.queryNames(new ObjectName(domainName + ":type=consumers,*"), 
null);
+        assertEquals("Could not find 1 consumers: " + s, 1, s.size());
+
+        s = mbsc.queryNames(new ObjectName(domainName + ":type=producers,*"), 
null);
+        assertEquals("Could not find 2 producers: " + s, 2, s.size());
+
         s = mbsc.queryNames(new ObjectName(domainName + ":type=routes,*"), 
null);
         assertEquals("Could not find 1 route: " + s, 1, s.size());
     }

Copied: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java
 (from r812001, 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterConsumerTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterConsumerTest.java&r1=812001&r2=812040&rev=812040&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterConsumerTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java
 Mon Sep  7 08:49:28 2009
@@ -22,13 +22,16 @@
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.Producer;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
 
 /**
  * @version $Revision$
  */
-public class ManagedUnregisterConsumerTest extends ContextTestSupport {
+public class ManagedUnregisterProducerTest extends ContextTestSupport {
 
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = new DefaultCamelContext();
@@ -39,20 +42,33 @@
     }
 
     @SuppressWarnings("unchecked")
-    public void testUnregisterConsumer() throws Exception {
+    public void testUnregisterProducer() throws Exception {
+        // send a message so the managed producer is started
+        // do this "manually" to avoid camel manageging the direct:start 
producer as well
+        // this makes the unit test easier as we only have 1 managed producer 
= mock:result
+        Endpoint endpoint = context.getEndpoint("direct:start");
+        Producer producer = endpoint.createProducer();
+        Exchange exchange = endpoint.createExchange();
+        exchange.getIn().setBody("Hello World");
+
+        producer.start();
+        producer.process(exchange);
+        producer.stop();
+
         MBeanServer mbeanServer = 
context.getManagementStrategy().getManagementAgent().getMBeanServer();
 
-        Set<ObjectName> set = mbeanServer.queryNames(new 
ObjectName("*:type=consumers,*"), null);
+        Set<ObjectName> set = mbeanServer.queryNames(new 
ObjectName("*:type=producers,*"), null);
         assertEquals(1, set.size());
 
         ObjectName on = set.iterator().next();
 
         assertTrue("Should be registered", mbeanServer.isRegistered(on));
         String uri = (String) mbeanServer.getAttribute(on, "EndpointUri");
-        assertEquals("direct://start", uri);
+        assertEquals("mock://result", uri);
 
-        String routeId = (String) mbeanServer.getAttribute(on, "RouteId");
-        assertEquals("route1", routeId);
+        // TODO: populating route id on producers is not implemented yet
+//        String routeId = (String) mbeanServer.getAttribute(on, "RouteId");
+//        assertEquals("route1", routeId);
 
         context.stop();
 
@@ -69,4 +85,4 @@
         };
     }
 
-}
+}
\ No newline at end of file

Modified: 
camel/trunk/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java?rev=812040&r1=812039&r2=812040&view=diff
==============================================================================
--- 
camel/trunk/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java
 (original)
+++ 
camel/trunk/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java
 Mon Sep  7 08:49:28 2009
@@ -52,7 +52,7 @@
     protected CamelContext container = new DefaultCamelContext();
     protected CountDownLatch latch = new CountDownLatch(1);
     protected Endpoint endpoint;
-    protected ProducerCache client = new ProducerCache(new 
DefaultProducerServicePool(10));
+    protected ProducerCache client = new ProducerCache(container, new 
DefaultProducerServicePool(10));
 
     public static void main(String[] args) {
         enabled = true;


Reply via email to