[jboss-cvs] JBossAS SVN: r91841 - in projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src: test/java/org/jboss/test/deployers/support and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 30 15:21:10 EDT 2009
Author: alesj
Date: 2009-07-30 15:21:10 -0400 (Thu, 30 Jul 2009)
New Revision: 91841
Added:
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/MockEmptyEjbServices.java
Modified:
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractBootstrapInfoDeployer.java
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractDeploymentDeployer.java
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/FlatDeploymentDeployer.java
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/WBDEWrapper.java
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/test/AbstractDeploymentTest.java
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/BootDeployerTestCase.xml
projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml
Log:
Fix Deployment addition to BootstrapInfo.
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractBootstrapInfoDeployer.java
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractBootstrapInfoDeployer.java 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractBootstrapInfoDeployer.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -21,8 +21,6 @@
*/
package org.jboss.webbeans.integration.deployer.env;
-import java.util.Collection;
-
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
@@ -30,7 +28,6 @@
import org.jboss.deployers.spi.deployer.DeploymentStages;
import org.jboss.deployers.spi.deployer.helpers.AbstractOptionalRealDeployer;
import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.virtual.VirtualFile;
import org.jboss.webbeans.integration.deployer.DeployersUtils;
/**
@@ -56,9 +53,7 @@
boolean doDeploy = (info != null);
if (doDeploy == false)
{
- @SuppressWarnings("unchecked")
- Collection<VirtualFile> wbFiles = unit.getAttachment(DeployersUtils.WEB_BEANS_FILES, Collection.class);
- doDeploy = (wbFiles != null && wbFiles.isEmpty() == false);
+ doDeploy = DeployersUtils.checkForWebBeansFiles(unit);
if (doDeploy)
{
// info is null, create one
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractDeploymentDeployer.java
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractDeploymentDeployer.java 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/AbstractDeploymentDeployer.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -22,8 +22,10 @@
package org.jboss.webbeans.integration.deployer.env;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.webbeans.bootstrap.spi.Deployment;
/**
* Abstract Deployment Deployer.
@@ -51,8 +53,10 @@
String unitName = unit.getName();
String deploymentName = unitName + "_JBossDeployment";
- BeanMetaData deploymentBMD = deploy(unit, info, deploymentName);
- unit.addAttachment(deploymentName, deploymentBMD, BeanMetaData.class);
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(deploymentName, getDeploymentClass().getName());
+ buildDeployment(unit, info, builder);
+ info.setDeployment(builder.createInject(deploymentName));
+ unit.addAttachment(deploymentName, builder.getBeanMetaData(), BeanMetaData.class);
}
/**
@@ -67,11 +71,17 @@
}
/**
- * Deploy.
+ * Get deployment impl class.
*
+ * @return the deployment class
+ */
+ protected abstract Class<? extends Deployment> getDeploymentClass();
+
+ /**
+ * Build deployment
+ *
* @param unit the deployment unit
* @param info the bootstrap info
- * @param deploymentName the deployment name
- * @return deployment's bean metadata
+ * @param builder the bean metadata builder
*/
- protected abstract BeanMetaData deploy(DeploymentUnit unit, BootstrapInfo info, String deploymentName);}
\ No newline at end of file
+ protected abstract void buildDeployment(DeploymentUnit unit, BootstrapInfo info, BeanMetaDataBuilder builder);}
\ No newline at end of file
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/FlatDeploymentDeployer.java
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/FlatDeploymentDeployer.java 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/FlatDeploymentDeployer.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -21,9 +21,9 @@
*/
package org.jboss.webbeans.integration.deployer.env;
-import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.webbeans.bootstrap.spi.Deployment;
/**
* Flat Deployment Deployer.
@@ -44,12 +44,15 @@
return unit.isAttachmentPresent(WebBeanDiscoveryEnvironment.class);
}
- protected BeanMetaData deploy(DeploymentUnit unit, BootstrapInfo info, String deploymentName)
+ protected Class<? extends Deployment> getDeploymentClass()
{
+ return FlatDeployment.class;
+ }
+
+ protected void buildDeployment(DeploymentUnit unit, BootstrapInfo info, BeanMetaDataBuilder builder)
+ {
WebBeanDiscoveryEnvironment env = unit.getAttachment(WebBeanDiscoveryEnvironment.class);
- BeanMetaDataBuilder deploymentWrapper = BeanMetaDataBuilder.createBuilder(deploymentName, FlatDeployment.class.getName());
- deploymentWrapper.addConstructorParameter(WebBeanDiscoveryEnvironment.class.getName(), env);
- deploymentWrapper.addConstructorParameter(Iterable.class.getName(), deploymentWrapper.createInject(info.getEjbServices().getUnderlyingValue(), "ejbs"));
- return deploymentWrapper.getBeanMetaData();
+ builder.addConstructorParameter(WebBeanDiscoveryEnvironment.class.getName(), env);
+ builder.addConstructorParameter(Iterable.class.getName(), builder.createInject(info.getEjbServices().getUnderlyingValue(), "ejbs"));
}
}
\ No newline at end of file
Copied: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/MockEmptyEjbServices.java (from rev 91831, projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbServices.java)
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/MockEmptyEjbServices.java (rev 0)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/MockEmptyEjbServices.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -0,0 +1,35 @@
+/*
+ * 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.test.deployers.support;
+
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class MockEmptyEjbServices extends MockEjbServices
+{
+ public Iterable<String> getEjbContainerNames()
+ {
+ return Collections.emptySet();
+ }
+}
\ No newline at end of file
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/WBDEWrapper.java
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/WBDEWrapper.java 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/WBDEWrapper.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -22,29 +22,47 @@
package org.jboss.test.deployers.support;
import java.net.URL;
+import java.util.List;
+import java.util.Set;
+import java.util.HashSet;
+import org.jboss.webbeans.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.webbeans.bootstrap.spi.Deployment;
import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
-import org.jboss.webbeans.integration.deployer.env.WebBeanDiscoveryEnvironment;
/**
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
public class WBDEWrapper implements WebBeanDiscovery
{
- protected final WebBeanDiscoveryEnvironment environment;
+ protected final Deployment deployment;
- public WBDEWrapper(WebBeanDiscoveryEnvironment environment)
+ public WBDEWrapper(Deployment deployment)
{
- this.environment = environment;
+ this.deployment = deployment;
}
public Iterable<Class<?>> discoverWebBeanClasses()
{
- return environment.getWebBeanClasses();
+ Set<Class<?>> result = new HashSet<Class<?>>();
+ List<BeanDeploymentArchive> bdas = deployment.getBeanDeploymentArchives();
+ for (BeanDeploymentArchive bda : bdas)
+ {
+ for (Class<?> clazz : bda.getBeanClasses())
+ result.add(clazz);
+ }
+ return result;
}
public Iterable<URL> discoverWebBeansXml()
{
- return environment.getWebBeansXml();
+ Set<URL> result = new HashSet<URL>();
+ List<BeanDeploymentArchive> bdas = deployment.getBeanDeploymentArchives();
+ for (BeanDeploymentArchive bda : bdas)
+ {
+ for (URL url : bda.getBeansXml())
+ result.add(url);
+ }
+ return result;
}
}
\ No newline at end of file
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/support/deployer/MockBootDeployer.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -25,43 +25,49 @@
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.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.webbeans.bootstrap.spi.Deployment;
import org.jboss.webbeans.context.api.BeanStore;
import org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore;
import org.jboss.webbeans.integration.deployer.DeployersUtils;
-import org.jboss.webbeans.integration.deployer.env.WebBeanDiscoveryEnvironment;
-import org.jboss.dependency.spi.ControllerState;
+import org.jboss.webbeans.integration.deployer.env.AbstractBootstrapInfoDeployer;
+import org.jboss.webbeans.integration.deployer.env.BootstrapInfo;
/**
* Mock wb boot deployer.
*
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
-public class MockBootDeployer extends AbstractSimpleRealDeployer<WebBeanDiscoveryEnvironment>
+public class MockBootDeployer extends AbstractBootstrapInfoDeployer
{
public MockBootDeployer()
{
- super(WebBeanDiscoveryEnvironment.class);
- setTopLevelOnly(true);
- setStage(DeploymentStages.PRE_REAL);
+ super(false);
+ setDisableOptional(true);
addOutput(BeanMetaData.class);
}
- public void deploy(DeploymentUnit unit, WebBeanDiscoveryEnvironment env) throws DeploymentException
+ public void deployInternal(DeploymentUnit unit, BootstrapInfo info) throws DeploymentException
{
+ ValueMetaData ejbServicesValue = info.getEjbServices();
+ if (ejbServicesValue == null)
+ throw new DeploymentException("Missing ejb services: " + unit);
+
+ ValueMetaData deploymentValue = info.getDeployment();
+ if (deploymentValue == null)
+ throw new DeploymentException("Missing deployment: " + unit);
+
String unitName = unit.getName();
String envName = unitName + "_JBossWebBeanDiscovery";
BeanMetaDataBuilder envWrapper = BeanMetaDataBuilder.createBuilder(envName, "org.jboss.test.deployers.support.WBDEWrapper");
- envWrapper.addConstructorParameter(WebBeanDiscoveryEnvironment.class.getName(), env);
+ envWrapper.addConstructorParameter(Deployment.class.getName(), deploymentValue);
unit.addAttachment(envName + "_" + BeanMetaData.class.getSimpleName(), envWrapper.getBeanMetaData());
String bootstrapName = DeployersUtils.getBootstrapBeanName(unit);
BeanMetaDataBuilder bootstrap = BeanMetaDataBuilder.createBuilder(bootstrapName, "org.jboss.test.deployers.support.MockWBBootstrap");
bootstrap.addPropertyMetaData("webBeanDiscovery", bootstrap.createInject(envName));
- ValueMetaData ejbServicesValue = createEjbConnector("JBossEjbServices", "org.jboss.test.deployers.support.MockEjbServices", unit);
bootstrap.addPropertyMetaData("ejbServices", ejbServicesValue);
bootstrap.addPropertyMetaData("transactionServices", bootstrap.createInject("JBossTransactionServices"));
bootstrap.addPropertyMetaData("applicationContext", createBeanStore());
@@ -88,23 +94,4 @@
{
return new ConcurrentHashMapBeanStore();
}
-
- /**
- * Create ejb connector.
- *
- * @param name the connector name
- * @param bean the bean to create
- * @param unit the deployment unit
- * @return new inject metadata
- */
- protected ValueMetaData createEjbConnector(String name, String bean, DeploymentUnit unit)
- {
- String beanName = unit.getName() + "_" + name;
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanName, bean);
- builder.setFactory(name);
- builder.setFactoryMethod("createBean");
- builder.addPropertyMetaData("deploymentUnit", unit);
- unit.addAttachment(beanName + "_" + BeanMetaData.class.getSimpleName(), builder.getBeanMetaData());
- return builder.createInject(beanName);
- }
}
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/test/AbstractDeploymentTest.java
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/test/AbstractDeploymentTest.java 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/java/org/jboss/test/deployers/test/AbstractDeploymentTest.java 2009-07-30 19:21:10 UTC (rev 91841)
@@ -29,7 +29,7 @@
import java.util.Set;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.test.deployers.support.MockEjbServices;
+import org.jboss.test.deployers.support.MockEmptyEjbServices;
import org.jboss.test.deployers.support.crm.CrmWebBean;
import org.jboss.test.deployers.support.ejb.BusinessInterface;
import org.jboss.test.deployers.support.ejb.MySLSBean;
@@ -40,6 +40,7 @@
import org.jboss.virtual.AssembledDirectory;
import org.jboss.webbeans.bootstrap.spi.BeanDeploymentArchive;
import org.jboss.webbeans.bootstrap.spi.Deployment;
+import org.jboss.webbeans.integration.deployer.DeployersUtils;
/**
* Abstract Deployment test case.
@@ -66,10 +67,12 @@
public void testSimpleUsage() throws Exception
{
- AssembledDirectory ear = createBasicEar(MockEjbServices.class);
+ AssembledDirectory ear = createBasicEar(MockEmptyEjbServices.class);
VFSDeploymentUnit topUnit = assertDeploy(ear);
try
{
+ assertBean(DeployersUtils.getBootstrapBeanName(topUnit), null, Object.class);
+
Object bean = getBean(Deployment.class);
Deployment deployment = assertInstanceOf(bean, Deployment.class, false);
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/BootDeployerTestCase.xml
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/BootDeployerTestCase.xml 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/BootDeployerTestCase.xml 2009-07-30 19:21:10 UTC (rev 91841)
@@ -17,6 +17,12 @@
<bean name="WarCLDeployer" class="org.jboss.test.deployers.support.deployer.MockWarClassLoaderDeployer"/>
<bean name="MockUrlIntDeployer" class="org.jboss.test.deployers.support.deployer.MockCoreIntegrationDeployer"/>
+ <bean name="EjbServicesDeployer" class="org.jboss.webbeans.integration.deployer.env.EjbServicesDeployer">
+ <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEjbServices</property>
+ </bean>
+
+ <bean name="DeploymentDeployer" class="org.jboss.webbeans.integration.deployer.env.FlatDeploymentDeployer"/>
+
<bean name="BootDeployer" class="org.jboss.test.deployers.support.deployer.MockBootDeployer"/>
<!-- Mock EJB utils -->
Modified: projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml
===================================================================
--- projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml 2009-07-30 18:56:05 UTC (rev 91840)
+++ projects/webbeans-ri-int/branches/5.2-alesj-deployment/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml 2009-07-30 19:21:10 UTC (rev 91841)
@@ -7,11 +7,24 @@
<bean name="WBFilesDeployer" class="org.jboss.webbeans.integration.deployer.metadata.WebBeansFilesDeployer"/>
<bean name="WBDiscoveryDeployer" class="org.jboss.webbeans.integration.deployer.env.WebBeanDiscoveryDeployer"/>
- <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEjbServices"/>
+ <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEmptyEjbServices"/>
<bean name="EjbServicesDeployer" class="org.jboss.webbeans.integration.deployer.env.EjbServicesDeployer">
- <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEjbServices</property>
+ <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEmptyEjbServices</property>
</bean>
<bean name="DeploymentDeployer" class="org.jboss.webbeans.integration.deployer.env.FlatDeploymentDeployer"/>
+
+ <bean name="BootDeployer" class="org.jboss.test.deployers.support.deployer.MockBootDeployer"/>
+
+ <bean name="DynamicDependencyCreator" class="org.jboss.webbeans.integration.deployer.env.DynamicDependencyCreator">
+ <constructor>
+ <parameter><inject bean="jboss.kernel:service=KernelController"/></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="JBossTransactionServices" class="org.jboss.test.deployers.support.MockTransactionServices"/>
+
+ <bean name="RealTransactionManager" class="java.lang.Object"/>
+
</deployment>
More information about the jboss-cvs-commits
mailing list