You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2003/11/10 01:22:34 UTC
cvs commit: incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/jmx MBeanProxyCallback.java MBeanProxyFactory.java
dain 2003/11/09 16:22:34
Modified: modules/kernel project.xml
modules/kernel/src/java/org/apache/geronimo/kernel/jmx
MBeanProxyCallback.java MBeanProxyFactory.java
Log:
Updated to newest cglib head.
Revision Changes Path
1.8 +2 -2 incubator-geronimo/modules/kernel/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/kernel/project.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- project.xml 6 Nov 2003 20:04:07 -0000 1.7
+++ project.xml 10 Nov 2003 00:22:34 -0000 1.8
@@ -84,7 +84,7 @@
<dependency>
<id>cglib</id>
- <version>HEAD-20031106</version>
+ <version>HEAD-20031109</version>
<url>http://cglib.sf.net/</url>
<properties>
<runtime>true</runtime>
1.2 +2 -2 incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/MBeanProxyCallback.java
Index: MBeanProxyCallback.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/MBeanProxyCallback.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MBeanProxyCallback.java 7 Nov 2003 17:32:11 -0000 1.1
+++ MBeanProxyCallback.java 10 Nov 2003 00:22:34 -0000 1.2
@@ -79,6 +79,6 @@
}
public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
- return methodTable[proxy.getIndex()].invoke(server, objectName, args);
+ return methodTable[proxy.getSuperIndex()].invoke(server, objectName, args);
}
}
1.4 +15 -12 incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/MBeanProxyFactory.java
Index: MBeanProxyFactory.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/MBeanProxyFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MBeanProxyFactory.java 9 Nov 2003 19:56:55 -0000 1.3
+++ MBeanProxyFactory.java 10 Nov 2003 00:22:34 -0000 1.4
@@ -68,6 +68,7 @@
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.Factory;
import net.sf.cglib.proxy.SimpleCallbacks;
+import net.sf.cglib.proxy.MethodProxy;
import net.sf.cglib.reflect.FastClass;
/**
@@ -99,8 +100,6 @@
new SimpleCallbacks());
// build the method table
- FastClass fastClass = FastClass.create(iface);
-
if (objectName.isPattern()) {
Set names = server.queryNames(objectName, null);
if (names.isEmpty()) {
@@ -130,19 +129,23 @@
operations.put(new MBeanOperationSignature(operationInfo), operationInfo);
}
+ FastClass fastClass = FastClass.create(factory.newInstance(new SimpleCallbacks()).getClass());
InvokeMBean[] methodTable = new InvokeMBean[fastClass.getMaxIndex() + 1];
Method[] methods = fastClass.getJavaClass().getMethods();
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
- int index = fastClass.getIndex(method.getName(), method.getParameterTypes());
- if (operations.containsKey(new MBeanOperationSignature(method))) {
- methodTable[index] = new InvokeMBean(method, false, false);
- } else if (method.getName().startsWith("get") && attributes.containsKey(method.getName().substring(3))) {
- methodTable[index] = new InvokeMBean(method, true, true);
- } else if (method.getName().startsWith("is") && attributes.containsKey(method.getName().substring(2))) {
- methodTable[index] = new InvokeMBean(method, true, true);
- } else if (method.getName().startsWith("set") && attributes.containsKey(method.getName().substring(3))) {
- methodTable[index] = new InvokeMBean(method, true, false);
+ String superName = MethodProxy.getSuperName(fastClass.getJavaClass(), method);
+ if (superName != null) {
+ int index = fastClass.getIndex(superName, method.getParameterTypes());
+ if (operations.containsKey(new MBeanOperationSignature(method))) {
+ methodTable[index] = new InvokeMBean(method, false, false);
+ } else if (method.getName().startsWith("get") && attributes.containsKey(method.getName().substring(3))) {
+ methodTable[index] = new InvokeMBean(method, true, true);
+ } else if (method.getName().startsWith("is") && attributes.containsKey(method.getName().substring(2))) {
+ methodTable[index] = new InvokeMBean(method, true, true);
+ } else if (method.getName().startsWith("set") && attributes.containsKey(method.getName().substring(3))) {
+ methodTable[index] = new InvokeMBean(method, true, false);
+ }
}
}
return factory.newInstance(new MBeanProxyCallback(methodTable, server, objectName));