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 2012/09/27 17:31:45 UTC
svn commit: r1391058 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/impl/ main/java/org/apache/camel/management/
main/java/org/apache/camel/spi/ test/java/org/apache/camel/impl/
Author: davsclaus
Date: Thu Sep 27 15:31:44 2012
New Revision: 1391058
URL: http://svn.apache.org/viewvc?rev=1391058&view=rev
Log:
CAMEL-5658: Added newThread method to executor serivce manager so we can get a thread without a thread pool if needed.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultExecutorServiceManagerTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java?rev=1391058&r1=1391057&r2=1391058&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java Thu Sep 27 15:31:44 2012
@@ -146,6 +146,12 @@ public class DefaultExecutorServiceManag
}
@Override
+ public Thread newThread(String name, Runnable runnable) {
+ ThreadFactory factory = createThreadFactory(name, true);
+ return factory.newThread(runnable);
+ }
+
+ @Override
public ExecutorService newDefaultThreadPool(Object source, String name) {
return newThreadPool(source, name, getDefaultThreadPoolProfile());
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java?rev=1391058&r1=1391057&r2=1391058&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java Thu Sep 27 15:31:44 2012
@@ -405,7 +405,8 @@ public class DefaultManagementAgent exte
// use async thread for starting the JMX Connector
// (no need to use a thread pool or enlist in JMX as this thread is terminated when the JMX connector has been started)
- Thread thread = new Thread(new Runnable() {
+ String threadName = camelContext.getExecutorServiceManager().resolveThreadName("JMXConnector: " + url);
+ Thread thread = getCamelContext().getExecutorServiceManager().newThread(threadName, new Runnable() {
public void run() {
try {
LOG.debug("Staring JMX Connector thread to listen at: {}", url);
@@ -416,9 +417,6 @@ public class DefaultManagementAgent exte
}
}
});
- thread.setDaemon(true);
- String threadName = camelContext.getExecutorServiceManager().resolveThreadName("JMXConnector: " + url);
- thread.setName(threadName);
thread.start();
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java?rev=1391058&r1=1391057&r2=1391058&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java Thu Sep 27 15:31:44 2012
@@ -19,6 +19,7 @@ package org.apache.camel.spi;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadFactory;
import org.apache.camel.ShutdownableService;
@@ -146,6 +147,15 @@ public interface ExecutorServiceManager
long getShutdownAwaitTermination();
/**
+ * Creates a new daemon thread with the given name.
+ *
+ * @param name name which is appended to the thread name
+ * @param runnable a runnable to be executed by new thread instance
+ * @return the created thread
+ */
+ Thread newThread(String name, Runnable runnable);
+
+ /**
* Creates a new thread pool using the default thread pool profile.
*
* @param source the source object, usually it should be <tt>this</tt> passed in as parameter
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultExecutorServiceManagerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultExecutorServiceManagerTest.java?rev=1391058&r1=1391057&r2=1391058&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultExecutorServiceManagerTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultExecutorServiceManagerTest.java Thu Sep 27 15:31:44 2012
@@ -457,6 +457,19 @@ public class DefaultExecutorServiceManag
assertTrue(tp.isShutdown());
}
+ public void testNewThread() throws Exception {
+ Thread thread = context.getExecutorServiceManager().newThread("Cool", new Runnable() {
+ @Override
+ public void run() {
+ // noop
+ }
+ });
+
+ assertNotNull(thread);
+ assertTrue(thread.isDaemon());
+ assertTrue(thread.getName().contains("Cool"));
+ }
+
// this is a manual test, by looking at the logs
public void xxxTestLongShutdownOfThreadPool() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);