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 2004/12/01 20:15:09 UTC

svn commit: r109369 - /geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java

Author: dain
Date: Wed Dec  1 11:15:08 2004
New Revision: 109369

URL: http://svn.apache.org/viewcvs?view=rev&rev=109369
Log:
Removed use of MBeanServer

Modified:
   geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java
Url: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java?view=diff&rev=109369&p1=geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java&r1=109368&p2=geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java&r2=109369
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java	(original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/proxy/ProxyMethodInterceptor.java	Wed Dec  1 11:15:08 2004
@@ -18,18 +18,19 @@
 
 import java.beans.Introspector;
 import java.lang.reflect.Method;
-import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanInfo;
-import javax.management.MBeanOperationInfo;
+import java.util.Set;
 import javax.management.ObjectName;
 
 import net.sf.cglib.core.Signature;
 import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
 import net.sf.cglib.reflect.FastClass;
+import org.apache.geronimo.gbean.GAttributeInfo;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GOperationInfo;
 import org.apache.geronimo.gbean.GOperationSignature;
 import org.apache.geronimo.gbean.runtime.GBeanInstance;
 import org.apache.geronimo.gbean.runtime.RawInvoker;
@@ -177,28 +178,27 @@
     }
 
     private ProxyInvoker[] createKernelGBeanInvokers(Kernel kernel, ObjectName objectName, Class proxyType) {
-        MBeanInfo info;
+        GBeanInfo info;
         try {
-            // todo convert this over to gbean info
-            info = kernel.getMBeanServer().getMBeanInfo(objectName);
+            info = kernel.getGBeanInfo(objectName);
         } catch (Exception e) {
-            throw new IllegalArgumentException("Could not get MBeanInfo for target object: " + objectName);
+            throw new IllegalArgumentException("Could not get GBeanInfo for target object: " + objectName);
         }
 
         // build attributeName->attributeInfo map
-        MBeanAttributeInfo[] attributeInfos = info.getAttributes();
-        Map attributes = new HashMap(attributeInfos.length);
-        for (int i = 0; i < attributeInfos.length; i++) {
-            MBeanAttributeInfo attributeInfo = attributeInfos[i];
-            attributes.put(attributeInfo.getName(), attributeInfo);
+        Set attributeInfos = info.getAttributes();
+        Set attributeNames = new HashSet(attributeInfos.size());
+        for (Iterator iterator = attributeInfos.iterator(); iterator.hasNext();) {
+            GAttributeInfo attributeInfo = (GAttributeInfo) iterator.next();
+            attributeNames.add(attributeInfo.getName());
         }
 
-        // build operationName->operationInfo map
-        MBeanOperationInfo[] operationInfos = info.getOperations();
-        Map operations = new HashMap(operationInfos.length);
-        for (int i = 0; i < operationInfos.length; i++) {
-            MBeanOperationInfo operationInfo = operationInfos[i];
-            operations.put(new GOperationSignature(operationInfo), operationInfo);
+        // build operationSignature->operationInfo map
+        Set operationInfos = info.getOperations();
+        Set operationSignatures = new HashSet(operationInfos.size());
+        for (Iterator iterator = operationInfos.iterator(); iterator.hasNext();) {
+            GOperationInfo operationInfo = (GOperationInfo) iterator.next();
+            operationSignatures.add(new GOperationSignature(operationInfo.getName(), operationInfo.getParameterList()));
         }
 
         // build the method lookup table
@@ -209,44 +209,44 @@
             Method method = methods[i];
             int interfaceIndex = getSuperIndex(proxyType, method);
             if (interfaceIndex >= 0) {
-                invokers[interfaceIndex] = createJMXGBeanInvoker(kernel, method, operations, attributes);
+                invokers[interfaceIndex] = createJMXGBeanInvoker(kernel, method, operationSignatures, attributeNames);
             }
         }
 
         return invokers;
     }
 
-    private ProxyInvoker createJMXGBeanInvoker(Kernel kernel, Method method, Map operations, Map attributes) {
-        if (operations.containsKey(new GOperationSignature(method))) {
+    private ProxyInvoker createJMXGBeanInvoker(Kernel kernel, Method method, Set operationSignatures, Set attributeNames) {
+        if (operationSignatures.contains(new GOperationSignature(method))) {
             return new KernelOperationInvoker(kernel, method);
         }
 
         String name = method.getName();
         if (name.startsWith("get")) {
-            String attrName = method.getName().substring(3);
-            if (attributes.containsKey(attrName)) {
-                return new KernelGetAttributeInvoker(kernel, attrName);
+            String attributeName = method.getName().substring(3);
+            if (attributeNames.contains(attributeName)) {
+                return new KernelGetAttributeInvoker(kernel, attributeName);
             }
-            attrName = Introspector.decapitalize(attrName);
-            if (attributes.containsKey(attrName)) {
-                return new KernelGetAttributeInvoker(kernel, attrName);
+            attributeName = Introspector.decapitalize(attributeName);
+            if (attributeNames.contains(attributeName)) {
+                return new KernelGetAttributeInvoker(kernel, attributeName);
             }
         } else if (name.startsWith("is")) {
             String attrName = method.getName().substring(2);
-            if (attributes.containsKey(attrName)) {
+            if (attributeNames.contains(attrName)) {
                 return new KernelGetAttributeInvoker(kernel, attrName);
             }
             attrName = Introspector.decapitalize(attrName);
-            if (attributes.containsKey(attrName)) {
+            if (attributeNames.contains(attrName)) {
                 return new KernelGetAttributeInvoker(kernel, attrName);
             }
         } else if (name.startsWith("set")) {
             String attrName = method.getName().substring(3);
-            if (attributes.containsKey(attrName)) {
+            if (attributeNames.contains(attrName)) {
                 return new KernelSetAttributeInvoker(kernel, attrName);
             }
             attrName = Introspector.decapitalize(attrName);
-            if (attributes.containsKey(attrName)) {
+            if (attributeNames.contains(attrName)) {
                 return new KernelSetAttributeInvoker(kernel, attrName);
             }
         }