You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/09/07 10:49:29 UTC
svn commit: r812040 - in /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/main/java/org/apache/camel/management/mbean/ camel-co...
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;