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/12/03 12:05:39 UTC

svn commit: r600478 - in /mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx: IoFilterMBean.java IoServiceMBean.java IoSessionMBean.java ObjectMBean.java

Author: trustin
Date: Mon Dec  3 03:05:35 2007
New Revision: 600478

URL: http://svn.apache.org/viewvc?rev=600478&view=rev
Log:
Resurrected isWritable() - forgot to consider defaultLocalAddresses :)

Modified:
    mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoFilterMBean.java
    mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceMBean.java
    mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionMBean.java
    mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/ObjectMBean.java

Modified: mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoFilterMBean.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoFilterMBean.java?rev=600478&r1=600477&r2=600478&view=diff
==============================================================================
--- mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoFilterMBean.java (original)
+++ mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoFilterMBean.java Mon Dec  3 03:05:35 2007
@@ -32,7 +32,7 @@
     }
     
     @Override
-    protected boolean isOperation(String methodName) {
+    protected boolean isOperation(String methodName, Class<?>[] paramTypes) {
         // Ignore some IoFilter methods.
         if (methodName.matches(
                 "(init|destroy|on(Pre|Post)(Add|Remove)|" +
@@ -42,6 +42,6 @@
             return false;
         }
         
-        return super.isOperation(methodName);
+        return super.isOperation(methodName, paramTypes);
     }
 }

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=600478&r1=600477&r2=600478&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 Dec  3 03:05:35 2007
@@ -16,6 +16,7 @@
  */
 package org.apache.mina.integration.jmx;
 
+import java.net.SocketAddress;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -141,13 +142,20 @@
     }
 
     @Override
-    protected boolean isOperation(String methodName) {
+    protected boolean isOperation(String methodName, Class<?>[] paramTypes) {
         // Ignore some IoServide methods.
         if (methodName.matches(
                 "(newSession|broadcast|(add|remove)Listener)")) {
             return false;
         }
+        
+        if ((methodName.equals("bind") || methodName.equals("unbind")) &&
+                (paramTypes.length > 1 ||
+                        (paramTypes.length == 1 && !SocketAddress.class.isAssignableFrom(paramTypes[0])))) {
+            return false;
+        }
+                
 
-        return super.isOperation(methodName);
+        return super.isOperation(methodName, paramTypes);
     }
 }

Modified: mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionMBean.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionMBean.java?rev=600478&r1=600477&r2=600478&view=diff
==============================================================================
--- mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionMBean.java (original)
+++ mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionMBean.java Mon Dec  3 03:05:35 2007
@@ -154,14 +154,14 @@
     }
 
     @Override
-    protected boolean isOperation(String methodName) {
+    protected boolean isOperation(String methodName, Class<?>[] paramTypes) {
         // Ignore some IoSession methods.
         if (methodName.matches(
                 "(write|read|(remove|replace|contains)Attribute)")) {
             return false;
         }
         
-        return super.isOperation(methodName);
+        return super.isOperation(methodName, paramTypes);
     }
 
     @Override

Modified: mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/ObjectMBean.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/ObjectMBean.java?rev=600478&r1=600477&r2=600478&view=diff
==============================================================================
--- mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/ObjectMBean.java (original)
+++ mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/ObjectMBean.java Mon Dec  3 03:05:35 2007
@@ -450,7 +450,7 @@
     
             // Ordinary property.
             String fqpn = prefix + pname;
-            boolean writable = p.getWriteMethod() != null;
+            boolean writable = p.getWriteMethod() != null || isWritable(type, pname);
             attributes.add(new ModelMBeanAttributeInfo(
                     fqpn, convertAttributeType(fqpn, p.getPropertyType()).getName(),
                     p.getShortDescription(),
@@ -498,7 +498,7 @@
             }
             
             // Ignore other user-defined non-operations.
-            if (!isOperation(mname)) {
+            if (!isOperation(mname, m.getParameterTypes())) {
                 continue;
             }
             
@@ -539,6 +539,13 @@
         return true;
     }
     
+    protected boolean isWritable(Class<?> type, String attrName) {
+        if (IoService.class.isAssignableFrom(type) && attrName.startsWith("defaultLocalAddress")) {
+            return true;
+        }
+        return false;
+    }
+    
     protected boolean isExpandable(Class<?> type, String attrName) {
         if (IoService.class.isAssignableFrom(type) && attrName.equals("sessionConfig")) {
             return true;
@@ -567,7 +574,7 @@
     }
     
     @SuppressWarnings("unused")
-    protected boolean isOperation(String methodName) {
+    protected boolean isOperation(String methodName, Class<?>[] paramTypes) {
         return true;
     }