Allow for JMX on ManagedExecutorServices

Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/33b4c815
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/33b4c815
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/33b4c815

Branch: refs/heads/tomee-7.1.x
Commit: 33b4c8152eb679e1840699ed0928773883a2f9f6
Parents: 43774cc
Author: Jonathan S. Fisher <exabr...@gmail.com>
Authored: Sun Sep 23 22:44:17 2018 -0500
Committer: Jonathan S. Fisher <exabr...@gmail.com>
Committed: Sat Nov 3 14:22:30 2018 -0500

----------------------------------------------------------------------
 .../impl/ManagedExecutorServiceImpl.java        | 59 +++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/33b4c815/container/openejb-core/src/main/java/org/apache/openejb/threads/impl/ManagedExecutorServiceImpl.java
----------------------------------------------------------------------
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 e710aa8..59831b4 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.AbstractExecutorService;
 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 class ManagedExecutorServiceImpl extends 
AbstractExecutorService implemen
     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);
     }

Reply via email to