[jboss-cvs] JBossAS SVN: r109063 - in trunk: component-matrix and 10 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 2 02:58:45 EDT 2010


Author: marius.bogoevici
Date: 2010-11-02 02:58:45 -0400 (Tue, 02 Nov 2010)
New Revision: 109063

Added:
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClassLoaderResourceLoader.java
Removed:
   trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/servlet/
Modified:
   trunk/build/build.xml
   trunk/component-matrix/pom.xml
   trunk/depchain/pom.xml
   trunk/weld-int/assembly/pom.xml
   trunk/weld-int/assembly/src/main/assembly/assembly.xml
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/helpers/BootstrapBean.java
   trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockWeldBootstrap.java
   trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java
   trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java
Log:
Integrating Weld 1.1.0.Beta2

Modified: trunk/build/build.xml
===================================================================
--- trunk/build/build.xml	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/build/build.xml	2010-11-02 06:58:45 UTC (rev 109063)
@@ -2120,6 +2120,8 @@
       <fileset refid="org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec:jar"/>
       <fileset refid="org.jboss.spec.javax.servlet.jsp:jboss-jsp-api_2.2_spec:jar"/>
       <fileset refid="org.jboss.weld:weld-api:jar"/>
+      <fileset refid="org.jboss.interceptor:jboss-interceptor-spi:jar"/>
+      <fileset refid="org.jboss.interceptor:jboss-interceptor-core:jar"/>
       <fileset refid="org.hornetq:hornetq-jboss-as-integration:jar"/>
       <fileset refid="org.hornetq:hornetq-bootstrap:jar"/>
       <fileset refid="org.hornetq:hornetq-core:jar"/>
@@ -2390,6 +2392,8 @@
       <fileset refid="org.codehaus.jettison:jettison:jar"/>
       <fileset refid="org.jboss.netty:netty:jar"/>
       <fileset refid="org.jboss.weld:weld-api:jar"/>
+      <fileset refid="org.jboss.interceptor:jboss-interceptor-spi:jar"/>
+      <fileset refid="org.jboss.interceptor:jboss-interceptor-core:jar"/>
       <fileset refid="org.hornetq:hornetq-core-client:jar"/>
       <fileset refid="org.hornetq:hornetq-jms-client:jar"/>
       <fileset refid="org.jboss:jbossxb:jar"/>

Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/component-matrix/pom.xml	2010-11-02 06:58:45 UTC (rev 109063)
@@ -90,7 +90,7 @@
     <version.org.jboss.ejb.api>1.0-alpha-1</version.org.jboss.ejb.api>
     <version.org.jboss.embedded>1.0.0-alpha-3</version.org.jboss.embedded>
     <version.org.jboss.injection>0.1.0-alpha-2</version.org.jboss.injection>
-    <version.org.jboss.interceptor>1.0.0-CR11</version.org.jboss.interceptor>
+    <version.org.jboss.interceptor>2.0.0.Alpha3</version.org.jboss.interceptor>
     <version.org.jboss.integration>6.0.0.CR1</version.org.jboss.integration>
     <version.org.jboss.javaee.specs.bom>1.0.0.Beta7</version.org.jboss.javaee.specs.bom>
     <version.org.jboss.jbossxb>2.0.2.Beta9</version.org.jboss.jbossxb>
@@ -133,7 +133,7 @@
     <version.org.jboss.stdio>1.0.0.CR3</version.org.jboss.stdio>
     <version.org.jboss.threads>2.0.0.CR4</version.org.jboss.threads>
     <version.org.jboss.vfs>3.0.0.CR5</version.org.jboss.vfs>
-    <version.org.jboss.weld>1.1.0.Beta1</version.org.jboss.weld>
+    <version.org.jboss.weld>1.1.0.Beta2</version.org.jboss.weld>
     <version.org.jboss.xnio>2.1.0.CR2</version.org.jboss.xnio>
     <version.org.jboss.xnio.metadata>2.1.0.CR5</version.org.jboss.xnio.metadata>
     <version.org.jgroups>2.10.1.GA</version.org.jgroups>
@@ -148,7 +148,8 @@
     <version.sun.jaxb>2.2</version.sun.jaxb>
     <version.sun-jaxws>2.2</version.sun-jaxws>
     <version.sun-policy>2.0-b01</version.sun-policy>
-    <version.weld.api>1.1.Beta1</version.weld.api>
+    <version.weld.api>1.1.Beta2</version.weld.api>
+    <version.cdi.api>1.0-SP3</version.cdi.api>
     <version.xdoclet>1.2.3</version.xdoclet>
     <version.xmlschema>1.4.5</version.xmlschema>
   </properties>
@@ -222,6 +223,12 @@
       </dependency>
 
        <dependency>
+        <groupId>javax.enterprise</groupId>
+        <artifactId>cdi-api</artifactId>
+        <version>${version.cdi.api}</version>
+      </dependency>
+
+       <dependency>
         <groupId>org.jboss.weld</groupId>
         <artifactId>weld-spi</artifactId>
         <version>${version.weld.api}</version>
@@ -248,11 +255,17 @@
 
       <dependency>
         <groupId>org.jboss.interceptor</groupId>
-        <artifactId>jboss-interceptor</artifactId>
+        <artifactId>jboss-interceptor-spi</artifactId>
         <version>${version.org.jboss.interceptor}</version>
       </dependency>
 
       <dependency>
+         <groupId>org.jboss.interceptor</groupId>
+         <artifactId>jboss-interceptor-core</artifactId>
+         <version>${version.org.jboss.interceptor}</version>
+      </dependency>
+
+      <dependency>
         <groupId>org.jboss.snowdrop</groupId>
         <artifactId>jboss-spring-deployer</artifactId>
         <version>${version.spring.integration}</version>

Modified: trunk/depchain/pom.xml
===================================================================
--- trunk/depchain/pom.xml	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/depchain/pom.xml	2010-11-02 06:58:45 UTC (rev 109063)
@@ -1055,6 +1055,14 @@
       <artifactId>weld-api</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.jboss.interceptor</groupId>
+      <artifactId>jboss-interceptor-spi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.interceptor</groupId>
+      <artifactId>jboss-interceptor-core</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.jboss.ws.cxf</groupId>
       <artifactId>jbossws-cxf-client</artifactId>
     </dependency>

Modified: trunk/weld-int/assembly/pom.xml
===================================================================
--- trunk/weld-int/assembly/pom.xml	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/assembly/pom.xml	2010-11-02 06:58:45 UTC (rev 109063)
@@ -234,11 +234,17 @@
     
     <dependency>
       <groupId>org.jboss.interceptor</groupId>
-      <artifactId>jboss-interceptor</artifactId>
+      <artifactId>jboss-interceptor-spi</artifactId>
       <optional>true</optional>
     </dependency>
-      
+
     <dependency>
+      <groupId>org.jboss.interceptor</groupId>
+      <artifactId>jboss-interceptor-core</artifactId>
+      <optional>true</optional>
+    </dependency>
+
+    <dependency>
       <groupId>javax.enterprise</groupId>
       <artifactId>cdi-api</artifactId>
       <optional>true</optional>

Modified: trunk/weld-int/assembly/src/main/assembly/assembly.xml
===================================================================
--- trunk/weld-int/assembly/src/main/assembly/assembly.xml	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/assembly/src/main/assembly/assembly.xml	2010-11-02 06:58:45 UTC (rev 109063)
@@ -41,7 +41,6 @@
             <include>org.jboss.jbossas:weld-int-ejb</include>
             <include>org.jboss.jbossas:weld-int-deployer</include>
             <include>org.jboss.jbossas:weld-int-deployer-mc-int</include>
-            <include>org.jboss.interceptor:jboss-interceptor</include>
          </includes>
       </dependencySet>
       <dependencySet>

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -1,214 +1,200 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.weld.integration.deployer.env;
-
-import org.jboss.beans.metadata.api.annotations.Start;
-import org.jboss.beans.metadata.api.annotations.Stop;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.beans.metadata.spi.builder.ParameterMetaDataBuilder;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.weld.bootstrap.api.Bootstrap;
-import org.jboss.weld.bootstrap.api.SingletonProvider;
-import org.jboss.weld.context.api.BeanStore;
-import org.jboss.weld.context.api.helpers.ConcurrentHashMapBeanStore;
-import org.jboss.weld.integration.deployer.DeployersUtils;
-import org.jboss.weld.integration.deployer.JBossProxyServices;
-import org.jboss.weld.integration.deployer.env.bda.DUTopLevelClassLoaderGetter;
-import org.jboss.weld.integration.deployer.env.bda.DeploymentImpl;
-
-import org.jboss.weld.integration.provider.JBossSingletonProvider;
-
-
-/**
- * Deploy Weld boostrap service.
- *
- * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
- */
-public class WeldBootstrapDeployer extends AbstractBootstrapInfoDeployer
-{
-   private SingletonProvider singletonProvider;
-
-   public WeldBootstrapDeployer()
-   {
-      super(false);
-      setDisableOptional(true);
-      addOutput(BeanMetaData.class);
-      addInput(DeployersUtils.JAVAX_VALIDATION_VALIDATOR_FACTORY);
-   }
-
-   /**
-    * Setter for allowing the injection of a different type of SingletonProvider
-    *
-    * @param singletonProvider
-    */
-   public void setSingletonProvider(SingletonProvider singletonProvider)
-   {
-      if (singletonProvider == null)
-      {
-         throw new IllegalArgumentException("Cannot set a null SingletonProvider");
-      }
-      this.singletonProvider = singletonProvider;
-   }
-
-   /**
-    * Configures the SingletonProvider to be used by the application server
-    */
-   @Start
-   public void install()
-   {
-      if (singletonProvider != null)
-      {
-         SingletonProvider.initialize(singletonProvider);
-      }
-      else
-      {
-         // set up the default Singleton provider, which in this case is JBossSingletonProvider
-         JBossSingletonProvider provider = new JBossSingletonProvider();
-         provider.setTopLevelClassLoaderGetter(DUTopLevelClassLoaderGetter.INSTANCE);
-         SingletonProvider.initialize(provider);
-      }
-   }
-
-   /**
-    * Removes the SingletonProvider - we assume that no application is running anymore
-    * in this application server when the deployer is uninstalled (shutdown) 
-    */
-   @Stop
-   public void uninstall()
-   {
-      SingletonProvider.reset();
-   }
-
-   @Override
-   protected void deployInternal(DeploymentUnit unit, BootstrapInfo info) throws DeploymentException
-   {
-
-      ValueMetaData ejbServicesValue = info.getEjbServices();
-      if (ejbServicesValue == null)
-      {
-         throw new DeploymentException("Missing ejb services: " + unit);
-      }
-
-      ValueMetaData ejbInjectionServicesValue = info.getEjbInjectionServices();
-      if (ejbInjectionServicesValue == null)
-      {
-         throw new DeploymentException("Missing ejb injection services: " + unit);
-      }
-
-      ValueMetaData deploymentValue = info.getDeployment();
-      if (deploymentValue == null)
-      {
-         throw new DeploymentException("Missing deployment: " + unit);
-      }
-
-      String bootstrapName = DeployersUtils.getBootstrapBeanName(unit);
-      BeanMetaDataBuilder bootstrap = BeanMetaDataBuilder.createBuilder(bootstrapName, "org.jboss.weld.integration.deployer.env.helpers.BootstrapBean");
-
-      bootstrap.addConstructorParameter(Bootstrap.class.getName(), createBootstrap(unit));
-      bootstrap.addConstructorParameter(DeploymentImpl.class.getName(), deploymentValue);
-      bootstrap.addPropertyMetaData("ejbServices", ejbServicesValue);
-      bootstrap.addPropertyMetaData("ejbInjectionServices", ejbInjectionServicesValue);
-      bootstrap.addPropertyMetaData("jpaServices", createServiceConnector("JBossJpaServices", "org.jboss.weld.integration.persistence.JBossJpaServices", unit));
-      bootstrap.addPropertyMetaData("resourceServices", bootstrap.createInject("JBossResourceServices"));
-      bootstrap.addPropertyMetaData("transactionServices", bootstrap.createInject("JBossTransactionServices"));
-      bootstrap.addPropertyMetaData("applicationContext", createBeanStore());
-      bootstrap.addPropertyMetaData("securityServices", bootstrap.createInject("JBossSecurityServices"));
-      bootstrap.addPropertyMetaData("validationServices", createValidationServices(unit));
-      bootstrap.addPropertyMetaData("proxyServices", createProxyServices());
-      bootstrap.setCreate("initialize");
-      bootstrap.setStart("boot");
-      bootstrap.setDestroy("shutdown");
-      bootstrap.addDependency("RealTransactionManager"); // so we know TM is present in JBossTransactionServices
-
-      //Make the bootstrap depend on this deployment unit so that we know all sub deployments have been processed
-      bootstrap.addDependency(unit.getName());
-
-
-      // call dynamic dependency creator for EJBs
-      ParameterMetaDataBuilder install = bootstrap.addInstallWithParameters("createDepenencies", "DynamicDependencyCreator", null, ControllerState.CONFIGURED);
-      install.addParameterMetaData(Object.class.getName(), bootstrapName);
-      install.addParameterMetaData(Iterable.class.getName(), bootstrap.createInject(ejbServicesValue.getUnderlyingValue(), "ejbContainerNames"));
-      install.addParameterMetaData(String.class.getName(), "Start");
-      install.addParameterMetaData(String.class.getName(), "Create");
-
-      unit.addAttachment(DeployersUtils.getBootstrapBeanAttachmentName(unit), bootstrap.getBeanMetaData());
-   }
-
-   /**
-    * Create proxy services
-    *
-    * @return the {@link org.jboss.weld.serialization.spi.ProxyServices} instance
-    */
-   protected JBossProxyServices createProxyServices()
-   {
-      return new JBossProxyServices();
-   }
-
-   /**
-    * Create new bean store.
-    *
-    * @return the bean store instance
-    */
-   protected BeanStore createBeanStore()
-   {
-      return new ConcurrentHashMapBeanStore();
-   }
-
-   /**
-    * Create bootstrap bean.
-    *
-    * @param unit the deployment unit
-    * @return new injected bootstrap metadata
-    */
-   protected ValueMetaData createBootstrap(DeploymentUnit unit)
-   {
-      String beanName = unit.getName() + "_WeldBootstrap";
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanName, "org.jboss.weld.bootstrap.WeldBootstrap");
-      unit.addAttachment(beanName + "_" + BeanMetaData.class.getSimpleName(), builder.getBeanMetaData());
-      return builder.createInject(beanName);
-   }
-
-   protected ValueMetaData createValidationServices(DeploymentUnit unit) throws DeploymentException
-   {
-      Object validatorFactory = unit.getAttachment(DeployersUtils.JAVAX_VALIDATION_VALIDATOR_FACTORY);
-
-      if (validatorFactory == null && isValidationFactoryRequired(unit))
-      {
-         throw new DeploymentException("Missing ValidatorFactory attachment in deployment: " + unit);
-      }
-      String beanName = unit.getName() + "_JBossValidationServices";
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanName, "org.jboss.weld.integration.validation.JBossValidationServices");
-      unit.addAttachment(beanName + "_" + BeanMetaData.class.getSimpleName(), builder.getBeanMetaData());
-      builder.addConstructorParameter(DeployersUtils.JAVAX_VALIDATION_VALIDATOR_FACTORY, validatorFactory);
-      return builder.createInject(beanName);
-   }
-
-   protected boolean isValidationFactoryRequired(DeploymentUnit deploymentUnit)
-   {
-      //TODO: define more strict criteria for determining whether the presence of a validation factory is required (e.g. JSF, JPA deployments) 
-      return false;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.weld.integration.deployer.env;
+
+import org.jboss.beans.metadata.api.annotations.Start;
+import org.jboss.beans.metadata.api.annotations.Stop;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.beans.metadata.spi.builder.ParameterMetaDataBuilder;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.weld.bootstrap.api.Bootstrap;
+import org.jboss.weld.bootstrap.api.SingletonProvider;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.deployer.JBossProxyServices;
+import org.jboss.weld.integration.deployer.env.bda.DUTopLevelClassLoaderGetter;
+import org.jboss.weld.integration.deployer.env.bda.DeploymentImpl;
+
+import org.jboss.weld.integration.provider.JBossSingletonProvider;
+
+
+/**
+ * Deploy Weld boostrap service.
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class WeldBootstrapDeployer extends AbstractBootstrapInfoDeployer
+{
+   private SingletonProvider singletonProvider;
+
+   public WeldBootstrapDeployer()
+   {
+      super(false);
+      setDisableOptional(true);
+      addOutput(BeanMetaData.class);
+      addInput(DeployersUtils.JAVAX_VALIDATION_VALIDATOR_FACTORY);
+   }
+
+   /**
+    * Setter for allowing the injection of a different type of SingletonProvider
+    *
+    * @param singletonProvider
+    */
+   public void setSingletonProvider(SingletonProvider singletonProvider)
+   {
+      if (singletonProvider == null)
+      {
+         throw new IllegalArgumentException("Cannot set a null SingletonProvider");
+      }
+      this.singletonProvider = singletonProvider;
+   }
+
+   /**
+    * Configures the SingletonProvider to be used by the application server
+    */
+   @Start
+   public void install()
+   {
+      if (singletonProvider != null)
+      {
+         SingletonProvider.initialize(singletonProvider);
+      }
+      else
+      {
+         // set up the default Singleton provider, which in this case is JBossSingletonProvider
+         JBossSingletonProvider provider = new JBossSingletonProvider();
+         provider.setTopLevelClassLoaderGetter(DUTopLevelClassLoaderGetter.INSTANCE);
+         SingletonProvider.initialize(provider);
+      }
+   }
+
+   /**
+    * Removes the SingletonProvider - we assume that no application is running anymore
+    * in this application server when the deployer is uninstalled (shutdown) 
+    */
+   @Stop
+   public void uninstall()
+   {
+      SingletonProvider.reset();
+   }
+
+   @Override
+   protected void deployInternal(DeploymentUnit unit, BootstrapInfo info) throws DeploymentException
+   {
+      ValueMetaData ejbServicesValue = info.getEjbServices();
+      if (ejbServicesValue == null)
+      {
+         throw new DeploymentException("Missing ejb services: " + unit);
+      }
+
+      ValueMetaData ejbInjectionServicesValue = info.getEjbInjectionServices();
+      if (ejbInjectionServicesValue == null)
+      {
+         throw new DeploymentException("Missing ejb injection services: " + unit);
+      }
+
+      ValueMetaData deploymentValue = info.getDeployment();
+      if (deploymentValue == null)
+      {
+         throw new DeploymentException("Missing deployment: " + unit);
+      }
+
+      String bootstrapName = DeployersUtils.getBootstrapBeanName(unit);
+      BeanMetaDataBuilder bootstrap = BeanMetaDataBuilder.createBuilder(bootstrapName, "org.jboss.weld.integration.deployer.env.helpers.BootstrapBean");
+
+      bootstrap.addConstructorParameter(Bootstrap.class.getName(), createBootstrap(unit));
+      bootstrap.addConstructorParameter(DeploymentImpl.class.getName(), deploymentValue);
+      bootstrap.addPropertyMetaData("ejbServices", ejbServicesValue);
+      bootstrap.addPropertyMetaData("ejbInjectionServices", ejbInjectionServicesValue);
+      bootstrap.addPropertyMetaData("jpaServices", createServiceConnector("JBossJpaServices", "org.jboss.weld.integration.persistence.JBossJpaServices", unit));
+      bootstrap.addPropertyMetaData("resourceServices", bootstrap.createInject("JBossResourceServices"));
+      bootstrap.addPropertyMetaData("transactionServices", bootstrap.createInject("JBossTransactionServices"));
+      bootstrap.addPropertyMetaData("securityServices", bootstrap.createInject("JBossSecurityServices"));
+      bootstrap.addPropertyMetaData("validationServices", createValidationServices(unit));
+      bootstrap.addPropertyMetaData("proxyServices", createProxyServices());
+      bootstrap.setCreate("initialize");
+      bootstrap.setStart("boot");
+      bootstrap.setDestroy("shutdown");
+      bootstrap.addDependency("RealTransactionManager"); // so we know TM is present in JBossTransactionServices
+
+      //Make the bootstrap depend on this deployment unit so that we know all sub deployments have been processed
+      bootstrap.addDependency(unit.getName());
+
+
+      // call dynamic dependency creator for EJBs
+      ParameterMetaDataBuilder install = bootstrap.addInstallWithParameters("createDepenencies", "DynamicDependencyCreator", null, ControllerState.CONFIGURED);
+      install.addParameterMetaData(Object.class.getName(), bootstrapName);
+      install.addParameterMetaData(Iterable.class.getName(), bootstrap.createInject(ejbServicesValue.getUnderlyingValue(), "ejbContainerNames"));
+      install.addParameterMetaData(String.class.getName(), "Start");
+      install.addParameterMetaData(String.class.getName(), "Create");
+
+      unit.addAttachment(DeployersUtils.getBootstrapBeanAttachmentName(unit), bootstrap.getBeanMetaData());
+   }
+
+   /**
+    * Create proxy services
+    *
+    * @return the {@link org.jboss.weld.serialization.spi.ProxyServices} instance
+    */
+   protected JBossProxyServices createProxyServices()
+   {
+      return new JBossProxyServices();
+   }
+
+   /**
+    * Create bootstrap bean.
+    *
+    * @param unit the deployment unit
+    * @return new injected bootstrap metadata
+    */
+   protected ValueMetaData createBootstrap(DeploymentUnit unit)
+   {
+      String beanName = unit.getName() + "_WeldBootstrap";
+      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanName, "org.jboss.weld.bootstrap.WeldBootstrap");
+      unit.addAttachment(beanName + "_" + BeanMetaData.class.getSimpleName(), builder.getBeanMetaData());
+      return builder.createInject(beanName);
+   }
+
+   protected ValueMetaData createValidationServices(DeploymentUnit unit) throws DeploymentException
+   {
+      Object validatorFactory = unit.getAttachment(DeployersUtils.JAVAX_VALIDATION_VALIDATOR_FACTORY);
+
+      if (validatorFactory == null && isValidationFactoryRequired(unit))
+      {
+         throw new DeploymentException("Missing ValidatorFactory attachment in deployment: " + unit);
+      }
+      String beanName = unit.getName() + "_JBossValidationServices";
+      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanName, "org.jboss.weld.integration.validation.JBossValidationServices");
+      unit.addAttachment(beanName + "_" + BeanMetaData.class.getSimpleName(), builder.getBeanMetaData());
+      builder.addConstructorParameter(DeployersUtils.JAVAX_VALIDATION_VALIDATOR_FACTORY, validatorFactory);
+      return builder.createInject(beanName);
+   }
+
+   protected boolean isValidationFactoryRequired(DeploymentUnit deploymentUnit)
+   {
+      //TODO: define more strict criteria for determining whether the presence of a validation factory is required (e.g. JSF, JPA deployments) 
+      return false;
+   }
+}

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -33,6 +33,7 @@
 import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
 import org.jboss.weld.ejb.spi.EjbDescriptor;
 import org.jboss.weld.integration.util.IdFactory;
+import org.jboss.weld.resources.spi.ResourceLoader;
 
 /**
  * An archive is an abstract representation of one or more deployed archives.
@@ -250,6 +251,7 @@
    {
       if (bda == null)
       {
+         services.add(ResourceLoader.class, new ClassLoaderResourceLoader(classLoader));
          bda = new BeanDeploymentArchiveImpl(IdFactory.getIdFromClassLoader(classLoader), bootstrap, services, this);
          for (ArchiveLifecycleListener listener: lifecycleListeners)
          {

Copied: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClassLoaderResourceLoader.java (from rev 109062, branches/weld-snapshot-integration/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClassLoaderResourceLoader.java)
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClassLoaderResourceLoader.java	                        (rev 0)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClassLoaderResourceLoader.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -0,0 +1,74 @@
+package org.jboss.weld.integration.deployer.env.bda;
+
+import org.jboss.weld.resources.spi.ResourceLoader;
+import org.jboss.weld.resources.spi.ResourceLoadingException;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+
+/**
+ * A (@link ResourceLoader} implementation that uses a specific @{link ClassLoader}
+ *
+ * @author Marius Bogoevici
+ */
+public class ClassLoaderResourceLoader implements ResourceLoader
+{
+   private ClassLoader classLoader;
+
+   public ClassLoaderResourceLoader(ClassLoader classLoader)
+   {
+      this.classLoader = classLoader;
+   }
+
+   public Class<?> classForName(String name)
+   {
+      try
+      {
+         return classLoader.loadClass(name);
+      }
+      catch (ClassNotFoundException e)
+      {
+         throw new ResourceLoadingException("Error loading class " + name, e);
+      }
+      catch (NoClassDefFoundError e)
+      {
+         throw new ResourceLoadingException("Error loading class " + name, e);
+      }
+      catch (TypeNotPresentException e)
+      {
+         throw new ResourceLoadingException("Error loading class " + name, e);
+      }
+   }
+
+   public URL getResource(String name)
+   {
+      return classLoader.getResource(name);
+
+   }
+
+   public Collection<URL> getResources(String name)
+   {
+      try
+      {
+         final Enumeration<URL> enumResources = classLoader.getResources(name);
+         ArrayList<URL> resources = new ArrayList<URL>();
+         while (enumResources.hasMoreElements())
+         {
+            resources.add(enumResources.nextElement());
+         }
+         return resources;
+      }
+      catch (IOException e)
+      {
+         throw new ResourceLoadingException("Error loading resource " + name, e);
+      }
+   }
+
+   public void cleanup()
+   {
+      this.classLoader = null;
+   }
+}

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/helpers/BootstrapBean.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/helpers/BootstrapBean.java	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/helpers/BootstrapBean.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -1,13 +1,9 @@
 package org.jboss.weld.integration.deployer.env.helpers;
 
-import javax.servlet.ServletContext;
-
 import org.jboss.weld.bootstrap.api.Bootstrap;
 import org.jboss.weld.bootstrap.api.Environments;
 import org.jboss.weld.bootstrap.api.Service;
-import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
 import org.jboss.weld.bootstrap.spi.Deployment;
-import org.jboss.weld.context.api.BeanStore;
 import org.jboss.weld.ejb.spi.EjbServices;
 import org.jboss.weld.injection.spi.EjbInjectionServices;
 import org.jboss.weld.injection.spi.JpaInjectionServices;
@@ -15,7 +11,6 @@
 import org.jboss.weld.integration.deployer.env.bda.DeploymentImpl;
 import org.jboss.weld.security.spi.SecurityServices;
 import org.jboss.weld.serialization.spi.ProxyServices;
-import org.jboss.weld.servlet.api.ServletServices;
 import org.jboss.weld.transaction.spi.TransactionServices;
 import org.jboss.weld.validation.spi.ValidationServices;
 
@@ -28,30 +23,8 @@
 public class BootstrapBean
 {
 
-   static class JBossServletServices implements ServletServices
-   {
-
-      // For now, JBoss is using a totally flat deployment structure
-      private final BeanDeploymentArchive beanDeploymentArchive;
-
-      public JBossServletServices(BeanDeploymentArchive beanDeploymentArchive)
-      {
-         this.beanDeploymentArchive = beanDeploymentArchive;
-      }
-
-
-      public BeanDeploymentArchive getBeanDeploymentArchive(ServletContext ctx)
-      {
-         return beanDeploymentArchive;
-      }
-
-      public void cleanup() {}
-
-   }
-
    private final Bootstrap bootstrap;
    private final DeploymentImpl deployment;
-   private BeanStore applicationBeanStore;
 
    public BootstrapBean(Bootstrap bootstrap, DeploymentImpl deployment)
    {
@@ -89,11 +62,6 @@
       addDeploymentService(TransactionServices.class, transactionServices);
    }
 
-   public void setApplicationContext(BeanStore applicationContext)
-   {
-      this.applicationBeanStore = applicationContext;
-   }
-
    public void setValidationServices(ValidationServices validationServices)
    {
       addDeploymentService(ValidationServices.class, validationServices);
@@ -135,12 +103,7 @@
    public void initialize()
    {
       deployment.initialize(bootstrap);
-      // Create the JBoss Servlet Services
-      for (BeanDeploymentArchive beanDeploymentArchive: deployment.getBeanDeploymentArchives())
-      {
-         addDeploymentService(ServletServices.class, new JBossServletServices(beanDeploymentArchive));
-      }
-      bootstrap.startContainer(Environments.EE_INJECT, deployment, applicationBeanStore);
+      bootstrap.startContainer(Environments.EE_INJECT, deployment);
    }
 
    public void shutdown()

Modified: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockWeldBootstrap.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockWeldBootstrap.java	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockWeldBootstrap.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -31,7 +31,6 @@
 import org.jboss.weld.bootstrap.spi.BeansXml;
 import org.jboss.weld.bootstrap.spi.Deployment;
 import org.jboss.weld.bootstrap.spi.Metadata;
-import org.jboss.weld.context.api.BeanStore;
 import org.jboss.weld.manager.api.WeldManager;
 
 /**
@@ -54,7 +53,7 @@
 
    public void initialize()
    {
-      startContainer(null, null, null);
+      startContainer(null, null);
    }
 
    public void boot()
@@ -62,7 +61,7 @@
       startInitialization().deployBeans().validateBeans().endInitialization();
    }
 
-   public Bootstrap startContainer(Environment environment, Deployment deployment, BeanStore beanStore)
+   public Bootstrap startContainer(Environment environment, Deployment deployment)
    {
       create = true;
       return this;

Modified: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -29,8 +29,6 @@
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.weld.bootstrap.spi.Deployment;
-import org.jboss.weld.context.api.BeanStore;
-import org.jboss.weld.context.api.helpers.ConcurrentHashMapBeanStore;
 import org.jboss.weld.integration.deployer.DeployersUtils;
 import org.jboss.weld.integration.deployer.env.AbstractBootstrapInfoDeployer;
 import org.jboss.weld.integration.deployer.env.BootstrapInfo;
@@ -80,14 +78,5 @@
 
       unit.addAttachment(bootstrapName + "_" + BeanMetaData.class.getSimpleName(), bootstrap.getBeanMetaData());
    }
-
-   /**
-    * Create new bean store.
-    *
-    * @return the bean store instance
-    */
-   protected BeanStore createBeanStore()
-   {
-      return new ConcurrentHashMapBeanStore();
-   }
+   
 }
\ No newline at end of file

Modified: trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java
===================================================================
--- trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java	2010-11-01 19:45:17 UTC (rev 109062)
+++ trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java	2010-11-02 06:58:45 UTC (rev 109063)
@@ -21,8 +21,8 @@
 import javax.el.ExpressionFactory;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.faces.application.Application;
-import javax.faces.context.FacesContext;
-import javax.servlet.ServletContext;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 
 import org.jboss.weld.integration.webtier.util.Reflections;
 
@@ -95,14 +95,13 @@
 
    private static BeanManager beanManager()
    {
-      if (FacesContext.getCurrentInstance() != null && FacesContext.getCurrentInstance().getExternalContext().getContext() instanceof ServletContext)
+      try
       {
-         ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
-         return (BeanManager) servletContext.getAttribute(BeanManager.class.getName());
+         return (BeanManager) new InitialContext().lookup("java:comp/BeanManager");
       }
-      else
+      catch (NamingException e)
       {
-         return null;
+         throw new IllegalStateException("Unable to lookup java:comp/BeanManager", e);
       }
    }
 



More information about the jboss-cvs-commits mailing list