You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/12/06 08:05:39 UTC

[2/3] james-project git commit: JAMES-2619 remove code in NamedThreadFactory to rely on Guava

JAMES-2619 remove code in NamedThreadFactory to rely on Guava


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b0ebfb66
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b0ebfb66
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b0ebfb66

Branch: refs/heads/master
Commit: b0ebfb66209524cc2406ea508443a1a720da5a4a
Parents: 16e4d9f
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Dec 5 10:49:34 2018 +0100
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Dec 6 15:03:57 2018 +0700

----------------------------------------------------------------------
 .../JMXEnabledScheduledThreadPoolExecutor.java  |  2 +-
 .../JMXEnabledThreadPoolExecutor.java           |  4 +--
 .../util/concurrent/NamedThreadFactory.java     | 33 +++++++++-----------
 ...ledOrderedMemoryAwareThreadPoolExecutor.java |  4 +--
 4 files changed, 19 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b0ebfb66/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java
index 9c3f499..a51e152 100644
--- a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java
+++ b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java
@@ -50,7 +50,7 @@ public class JMXEnabledScheduledThreadPoolExecutor extends ScheduledThreadPoolEx
     }
 
     public JMXEnabledScheduledThreadPoolExecutor(int corePoolSize, String jmxPath, String name) {
-        super(corePoolSize, new NamedThreadFactory(name));
+        super(corePoolSize, NamedThreadFactory.withName(name));
 
         this.jmxPath = jmxPath;
         registerMBean();

http://git-wip-us.apache.org/repos/asf/james-project/blob/b0ebfb66/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java
index 2a42464..c80112a 100644
--- a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java
+++ b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java
@@ -153,7 +153,7 @@ public class JMXEnabledThreadPoolExecutor extends ThreadPoolExecutor implements
      * 
      */
     public static JMXEnabledThreadPoolExecutor newCachedThreadPool(String jmxPath, String name) {
-        return new JMXEnabledThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(), new NamedThreadFactory(name), jmxPath);
+        return new JMXEnabledThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(), NamedThreadFactory.withName(name), jmxPath);
 
     }
 
@@ -174,6 +174,6 @@ public class JMXEnabledThreadPoolExecutor extends ThreadPoolExecutor implements
     }
     
     public static JMXEnabledThreadPoolExecutor newFixedThreadPool(String jmxPath, String name, int nThreads) {
-        return newFixedThreadPool(jmxPath, nThreads, new NamedThreadFactory(name));
+        return newFixedThreadPool(jmxPath, nThreads, NamedThreadFactory.withName(name));
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b0ebfb66/server/container/util/src/main/java/org/apache/james/util/concurrent/NamedThreadFactory.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/concurrent/NamedThreadFactory.java b/server/container/util/src/main/java/org/apache/james/util/concurrent/NamedThreadFactory.java
index 8aeaaf5..f982349 100644
--- a/server/container/util/src/main/java/org/apache/james/util/concurrent/NamedThreadFactory.java
+++ b/server/container/util/src/main/java/org/apache/james/util/concurrent/NamedThreadFactory.java
@@ -19,35 +19,30 @@
 package org.apache.james.util.concurrent;
 
 import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicLong;
 
-/**
- * ThreadPool which use name and a counter for thread names
- */
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
+
 public class NamedThreadFactory implements ThreadFactory {
 
     public final String name;
-    private final AtomicLong count = new AtomicLong();
-    private final int priority;
+    private final ThreadFactory threadFactory;
 
-    public NamedThreadFactory(String name, int priority) {
-        if (priority > Thread.MAX_PRIORITY || priority < Thread.MIN_PRIORITY) {
-            throw new IllegalArgumentException("Priority must be <= " + Thread.MAX_PRIORITY + " and >=" + Thread.MIN_PRIORITY);
-        }
-        this.name = name;
-        this.priority = priority;
+    public static NamedThreadFactory withClassName(Class<?> clazz) {
+        return new NamedThreadFactory(clazz.getName());
     }
 
-    public NamedThreadFactory(String name) {
-        this(name, Thread.NORM_PRIORITY);
+    public static NamedThreadFactory withName(String name) {
+        return new NamedThreadFactory(name);
+    }
+
+    private NamedThreadFactory(String name) {
+        this.name = name;
+        this.threadFactory = new ThreadFactoryBuilder().setNameFormat(name + "-%d").build();
     }
 
     @Override
     public Thread newThread(Runnable r) {
-        Thread t = new Thread(r);
-        t.setName(name + "-" + count.incrementAndGet());
-        t.setPriority(priority);
-        return t;
+        return threadFactory.newThread(r);
     }
 
     public String getName() {
@@ -56,7 +51,7 @@ public class NamedThreadFactory implements ThreadFactory {
 
     @Override
     public String toString() {
-        return "NamedTreadFactory: " + getName();
+        return "NamedThreadFactory: " + getName();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b0ebfb66/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java
index e59a8fb..f0d64df 100644
--- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java
+++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java
@@ -44,13 +44,13 @@ public class JMXEnabledOrderedMemoryAwareThreadPoolExecutor extends OrderedMemor
     private String mbeanName;
     
     public JMXEnabledOrderedMemoryAwareThreadPoolExecutor(int corePoolSize, long maxChannelMemorySize, long maxTotalMemorySize, String jmxPath, String name) {
-        super(corePoolSize, maxChannelMemorySize, maxTotalMemorySize, 30, TimeUnit.SECONDS, new NamedThreadFactory(name));
+        super(corePoolSize, maxChannelMemorySize, maxTotalMemorySize, 30, TimeUnit.SECONDS, NamedThreadFactory.withName(name));
         this.jmxPath = jmxPath;
         registerMBean();
     }
     
     public JMXEnabledOrderedMemoryAwareThreadPoolExecutor(int corePoolSize, long maxChannelMemorySize, long maxTotalMemorySize, long keepAliveTime, TimeUnit unit, String jmxPath, String name) {
-        super(corePoolSize, maxChannelMemorySize, maxTotalMemorySize, keepAliveTime, unit, new NamedThreadFactory(name));
+        super(corePoolSize, maxChannelMemorySize, maxTotalMemorySize, keepAliveTime, unit, NamedThreadFactory.withName(name));
         this.jmxPath = jmxPath;
         registerMBean();
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org