Author: markt
Date: Mon Mar 18 13:10:33 2013
New Revision: 1457749

URL: http://svn.apache.org/r1457749
Log:
Enable support for overloaded methods

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1457748

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java?rev=1457749&r1=1457748&r2=1457749&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java 
Mon Mar 18 13:10:33 2013
@@ -291,7 +291,7 @@ public class ManagedBean implements java
      * @param operation The new operation descriptor
      */
     public void addOperation(OperationInfo operation) {
-        operations.put(operation.getName(), operation);
+        operations.put(createOperationKey(operation), operation);
     }
 
 
@@ -581,7 +581,8 @@ public class ManagedBean implements java
 
         // Acquire the ModelMBeanOperationInfo information for
         // the requested operation
-        OperationInfo opInfo = operations.get(aname);
+        OperationInfo opInfo =
+                operations.get(createOperationKey(aname, signature));
         if (opInfo == null)
             throw new MBeanException(new ServiceNotFoundException(
                     "Cannot find operation " + aname),
@@ -622,4 +623,31 @@ public class ManagedBean implements java
     }
 
 
+    private String createOperationKey(OperationInfo operation) {
+        StringBuilder key = new StringBuilder(operation.getName());
+        key.append('(');
+        for (ParameterInfo parameterInfo: operation.getSignature()) {
+            key.append(parameterInfo.getType());
+            // Note: A trailing ',' does not matter in this case
+            key.append(',');
+        }
+        key.append(')');
+
+        return key.toString();
+    }
+
+
+    private String createOperationKey(String methodName,
+            String[] parameterTypes) {
+        StringBuilder key = new StringBuilder(methodName);
+        key.append('(');
+        for (String parameter: parameterTypes) {
+            key.append(parameter);
+            // Note: A trailing ',' does not matter in this case
+            key.append(',');
+        }
+        key.append(')');
+
+        return key.toString();
+    }
 }

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1457749&r1=1457748&r2=1457749&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Mar 18 13:10:33 2013
@@ -92,6 +92,10 @@
         headers to allow for buggy clients that quote values that RFC2617 
states
         should not be quoted. (markt/kkolinko)
       </fix>
+      <fix>
+        Enable support for MBeans with multiple operations with the same name
+        but different signatures. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to