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: [email protected]
For additional commands, e-mail: [email protected]