Author: davsclaus
Date: Thu Mar 7 13:48:26 2013
New Revision: 1453867
URL: http://svn.apache.org/r1453867
Log:
CAMEL-6140: Added mbean attribute for getTaskQueueRemainingCapacity for thread
pools. Thanks to Pat Fox for the patch.
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedThreadPoolTest.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1453865
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java?rev=1453867&r1=1453866&r2=1453867&view=diff
==============================================================================
---
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java
(original)
+++
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java
Thu Mar 7 13:48:26 2013
@@ -78,4 +78,7 @@ public interface ManagedThreadPoolMBean
@ManagedOperation(description = "Purges the pool")
void purge();
+ @ManagedOperation(description = "Returns the number of additional elements
that the Task queue can"
+ + " ideally (in the absence of memory or resource constraints)
accept")
+ int getTaskQueueRemainingCapacity();
}
\ No newline at end of file
Modified:
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java?rev=1453867&r1=1453866&r2=1453867&view=diff
==============================================================================
---
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
(original)
+++
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThreadPool.java
Thu Mar 7 13:48:26 2013
@@ -143,4 +143,13 @@ public class ManagedThreadPool implement
threadPool.purge();
}
+ public int getTaskQueueRemainingCapacity() {
+ if (threadPool.getQueue() != null) {
+ return threadPool.getQueue().remainingCapacity();
+ } else {
+ // no queue found, so no capacity
+ return 0;
+ }
+ }
+
}
Modified:
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedThreadPoolTest.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedThreadPoolTest.java?rev=1453867&r1=1453866&r2=1453867&view=diff
==============================================================================
---
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedThreadPoolTest.java
(original)
+++
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedThreadPoolTest.java
Thu Mar 7 13:48:26 2013
@@ -67,6 +67,9 @@ public class ManagedThreadPoolTest exten
Boolean empty = (Boolean) mbeanServer.getAttribute(on,
"TaskQueueEmpty");
assertEquals(true, empty.booleanValue());
+
+ int remainingCapacity = (Integer) mbeanServer.invoke(on,
"getTaskQueueRemainingCapacity", null, null);
+ assertEquals("remainingCapacity", 200, remainingCapacity);
}
@Override
@@ -74,7 +77,7 @@ public class ManagedThreadPoolTest exten
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("direct:start").threads(15, 30).to("mock:result");
+ from("direct:start").threads(15,
30).maxQueueSize(200).to("mock:result");
}
};
}