You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/27 05:56:33 UTC
svn commit: r598516 -
/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java
Author: trustin
Date: Mon Nov 26 20:56:32 2007
New Revision: 598516
URL: http://svn.apache.org/viewvc?rev=598516&view=rev
Log:
Added findAndProcessSessions operation to IoServiceMBean
Modified:
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java
Modified: mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java?rev=598516&r1=598515&r2=598516&view=diff
==============================================================================
--- mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java (original)
+++ mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java Mon Nov 26 20:56:32 2007
@@ -26,6 +26,7 @@
import javax.management.ReflectionException;
import javax.management.modelmbean.ModelMBeanOperationInfo;
+import ognl.Ognl;
import ognl.OgnlException;
import org.apache.mina.common.IoService;
@@ -92,6 +93,26 @@
}
}
+ if (name.equals("findAndProcessSessions")) {
+ try {
+ IoSessionFinder finder = new IoSessionFinder((String) params[0]);
+ String command = (String) params[1];
+ Object expr = Ognl.parseExpression(command);
+ Set<IoSession> matches = finder.find(getSource().getManagedSessions());
+
+ for (IoSession s: matches) {
+ try {
+ Ognl.getValue(expr, s);
+ } catch (Exception e) {
+ logger.warn("Failed to execute '" + command + "' for: " + s, e);
+ }
+ }
+ return convertReturnValue(matches);
+ } catch (OgnlException e) {
+ throwMBeanException(e);
+ }
+ }
+
return super.invoke(name, params, signature);
}
@@ -108,6 +129,14 @@
new MBeanParameterInfo[] {
new MBeanParameterInfo(
"ognlQuery", String.class.getName(), "a boolean OGNL expression")
+ }, Set.class.getName(), ModelMBeanOperationInfo.ACTION_INFO));
+ operations.add(new ModelMBeanOperationInfo(
+ "findAndProcessSessions", "findAndProcessSessions",
+ new MBeanParameterInfo[] {
+ new MBeanParameterInfo(
+ "ognlQuery", String.class.getName(), "a boolean OGNL expression"),
+ new MBeanParameterInfo(
+ "ognlCommand", String.class.getName(), "an OGNL expression that modifies the state of the sessions in the match result")
}, Set.class.getName(), ModelMBeanOperationInfo.ACTION_INFO));
}