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


Reply via email to