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