Author: davsclaus
Date: Sun Apr 3 12:31:57 2011
New Revision: 1088267
URL: http://svn.apache.org/viewvc?rev=1088267&view=rev
Log:
CAMEL-3831: Added JMX purge operations to various pools and caches. Fixed some
TRACE guard loggings.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultServicePool.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ServicePool.java
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointRegistryTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedProducerCacheTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultServicePool.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultServicePool.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultServicePool.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultServicePool.java
Sun Apr 3 12:31:57 2011
@@ -95,6 +95,10 @@ public abstract class DefaultServicePool
}
}
+ public void purge() {
+ pool.clear();
+ }
+
protected void doStart() throws Exception {
if (log.isDebugEnabled()) {
log.debug("Starting service pool: " + this);
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java
Sun Apr 3 12:31:57 2011
@@ -42,6 +42,13 @@ public class EndpointRegistry extends LR
putAll(endpoints);
}
+ /**
+ * Purges the cache
+ */
+ public void purge() {
+ clear();
+ }
+
@Override
public String toString() {
return "EndpointRegistry for " + context.getName() + ", capacity: " +
getMaxCacheSize();
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=1088267&r1=1088266&r2=1088267&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
Sun Apr 3 12:31:57 2011
@@ -417,6 +417,14 @@ public class ProducerCache extends Servi
return capacity;
}
+ /**
+ * Purges this cache
+ */
+ public synchronized void purge() {
+ producers.clear();
+ pool.purge();
+ }
+
@Override
public String toString() {
return "ProducerCache for source: " + source + ", capacity: " +
getCapacity();
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
Sun Apr 3 12:31:57 2011
@@ -77,7 +77,9 @@ public class InstrumentationProcessor ex
}
protected void recordTime(Exchange exchange, long duration) {
- LOG.trace("{}Recording duration: {} millis for exchange: {}", new
Object[]{type != null ? type + ": " : "", duration, exchange});
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("{}Recording duration: {} millis for exchange: {}", new
Object[]{type != null ? type + ": " : "", duration, exchange});
+ }
if (!exchange.isFailed() && exchange.getException() == null) {
counter.completedExchange(duration);
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java
Sun Apr 3 12:31:57 2011
@@ -19,6 +19,7 @@ package org.apache.camel.management.mbea
import org.apache.camel.CamelContext;
import org.apache.camel.impl.EndpointRegistry;
import org.springframework.jmx.export.annotation.ManagedAttribute;
+import org.springframework.jmx.export.annotation.ManagedOperation;
import org.springframework.jmx.export.annotation.ManagedResource;
/**
@@ -52,4 +53,9 @@ public class ManagedEndpointRegistry ext
return endpointRegistry.getMaxCacheSize();
}
+ @ManagedOperation(description = "Purges the cache")
+ public void purge() {
+ endpointRegistry.purge();
+ }
+
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java
Sun Apr 3 12:31:57 2011
@@ -19,6 +19,7 @@ package org.apache.camel.management.mbea
import org.apache.camel.CamelContext;
import org.apache.camel.impl.ProducerCache;
import org.springframework.jmx.export.annotation.ManagedAttribute;
+import org.springframework.jmx.export.annotation.ManagedOperation;
import org.springframework.jmx.export.annotation.ManagedResource;
/**
@@ -55,4 +56,9 @@ public class ManagedProducerCache extend
return producerCache.getCapacity();
}
+ @ManagedOperation(description = "Purges the cache")
+ public void purge() {
+ producerCache.purge();
+ }
+
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
Sun Apr 3 12:31:57 2011
@@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.CamelContext;
import org.apache.camel.spi.ManagementStrategy;
import org.springframework.jmx.export.annotation.ManagedAttribute;
+import org.springframework.jmx.export.annotation.ManagedOperation;
import org.springframework.jmx.export.annotation.ManagedResource;
/**
@@ -157,4 +158,9 @@ public class ManagedThreadPool {
return threadPool.isShutdown();
}
+ @ManagedOperation(description = "Purges the pool")
+ public void purge() {
+ threadPool.purge();
+ }
+
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
Sun Apr 3 12:31:57 2011
@@ -313,7 +313,9 @@ public class TraceInterceptor extends De
// should we use ordinary or jpa objects
if (tracer.isUseJpa()) {
- LOG.trace("Using class: " + this.jpaTraceEventMessageClassName
+ " for tracing event messages");
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Using class: " +
this.jpaTraceEventMessageClassName + " for tracing event messages");
+ }
// load the jpa event message class
loadJpaTraceEventMessageClass(exchange);
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ServicePool.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ServicePool.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ServicePool.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ServicePool.java
Sun Apr 3 12:31:57 2011
@@ -78,4 +78,9 @@ public interface ServicePool<Key, Servic
*/
int size();
+ /**
+ * Purges the pool.
+ */
+ void purge();
+
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
Sun Apr 3 12:31:57 2011
@@ -114,6 +114,10 @@ public class CustomProducerServicePoolTe
public int size() {
return producer != null ? 1 : 0;
}
+
+ public void purge() {
+ producer = null;
+ }
}
@Override
@@ -147,6 +151,9 @@ public class CustomProducerServicePoolTe
pool.release(endpoint, producer);
assertEquals(1, pool.size());
+ pool.purge();
+ assertEquals(0, pool.size());
+
assertIsInstanceOf(MyPool.class, context.getProducerServicePool());
}
@@ -175,6 +182,9 @@ public class CustomProducerServicePoolTe
assertEquals(2, counter);
assertEquals(1, pool.size());
+
+ pool.purge();
+ assertEquals(0, pool.size());
}
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointRegistryTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointRegistryTest.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointRegistryTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointRegistryTest.java
Sun Apr 3 12:31:57 2011
@@ -60,6 +60,12 @@ public class ManagedEndpointRegistryTest
String source = (String) mbeanServer.getAttribute(on, "Source");
assertTrue(source.startsWith("EndpointRegistry"));
assertTrue(source.endsWith("capacity: 1000"));
+
+ // purge
+ mbeanServer.invoke(on, "purge", null, null);
+
+ current = (Integer) mbeanServer.getAttribute(on, "Size");
+ assertEquals(0, current.intValue());
}
@Override
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedProducerCacheTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedProducerCacheTest.java?rev=1088267&r1=1088266&r2=1088267&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedProducerCacheTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedProducerCacheTest.java
Sun Apr 3 12:31:57 2011
@@ -59,6 +59,12 @@ public class ManagedProducerCacheTest ex
String source = (String) mbeanServer.getAttribute(on, "Source");
assertEquals("sendTo(Endpoint[mock://result])", source);
+
+ // purge
+ mbeanServer.invoke(on, "purge", null, null);
+
+ current = (Integer) mbeanServer.getAttribute(on, "Size");
+ assertEquals(0, current.intValue());
}
@Override