[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