[jboss-cvs] JBossAS SVN: r108370 - in trunk/weld-int: deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Sep 28 18:35:05 EDT 2010


Author: alesj
Date: 2010-09-28 18:35:05 -0400 (Tue, 28 Sep 2010)
New Revision: 108370

Modified:
   trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BeanDeploymentArchiveImpl.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/LibraryDiscoveryService.java
Log:
[JBAS-8410]; fix the loop.

Modified: trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
===================================================================
--- trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-09-28 21:21:41 UTC (rev 108369)
+++ trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-09-28 22:35:05 UTC (rev 108370)
@@ -22,6 +22,7 @@
 
    <bean name="WeldClasspathFactory" class="org.jboss.weld.integration.deployer.env.bda.ClasspathFactory">
       <constructor factoryMethod="getInstance" />
+      <property name="system"><inject bean="ClassLoaderSystem"/></property>
       <!-- Disable until we fix the loop -->
       <!-- property name="libArchivesProvider"><inject bean="LibsDiscoveryService"/></property -->
    </bean>

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BeanDeploymentArchiveImpl.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BeanDeploymentArchiveImpl.java	2010-09-28 21:21:41 UTC (rev 108369)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BeanDeploymentArchiveImpl.java	2010-09-28 22:35:05 UTC (rev 108370)
@@ -54,8 +54,8 @@
     * Constructor.
     * 
     * @param id        the identifier name of this BeanDeploymentArchive
-    * @param bootstrap the Weld bootstrap. Can be null only if {@code archive} has no
-    *                  beans.xml file
+    * @param bootstrap the Weld bootstrap. Can be null only if {@code archive} has no beans.xml file
+    * @param services  the services
     * @param archive   the archive that this BeanDeploymentArchive represents
     */
    public BeanDeploymentArchiveImpl(String id, Bootstrap bootstrap, ServiceRegistry services, Archive archive)

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java	2010-09-28 21:21:41 UTC (rev 108369)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java	2010-09-28 22:35:05 UTC (rev 108370)
@@ -23,7 +23,6 @@
 
 import java.lang.ref.WeakReference;
 import java.util.Map;
-import java.util.Set;
 import java.util.WeakHashMap;
 
 import org.jboss.classloader.plugins.loader.ClassLoaderToLoaderAdapter;
@@ -94,6 +93,7 @@
 
       this.system = system;
       defaultDomain = system.getDefaultDomain();
+      defaultClasspath = new ClasspathImpl(defaultDomain.getName());
    }
 
    public void setLibArchivesProvider(LibraryArchivesProvider libArchivesProvider)
@@ -102,6 +102,21 @@
    }
 
    /**
+    * Create libs.
+    *
+    * A bit of impl detail, in case we change the actual behavior:
+    *  libs will be automatically added to default classpath,
+    *  hence no need for explicit addition.
+    *
+    * @throws Exception for any error
+    */
+   public void create() throws Exception
+   {
+      if (libArchivesProvider != null)
+         libArchivesProvider.getLibraries();
+   }
+
+   /**
     * Creates the Classpath corresponding to ClassLoader.
     * 
     * @param classLoader the ClassLoader
@@ -125,26 +140,6 @@
    {
       if (domain == null || domain == defaultDomain)
       {
-         synchronized (defaultDomain)
-         {
-            if (defaultClasspath == null)
-            {
-               Archive[] archives = new Archive[0];
-               if (libArchivesProvider != null)
-               {
-                  try
-                  {
-                     Set<Archive> ldsa = libArchivesProvider.getLibraries();
-                     archives = ldsa.toArray(new Archive[ldsa.size()]);
-                  }
-                  catch (Throwable t)
-                  {
-                     log.warn("Error looking up lib archives.", t);
-                  }
-               }
-               defaultClasspath = new ClasspathImpl(defaultDomain.getName(), archives);
-            }
-         }
          return defaultClasspath;
       }
       synchronized(domain)

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/LibraryDiscoveryService.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/LibraryDiscoveryService.java	2010-09-28 21:21:41 UTC (rev 108369)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/LibraryDiscoveryService.java	2010-09-28 22:35:05 UTC (rev 108370)
@@ -32,8 +32,8 @@
 import org.jboss.deployers.spi.classloading.ResourceLookupProvider;
 import org.jboss.vfs.VFS;
 import org.jboss.vfs.VirtualFile;
+import org.jboss.weld.bootstrap.api.Service;
 import org.jboss.weld.bootstrap.api.ServiceRegistry;
-import org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry;
 import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
 import org.jboss.weld.ejb.spi.EjbDescriptor;
 import org.jboss.weld.integration.deployer.env.WeldDiscoveryEnvironment;
@@ -105,11 +105,9 @@
                   // finally create the Archive
                   Archive archive = ArchiveFactory.createArchive(archiveInfo, new ArrayList<EjbDescriptor<?>>());
                   // ... and the corresponding BDA
-                  ServiceRegistry serviceRegistry = new SimpleServiceRegistry();
-                  // TODO: fill in serviceRegistry? With which services?
 
                   // create bda
-                  BeanDeploymentArchive bda = archive.createBeanDeploymentArchive(serviceRegistry);
+                  BeanDeploymentArchive bda = archive.createBeanDeploymentArchive(NoopServiceRegistry.INSTANCE);
                   if (bda != null)
                      libs.add(archive);
 
@@ -147,4 +145,41 @@
    {
       this.excludedUrls = excludedUrls;
    }
+
+   private static class NoopServiceRegistry implements ServiceRegistry
+   {
+      private static ServiceRegistry INSTANCE = new NoopServiceRegistry();
+
+      public <S extends Service> void add(Class<S> type, S service)
+      {
+      }
+
+      public void addAll(Collection<Map.Entry<Class<? extends Service>, Service>> services)
+      {
+      }
+
+      public Set<Map.Entry<Class<? extends Service>, Service>> entrySet()
+      {
+         return Collections.emptySet();
+      }
+
+      public <S extends Service> S get(Class<S> type)
+      {
+         return null;
+      }
+
+      public <S extends Service> boolean contains(Class<S> type)
+      {
+         return true; // fake it?
+      }
+
+      public void cleanup()
+      {
+      }
+
+      public Iterator<Service> iterator()
+      {
+         return Collections.<Service>emptyList().iterator();
+      }
+   }
 }



More information about the jboss-cvs-commits mailing list