[jboss-osgi-commits] JBoss-OSGI SVN: r97248 - projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Tue Dec 1 11:53:40 EST 2009


Author: alesj
Date: 2009-12-01 11:53:38 -0500 (Tue, 01 Dec 2009)
New Revision: 97248

Modified:
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/KernelDictionaryFactory.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java
Log:
Don't use deprecated api.

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/KernelDictionaryFactory.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/KernelDictionaryFactory.java	2009-12-01 16:53:20 UTC (rev 97247)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/KernelDictionaryFactory.java	2009-12-01 16:53:38 UTC (rev 97248)
@@ -24,11 +24,13 @@
 import java.util.Collections;
 import java.util.Dictionary;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.Set;
-import java.util.HashSet;
 
 import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.kernel.spi.config.KernelConfigurator;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.reflect.spi.ClassInfo;
 import org.jboss.util.collection.Iterators;
 import org.osgi.framework.Constants;
 
@@ -40,7 +42,30 @@
 public class KernelDictionaryFactory implements DictionaryFactory<KernelControllerContext>
 {
    private static final String[] EMPTY = new String[0];
+   private KernelConfigurator configurator;
+   private final ClassInfo OBJECT;
 
+   public KernelDictionaryFactory(KernelConfigurator configurator)
+   {
+      if (configurator == null)
+         throw new IllegalArgumentException("Null configurator");
+
+      this.configurator = configurator;
+      OBJECT = getClassInfo(Object.class);
+   }
+
+   private ClassInfo getClassInfo(Class<?> clazz)
+   {
+      try
+      {
+         return configurator.getClassInfo(clazz);
+      }
+      catch (Throwable t)
+      {
+         throw new RuntimeException(t);
+      }
+   }
+
    public Class<KernelControllerContext> getContextType()
    {
       return KernelControllerContext.class;
@@ -51,7 +76,7 @@
       return new KernelDictionary(context);
    }
 
-   private static class KernelDictionary extends Dictionary<String, Object>
+   private class KernelDictionary extends Dictionary<String, Object>
    {
       private KernelControllerContext context;
       private String[] classes = EMPTY;
@@ -89,15 +114,15 @@
          {
             if (classes == EMPTY)
             {
-               Class<?> clazz = null;
+               ClassInfo clazz = null;
                BeanInfo info = context.getBeanInfo();
                if (info != null)
                {
-                  clazz = info.getClassInfo().getType();
+                  clazz = info.getClassInfo();
                }
                else if (context.getTarget() != null)
                {
-                  clazz = context.getTarget().getClass();
+                  clazz = getClassInfo(context.getTarget().getClass());
                }
 
                if (clazz != null)
@@ -122,9 +147,9 @@
          return null;
       }
 
-      protected static void traverseClass(Class<?> clazz, Set<String> classes)
+      protected void traverseClass(ClassInfo clazz, Set<String> classes)
       {
-         if (clazz == null || clazz == Object.class)
+         if (clazz == null || clazz == OBJECT)
          {
             return;
          }
@@ -133,11 +158,14 @@
 
          // traverse superclass
          traverseClass(clazz.getSuperclass(), classes);
-         Class<?>[] interfaces = clazz.getInterfaces();
-         // traverse interfaces
-         for(Class<?> intface : interfaces)
+         ClassInfo[] interfaces = clazz.getInterfaces();
+         if (interfaces != null)
          {
-            traverseClass(intface, classes);
+            // traverse interfaces
+            for(ClassInfo intface : interfaces)
+            {
+               traverseClass(intface, classes);
+            }
          }
       }
    }

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java	2009-12-01 16:53:20 UTC (rev 97247)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java	2009-12-01 16:53:38 UTC (rev 97248)
@@ -285,7 +285,7 @@
             Controller controller = kernel.getController();
             InstanceMetaDataRetrievalFactory imdrf = new InstanceMetaDataRetrievalFactory(controller);
             imdrf.addFactory(new OSGiServiceStateDictionaryFactory());
-            imdrf.addFactory(new KernelDictionaryFactory());
+            imdrf.addFactory(new KernelDictionaryFactory(kernel.getConfigurator()));
             // TODO - JMX?
             mdrFactory = imdrf;
          }



More information about the jboss-osgi-commits mailing list