You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by am...@apache.org on 2005/08/22 05:15:21 UTC

svn commit: r234420 - in /geronimo/trunk/modules/kernel/src/java/org/apache/geronimo: gbean/ReferenceCollection.java gbean/runtime/ProxyCollection.java kernel/basic/BasicProxyManager.java

Author: ammulder
Date: Sun Aug 21 20:15:17 2005
New Revision: 234420

URL: http://svn.apache.org/viewcvs?rev=234420&view=rev
Log:
Add the ability to extract ObjectNames from a reference collection
Change proxy manager so if there's an interface it can't load, it will
  log it and proceed rather than barfing

Modified:
    geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/ReferenceCollection.java
    geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/ProxyCollection.java
    geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/ReferenceCollection.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/ReferenceCollection.java?rev=234420&r1=234419&r2=234420&view=diff
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/ReferenceCollection.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/ReferenceCollection.java Sun Aug 21 20:15:17 2005
@@ -18,6 +18,7 @@
 package org.apache.geronimo.gbean;
 
 import java.util.Collection;
+import javax.management.ObjectName;
 
 /**
  * An extension of collection that allows a client to register for notifications when
@@ -29,4 +30,6 @@
     void addReferenceCollectionListener(ReferenceCollectionListener listener);
 
     void removeReferenceCollectionListener(ReferenceCollectionListener listener);
+
+    ObjectName[] getMemberObjectNames();
 }

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/ProxyCollection.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/ProxyCollection.java?rev=234420&r1=234419&r2=234420&view=diff
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/ProxyCollection.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/ProxyCollection.java Sun Aug 21 20:15:17 2005
@@ -124,6 +124,10 @@
         proxyManager.destroyProxy(proxy);
     }
 
+    public synchronized ObjectName[] getMemberObjectNames() {
+        return (ObjectName[])proxies.keySet().toArray(new ObjectName[0]);
+    }
+
     public synchronized boolean isStopped() {
         return stopped;
     }

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java?rev=234420&r1=234419&r2=234420&view=diff
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java Sun Aug 21 20:15:17 2005
@@ -109,15 +109,17 @@
                 return null;
             }
             String[] names = (String[]) info.getInterfaces().toArray(new String[0]);
-            Class[] intfs = new Class[names.length];
-            for (int i = 0; i < intfs.length; i++) {
-                intfs[i] = loader.loadClass(names[i]);
+            List intfs = new ArrayList();
+            for (int i = 0; i < names.length; i++) {
+                try {
+                    intfs.add(loader.loadClass(names[i]));
+                } catch (ClassNotFoundException e) {
+                    log.warn("Could not load interface "+names[i]+" in provided ClassLoader for "+target.getKeyProperty("name"));
+                }
             }
-            return createProxyFactory(intfs).createProxy(target);
+            return createProxyFactory((Class[]) intfs.toArray(new Class[intfs.size()])).createProxy(target);
         } catch (GBeanNotFoundException e) {
             throw new IllegalArgumentException("Could not get GBeanInfo for target object: " + target);
-        } catch (ClassNotFoundException e) {
-            throw new IllegalArgumentException("Could not load interface in provided ClassLoader: " + e.getMessage());
         }
     }