From 1590538beb144aacc576728bb6c34512e05a47a8 Mon Sep 17 00:00:00 2001 From: "Jonathan S. Fisher" Date: Sun, 23 Sep 2018 22:44:17 -0500 Subject: [PATCH 1/3] Allow for JMX on ManagedExecutorServices --- .../impl/ManagedExecutorServiceImpl.java | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java b/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java index e710aa8af8e..59831b45379 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java @@ -29,6 +29,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class ManagedExecutorServiceImpl extends AbstractExecutorService implements ManagedExecutorService, DestroyableResource { @@ -59,8 +60,64 @@ public boolean isShutdown() { public boolean isTerminated() { return delegate.isTerminated(); } + + public Integer getCorePoolSize() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getCorePoolSize(); + } else { + return null; + } + } + + public Integer getMaximumPoolSize() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getMaximumPoolSize(); + } else { + return null; + } + } - @Override + public Integer getPoolSize() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getPoolSize(); + } else { + return null; + } + } + + public Integer getActiveCount() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getActiveCount(); + } else { + return null; + } + } + + public Integer getLargestPoolSize() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getLargestPoolSize(); + } else { + return null; + } + } + + public Long getTaskCount() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getTaskCount(); + } else { + return null; + } + } + + public Long getCompletedTaskCount() { + if (delegate instanceof ThreadPoolExecutor) { + return ((ThreadPoolExecutor) delegate).getCompletedTaskCount(); + } else { + return null; + } + } + + @Override public boolean awaitTermination(final long timeout, final TimeUnit unit) throws InterruptedException { return delegate.awaitTermination(timeout, unit); } From 0c36aa3cbf5ca0635bea47f85a9f67dd57c4399f Mon Sep 17 00:00:00 2001 From: "Jonathan S. Fisher" Date: Tue, 25 Sep 2018 13:29:37 -0500 Subject: [PATCH 2/3] Update ManagedExecutorServiceImpl.java --- .../openejb/threads/impl/ManagedExecutorServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java b/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java index 59831b45379..bea9d1dd657 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java @@ -101,9 +101,9 @@ public Integer getLargestPoolSize() { } } - public Long getTaskCount() { + public Long getQueueSize() { if (delegate instanceof ThreadPoolExecutor) { - return ((ThreadPoolExecutor) delegate).getTaskCount(); + return ((ThreadPoolExecutor) delegate).getQueue().size(); } else { return null; } From 8e907820e35c4f6ac666e0a80bfe0be6385c7e1a Mon Sep 17 00:00:00 2001 From: "Jonathan S. Fisher" Date: Tue, 25 Sep 2018 13:34:03 -0500 Subject: [PATCH 3/3] Update ManagedExecutorServiceImpl.java Needs to return an Integer, not a long --- .../apache/openejb/threads/impl/ManagedExecutorServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java b/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java index bea9d1dd657..68b27e88ac3 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java @@ -101,7 +101,7 @@ public Integer getLargestPoolSize() { } } - public Long getQueueSize() { + public Integer getQueueSize() { if (delegate instanceof ThreadPoolExecutor) { return ((ThreadPoolExecutor) delegate).getQueue().size(); } else {