[jboss-cvs] JBossAS SVN: r106875 - in projects/weld-int/branches/Deployment_WELDINT-1/deployer/src: test/java/org/jboss/test/deployers/test and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jul 19 23:47:07 EDT 2010
Author: flavia.rainone at jboss.com
Date: 2010-07-19 23:47:07 -0400 (Mon, 19 Jul 2010)
New Revision: 106875
Added:
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveLifecycleListener.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractSingleArchiveTest.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml
Removed:
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BDALifecycleListener.java
Modified:
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveCollection.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveToClasspath.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Classpath.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathImpl.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/DeploymentImpl.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/SecurityActions.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractEnvironmentTest.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/ArchiveEnvironmentTestCase.java
projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java
Log:
[WELDINT-1] Fix
- clean up of the Archive/BDA structure created by the deployers
- loadBeanDeploymentArchive implementation
Implement the LoadBeanDeploymentArchiveTestCase.
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Archive.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -67,7 +67,7 @@
private final Collection<EjbDescriptor<?>> ejbs;
// the list of all bdaLifecycleListeners
- private final Collection<BDALifecycleListener> bdaLifecycleListeners;
+ private final Collection<ArchiveLifecycleListener> lifecycleListeners;
/**
* Constructor. Can only be called by ArchiveFactory.
@@ -79,7 +79,7 @@
*/
public Archive(ArchiveInfo archiveInfo, Collection<EjbDescriptor<?>> ejbs)
{
- this.bdaLifecycleListeners = new ArrayList<BDALifecycleListener>();
+ this.lifecycleListeners = new ArrayList<ArchiveLifecycleListener>();
this.classes = archiveInfo.getEnvironment().getWeldClasses();
this.xmlURLs = archiveInfo.getEnvironment().getWeldXml();
this.classLoader = archiveInfo.getClassLoader();
@@ -110,6 +110,26 @@
}
/**
+ * Indicates whether {@code beanClass} is visible to this BDA
+ * @param beanClass the beanClass
+ * @return {@code true} if {@code beanClass} is visible to this BDA
+ */
+ public boolean isClassVisible(Class<?> beanClass)
+ {
+ Class<?> loadedClass = null;
+ try
+ {
+ loadedClass = this.getClassLoader().loadClass(beanClass.getName());
+ }
+ catch (ClassNotFoundException e)
+ {
+ return false;
+ }
+ return loadedClass == beanClass;
+ }
+
+
+ /**
* Adds a class to this archive.
*
* @param beanClass a class whose ClassLoader is associated with this archive
@@ -173,8 +193,8 @@
}
/**
- * Creates the BeanDeploymentArchive that corresponds to this archive. This method never
- * returns duplicates.
+ * Creates the BeanDeploymentArchive that corresponds to this archive. This method
+ * never returns duplicates.
*
* @return the BeanDeploymentArchive representing this archive. If this bda has not
* been created, it is created and returned
@@ -184,24 +204,26 @@
if (bda == null)
{
bda = new BeanDeploymentArchiveImpl(classLoader.toString(), this);
- for (BDALifecycleListener listener: bdaLifecycleListeners)
+ for (ArchiveLifecycleListener listener: lifecycleListeners)
{
- listener.bdaCreated(bda);
+ // notifies the listener that this archive became visible as a BDA
+ listener.archiveVisible(this, bda);
}
}
return bda;
}
/**
- * Adds a BDALifecycleListener. When called prior to BDA creation, this listener will
- * be notified of the BDA creation. The listener will also be notified when the bda is
+ * Adds an ArchiveLifecycleListener. When called prior to BDA creation, this listener
+ * will be notified when this archive becomes visible through the BDA view. The
+ * listener will also be notified when this archive (and its BDA, if available) is
* destroyed (undeployment)
*
- * @param listener a BDALifecycleListener
+ * @param listener an ArchiveLifecycleListener
*/
- public void addBDALifecycleListener(BDALifecycleListener listener)
+ public void addLifecycleListener(ArchiveLifecycleListener listener)
{
- this.bdaLifecycleListeners.add(listener);
+ this.lifecycleListeners.add(listener);
}
/**
@@ -219,12 +241,9 @@
*/
public void undeploy()
{
- if (bda != null)
+ for (ArchiveLifecycleListener listener: lifecycleListeners)
{
- for (BDALifecycleListener listener: bdaLifecycleListeners)
- {
- listener.bdaDestroyed(bda);
- }
+ listener.archiveDestroyed(this);
}
}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveCollection.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveCollection.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveCollection.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -35,7 +35,7 @@
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
-class ArchiveCollection implements BDALifecycleListener, Iterable<Archive>
+class ArchiveCollection implements ArchiveLifecycleListener, Iterable<Archive>
{
// the archives collection
protected Collection<Archive> archives = new ArrayList<Archive>();
@@ -51,7 +51,7 @@
public synchronized void add(Archive archive)
{
archives.add(archive);
- archive.addBDALifecycleListener(this);
+ archive.addLifecycleListener(this);
}
/**
@@ -74,7 +74,7 @@
return this.bdas;
}
- public synchronized void bdaCreated(BeanDeploymentArchiveImpl bda)
+ public synchronized void archiveVisible(Archive archive, BeanDeploymentArchive bda)
{
synchronized(bdas)
{
@@ -82,12 +82,16 @@
}
}
- public synchronized void bdaDestroyed(BeanDeploymentArchiveImpl bda)
+ public synchronized void archiveDestroyed(Archive archive)
{
synchronized(bdas)
{
- archives.remove(bda.getArchive());
- bdas.remove(bda);
+ archives.remove(archive);
+ BeanDeploymentArchive bda = archive.getBeanDeploymentArchive();
+ if (bda != null)
+ {
+ bdas.remove(bda);
+ }
}
}
}
Copied: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveLifecycleListener.java (from rev 106548, projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BDALifecycleListener.java)
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveLifecycleListener.java (rev 0)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveLifecycleListener.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -0,0 +1,51 @@
+/*
+ * 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.bda;
+
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+
+
+/**
+ * Observes the lifecyle of a BeanDeploymentArchive.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision: 1.1
+ * @see Archive#addLifecycleListener(BDALifecycleListener)
+ */
+interface ArchiveLifecycleListener
+{
+ /**
+ * Notifies this listener that an Archive is visible to Weld classes in the form of
+ * a BDA.
+ *
+ * @param archive the archive whose corresponding BDA was created
+ * @param bda a Weld spi view that represents {@code archive}
+ */
+ public void archiveVisible(Archive archive, BeanDeploymentArchive bda);
+
+ /**
+ * Notifies that {@code archive} is being destroyed.
+ *
+ * @param archive the archive
+ */
+ public void archiveDestroyed(Archive archive);
+}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveToClasspath.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveToClasspath.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ArchiveToClasspath.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -35,7 +35,7 @@
* @version $Revision$
* @see Classpath
*/
-class ArchiveToClasspath implements Classpath, BDALifecycleListener
+class ArchiveToClasspath implements Classpath, ArchiveLifecycleListener
{
// the archive
private Archive archive;
@@ -65,6 +65,11 @@
{
return archives.iterator();
}
+
+ public Classpath getClasspath()
+ {
+ return archive.getClasspath();
+ }
public Collection<BeanDeploymentArchive> getBDAs(BeanDeploymentArchive bda)
{
@@ -75,13 +80,13 @@
return this.bda;
}
- public void bdaCreated(BeanDeploymentArchiveImpl bda)
+ public void archiveVisible(Archive archive, BeanDeploymentArchive bda)
{
this.bda = new ArrayList<BeanDeploymentArchive>();
this.bda.add(bda);
}
- public void bdaDestroyed(BeanDeploymentArchiveImpl bda)
+ public void archiveDestroyed(Archive archive)
{
// do nothing, as this instance is also being destroyed
}
Deleted: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BDALifecycleListener.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BDALifecycleListener.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/BDALifecycleListener.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -1,48 +0,0 @@
-/*
- * 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.bda;
-
-import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
-
-/**
- * Observes the lifecyle of a BeanDeploymentArchive.
- *
- * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision: 1.1
- * @see Archive#addBDALifecycleListener(BDALifecycleListener)
- */
-interface BDALifecycleListener
-{
- /**
- * Notifies that {@code bda} has been created.
- *
- * @param bda the BeanDeploymentArchive
- */
- public void bdaCreated(BeanDeploymentArchiveImpl bda);
-
- /**
- * Notifies that {@code bda} is being destroyed.
- *
- * @param bda the BeanDeploymentArchive
- */
- public void bdaDestroyed(BeanDeploymentArchiveImpl bda);
-}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Classpath.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Classpath.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/Classpath.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -57,6 +57,13 @@
* @return an iterator for iterating over all archives that are part of this classpath
*/
Iterator<Archive> iterator();
+
+ /**
+ * Returns the parent classpath of this classpath.
+ *
+ * @return the parent classpath of this classpath
+ */
+ Classpath getClasspath();
/**
* Returns the collection of all BeanDeploymentArchive instances reachable from
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathFactory.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -55,6 +55,8 @@
// the default classpath, corresponds to DefaultDomain
public static final Classpath DEFAULT = new ClasspathImpl("DefaultDomain");
+ private static final ClassLoaderDomain DEFAULT_DOMAIN = ClassLoaderSystem.getInstance().getDefaultDomain();
+
// the ClassLoaderSystem
private final ClassLoaderSystem system;
@@ -88,7 +90,7 @@
// FIXME: remove classLoader parameter!
private Classpath getClasspath(ClassLoader cl, Loader domain)
{
- if (domain == null)
+ if (domain == null || domain == DEFAULT_DOMAIN)
{
return DEFAULT;
}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathImpl.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathImpl.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/ClasspathImpl.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -35,7 +35,7 @@
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
-class ClasspathImpl implements Classpath, BDALifecycleListener
+class ClasspathImpl implements Classpath, ArchiveLifecycleListener
{
private Collection<Archive> archives = new ArrayList<Archive>();
private Classpath classpath;
@@ -77,13 +77,18 @@
public void addArchive(Archive archive)
{
archives.add(archive);
- archive.addBDALifecycleListener(this);
+ archive.addLifecycleListener(this);
}
public Iterator<Archive> iterator()
{
return archives.iterator();
}
+
+ public Classpath getClasspath()
+ {
+ return this.classpath;
+ }
public Collection<BeanDeploymentArchive> getBDAs(BeanDeploymentArchive bda)
{
@@ -122,13 +127,13 @@
return bdas;
}
- public void bdaCreated(BeanDeploymentArchiveImpl bda)
+ public void archiveVisible(Archive archive, BeanDeploymentArchive bda)
{
// do nothing, as this classpath impl doesn't keep track of bdas created
}
- public void bdaDestroyed(BeanDeploymentArchiveImpl bda)
+ public void archiveDestroyed(Archive archive)
{
- archives.remove(bda.getArchive());
+ archives.remove(archive);
}
}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/DeploymentImpl.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/DeploymentImpl.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/DeploymentImpl.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -21,6 +21,7 @@
*/
package org.jboss.weld.integration.deployer.env.bda;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
@@ -48,6 +49,10 @@
// the services provided by this deployment
private final ServiceRegistry services;
+ // a collection of all archives that have been loaded by this DeploymentImpl, i.e.
+ // created for the purpose of serving loadBeanDeploymentArchive
+ private Collection<Archive> loadedArchives;
+
/**
* Constructor.
*
@@ -94,12 +99,26 @@
Archive archive = findArchive(beanClass, archives, searchedArchives, searchedClasspaths);
if (archive == null)
{
- throw new IllegalArgumentException("Bean class " + beanClass + " is not reachable from deployment " + this);
+ boolean reachable = false;
+ for (Archive searchedArchive: searchedArchives)
+ {
+ if (searchedArchive.isClassVisible(beanClass))
+ {
+ reachable = true;
+ break;
+ }
+ }
+ if (!reachable)
+ throw new IllegalArgumentException("Bean class " + beanClass + " is not reachable from deployment " + this);
+ ArchiveInfo archiveInfo = new ArchiveInfo(SecurityActions.getClassLoader(beanClass));
+ archive = ArchiveFactory.createArchive(archiveInfo, new ArrayList<EjbDescriptor<?>>());
+ if (loadedArchives == null)
+ {
+ loadedArchives = new ArrayList<Archive>();
+ }
+ loadedArchives.add(archive);
}
- if (!archive.containsClass(beanClass))
- {
- archive.addClass(beanClass);
- }
+ archive.addClass(beanClass);
return archive.createBeanDeploymentArchive();
}
@@ -111,6 +130,14 @@
iterator.remove();
archive.undeploy();
}
+ if (loadedArchives != null)
+ {
+ for (Archive archive: loadedArchives)
+ {
+ // FIXME this does not work ok
+ archive.undeploy();
+ }
+ }
}
public String toString()
@@ -133,20 +160,34 @@
else
{
searchedArchives.add(archive);
- Classpath classpath = archive.getClasspath();
- if (!searchedClasspaths.contains(classpath))
+ Archive found = searchThroughClasspath(archive.getClasspath(), beanClass, searchedArchives, searchedClasspaths);
+ if (found != null)
{
- searchedClasspaths.add(classpath);
- Archive found = findArchive(beanClass, classpath, searchedArchives, searchedClasspaths);
- if (found != null)
- {
- return found;
- }
+ return found;
}
}
}
}
}
- throw new IllegalArgumentException("Bean class " + beanClass + " is not in " + this + " classpath");
+ return null;
}
+
+ private Archive searchThroughClasspath(Classpath classpath, Class<?> beanClass, Collection<Archive> searchedArchives, Collection<Classpath> searchedClasspaths)
+ {
+ if (!searchedClasspaths.contains(classpath))
+ {
+ searchedClasspaths.add(classpath);
+ Archive found = findArchive(beanClass, classpath, searchedArchives, searchedClasspaths);
+ if (found != null)
+ {
+ return found;
+ }
+ Classpath parentClasspath = classpath.getClasspath();
+ if (parentClasspath != null)
+ {
+ return searchThroughClasspath(classpath.getClasspath(), beanClass, searchedArchives, searchedClasspaths);
+ }
+ }
+ return null;
+ }
}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/NoDuplicatesClasspath.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -89,6 +89,11 @@
add(archive);
}
+ public Classpath getClasspath()
+ {
+ return this.classpath;
+ }
+
public Collection<BeanDeploymentArchive> getBDAs(BeanDeploymentArchive bda)
{
// if reference is null, it means that no BDA is contained in this classpath
@@ -109,7 +114,7 @@
}
@Override
- public void bdaCreated(BeanDeploymentArchiveImpl bda)
+ public void archiveVisible(Archive archive, BeanDeploymentArchive bda)
{
synchronized(bdas)
{
@@ -121,36 +126,39 @@
else
{
//only add to BDAs collection the BDAs that are not reference
- super.bdaCreated(bda);
+ super.archiveVisible(archive, bda);
}
}
}
@Override
- public void bdaDestroyed(BeanDeploymentArchiveImpl bda)
+ public void archiveDestroyed(Archive archive)
{
- synchronized(bdas)
+ BeanDeploymentArchive bda = archive.getBeanDeploymentArchive();
+ if (bda != null)
{
- if (reference == bda)
+ synchronized(bdas)
{
- reference = null;
- referenceCollection.clear();
- if (!bdas.isEmpty())
+ if (reference == bda)
{
- Iterator<BeanDeploymentArchive> iterator = bdas.iterator();
- reference = iterator.next();
- iterator.remove();
- referenceCollection.add(reference);
+ reference = null;
+ referenceCollection.clear();
+ if (!bdas.isEmpty())
+ {
+ Iterator<BeanDeploymentArchive> iterator = bdas.iterator();
+ reference = iterator.next();
+ iterator.remove();
+ referenceCollection.add(reference);
+ }
}
+ else
+ {
+ super.archiveDestroyed(archive);
+ }
}
- else
- {
- super.bdaDestroyed(bda);
- }
}
synchronized(this)
{
- Archive archive = ((BeanDeploymentArchiveImpl) bda).getArchive();
archives.remove(archive);
}
}
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/SecurityActions.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/SecurityActions.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/main/java/org/jboss/weld/integration/deployer/env/bda/SecurityActions.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -70,6 +70,17 @@
throw new RuntimeException(e);
}
}
+
+ public static ClassLoader getClassLoader(final Class<?> clazz)
+ {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+ {
+ public ClassLoader run()
+ {
+ return clazz.getClassLoader();
+ }
+ });
+ }
public static Module getModuleForClassLoader(final ClassLoader classLoader)
{
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractEnvironmentTest.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractEnvironmentTest.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractEnvironmentTest.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -27,26 +27,15 @@
import java.util.Iterator;
import java.util.Set;
-import junit.framework.Test;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.container.LibraryContainer;
-import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.test.deployers.support.MockArchiveManifest;
import org.jboss.test.deployers.support.crm.CrmWebBean;
-import org.jboss.test.deployers.support.ejb.BusinessInterface;
-import org.jboss.test.deployers.support.ejb.MySLSBean;
-import org.jboss.test.deployers.support.ext.ExternalWebBean;
import org.jboss.test.deployers.support.jar.PlainJavaBean;
-import org.jboss.test.deployers.support.jsf.NotWBJsfBean;
import org.jboss.test.deployers.support.ui.UIWebBean;
-import org.jboss.test.deployers.support.util.SomeUtil;
import org.jboss.test.deployers.support.web.ServletWebBean;
-import org.jboss.vfs.VirtualFile;
-import org.jboss.wsf.spi.metadata.j2ee.SLSBMetaData;
/**
* Abstract Environment test case.
@@ -65,380 +54,6 @@
super(name);
}
- public static Test suite()
- {
- return suite(AbstractEnvironmentTest.class);
- }
-
- protected DeploymentUnit unit;
-
- public void tearDown() throws Exception
- {
- undeploy(unit);
- super.tearDown();
- }
-
- public void testEjbJar() throws Exception
- {
- JavaArchive ejbJar = createEjbJar(true);
- unit = assertDeploy(ejbJar);
-
- E environment = assertSingleEnvironment(EJB_JAR_NAME);
- assertExpectedClasses(environment, PlainJavaBean.class);
- assertExpectedResources(environment, "ejb.jar");
- }
-
- public void testEjbJarWithoutXml() throws Exception
- {
- JavaArchive ejbJar = createEjbJar(false);
- unit = assertDeploy(ejbJar);
-
- assertEmptyEnvironment();
- }
-
- public void testEjbJarInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
- JavaArchive ejbJar = createEjbJar(true);
- ear.addModule(ejbJar);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment(EAR_NAME);
- assertExpectedClasses(environment, PlainJavaBean.class);
- assertExpectedResources(environment, unit.getSimpleName() + "/ejb.jar");
- }
-
- public void testEjbJarWithoutXmlInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
- JavaArchive ejbJar = createEjbJar(false);
- ear.addModule(ejbJar);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- assertEmptyEnvironment();
- }
-
- public void testEjbJarsInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
- JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", true, PlainJavaBean.class);
- ear.addModule(ejbJar1);
- JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, SLSBMetaData.class);
- ear.addModule(ejbJar2);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment(EAR_NAME);
- assertExpectedClasses(environment, PlainJavaBean.class, MySLSBean.class,
- SLSBMetaData.class);
- assertExpectedResources(environment, EAR_NAME + "/ejbJar1.jar",
- EAR_NAME + "/ejbJar2.jar");
- }
-
- public void testMixedEjbJarsInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
- JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", false, PlainJavaBean.class);
- ear.addModule(ejbJar1);
- JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, SLSBMetaData.class);
- ear.addModule(ejbJar2);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment(EAR_NAME);
- assertExpectedClasses(environment, MySLSBean.class, SLSBMetaData.class);
- assertExpectedResources(environment, "simple.ear/ejbJar2.jar");
- }
-
- public void testEjbJarsWithoutXmlInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
- JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", false, PlainJavaBean.class);
- ear.addModule(ejbJar1);
- JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", false, MySLSBean.class, SLSBMetaData.class);
- ear.addModule(ejbJar2);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- assertEmptyEnvironment();
- }
-
- public void testWar() throws Exception
- {
- WebArchive war = createWar(true);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), true);
- }
-
- public void testWarWithLib() throws Exception
- {
- WebArchive war = createWarWithLib(true, true);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), true, "lib.jar");
- }
-
- public void testWarWithLibs() throws Exception
- {
- WebArchive war = createWarWithLibs(true, true, true);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class, CrmWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), true, "lib1.jar", "lib2.jar");
- }
-
- public void testWarWithLibWithoutXml() throws Exception
- {
- WebArchive war = createWarWithLib(true, false);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), true);
- }
-
- public void testWarWithLibsWithoutXml() throws Exception
- {
- WebArchive war = createWarWithLibs(true, false, false);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), true);
- }
-
- public void testWarWithMixedLibs() throws Exception
- {
- WebArchive war = createWarWithLibs(true, true, false);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), true, "lib1.jar");
- }
-
- public void testWarWithoutXmlWithLib() throws Exception
- {
- WebArchive war = createWarWithLib(false, true);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, UIWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), false, "lib.jar");
- }
-
- public void testWarWithoutXmlWithLibs() throws Exception
- {
- WebArchive war = createWarWithLibs(false, true, true);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, UIWebBean.class, CrmWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), false, "lib1.jar", "lib2.jar");
- }
-
- public void testWarWithoutXmlWithLibWithoutXml() throws Exception
- {
- WebArchive war = createWarWithLib(false, false);
- unit = assertDeploy(war);
-
- assertEmptyEnvironment();
- }
-
- public void testWarWithoutXmlWithMixedLibs() throws Exception
- {
- WebArchive war = createWarWithLibs(false, true, false);
- unit = assertDeploy(war);
-
- E environment = assertSingleEnvironment(WAR_NAME);
- assertExpectedClasses(environment, UIWebBean.class);
- assertExpectedWarResources(environment, unit.getSimpleName(), false, "lib1.jar");
- }
-
- public void testWarWithoutXmlWithLibsWithoutXml() throws Exception
- {
- WebArchive war = createWarWithLibs(false, false, false);
- unit = assertDeploy(war);
-
- assertEmptyEnvironment();
- }
-
- public void testWarWithoutXml() throws Exception
- {
- WebArchive war = createWar(false);
- unit = assertDeploy(war);
-
- assertEmptyEnvironment();
- }
-
- public void testWarInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWar(true);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment("warinear.ear/simple.war");
- assertExpectedClasses(environment, ServletWebBean.class);
- assertExpectedWarResources(environment, "warinear.ear/simple.war", true);
- }
-
- public void testWarsInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWar("simple1.war", true, ServletWebBean.class);
- ear.addModule(war);
- war = createWar("simple2.war", true, NotWBJsfBean.class);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- assertWarsInEar();
- }
-
- protected abstract void assertWarsInEar();
-
- public void testMixedWarsInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWar("simple1.war", true, ServletWebBean.class);
- ear.addModule(war);
- war = createWar("simple2.war", false, NotWBJsfBean.class);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment("warinear.ear/simple1.war");
- assertExpectedClasses(environment, ServletWebBean.class);
- assertExpectedWarResources(environment, "warinear.ear/simple1.war", true);
- }
-
- public void testWarsWithoutXmlInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWar("simple1.war", false, ServletWebBean.class);
- ear.addModule(war);
- war = createWar("simple2.war", false, NotWBJsfBean.class);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- assertEmptyEnvironment();
- }
-
- public void testWarWithLibInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWarWithLib(true, true);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment("warinear.ear/" + WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class);
- assertExpectedWarResources(environment, "warinear.ear/" + WAR_NAME, true, "lib.jar");
- }
-
- public void testWarWithLibWithoutXmlInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWarWithLib(true, false);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment("warinear.ear/" + WAR_NAME);
- assertExpectedClasses(environment, ServletWebBean.class);
- assertExpectedWarResources(environment, "warinear.ear/" + WAR_NAME, true);
- }
-
- public void testWarWithoutXmlWithLibWithoutXmlInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWarWithLib(false, false);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- assertEmptyEnvironment();
- }
-
- public void testWarWithoutXmlWithLibInEar() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
- WebArchive war = createWarWithLib(false, true);
- ear.addModule(war);
- MockArchiveManifest.addManifest(ear);
- unit = assertDeploy(ear);
-
- E environment = assertSingleEnvironment("warinear.ear/" + WAR_NAME);
- assertExpectedClasses(environment, UIWebBean.class);
- assertExpectedWarResources(environment, "warinear.ear/" + WAR_NAME, false, "lib.jar");
- }
-
- public void testBasicEar() throws Exception
- {
- VirtualFile ear = createBasicEar();
- unit = assertDeploy(ear);
-
- assertBasicEar();
- }
-
- protected abstract void assertBasicEar();
-
- public void testBasicEarFullCDI() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("top-level.ear", EnterpriseArchive.class);
- createLib(ear, "util.jar", true, SomeUtil.class);
- createLib(ear, "ext.jar", true, ExternalWebBean.class);
- JavaArchive ejbJar = createEjbJar("simple.jar", true, PlainJavaBean.class);
- ear.addModule(ejbJar);
- ejbJar = createEjbJar("ejbs.jar", true, MySLSBean.class, BusinessInterface.class);
- ear.addModule(ejbJar);
- WebArchive war = createWar("simple.war", true, ServletWebBean.class);
- createLib(war, "ui.jar", true, UIWebBean.class);
- ear.addModule(war);
- war = createWar("crm.war", true, NotWBJsfBean.class);
- createLib(war, "crm.jar", true, CrmWebBean.class);
- ear.addModule(war);
- unit = assertDeploy(ear);
-
- assertBasicEarFullCDI();
- }
-
- protected abstract void assertBasicEarFullCDI();
-
- public void testBasicEarWithoutXml() throws Exception
- {
- EnterpriseArchive ear = ShrinkWrap.create("simple.ear", EnterpriseArchive.class);
- createLib(ear, "util.jar", false, SomeUtil.class);
- createLib(ear, "ext.jar", false, ExternalWebBean.class);
- JavaArchive ejbJar = createEjbJar("simple.jar", false, PlainJavaBean.class);
- ear.addModule(ejbJar);
- ejbJar = createEjbJar("ejbs.jar", false, MySLSBean.class, BusinessInterface.class);
- ear.addModule(ejbJar);
- WebArchive war = createWar("simple.war", false, ServletWebBean.class);
- createLib(war, "ui.jar", false, UIWebBean.class);
- ear.addModule(war);
- war = createWar("crm.war", false, NotWBJsfBean.class);
- createLib(war, "crm.jar", false, CrmWebBean.class);
- ear.addModule(war);
- unit = assertDeploy(ear);
-
- assertBasicEarWithoutXml();
- }
-
- protected abstract void assertBasicEarWithoutXml();
-
private static void addExpectedResource(Set<String> expected, String unit)
{
addExpectedResource(expected, unit, "/META-INF/beans.xml");
@@ -522,13 +137,12 @@
assertExpectedResources(environment, expected);
}
- // TODO extract these methods for Deployment.loadBeanDeploymentArchive tests
- private JavaArchive createEjbJar(boolean jarCDI)
+ protected JavaArchive createEjbJar(boolean jarCDI)
{
return createEjbJar(EJB_JAR_NAME, jarCDI, PlainJavaBean.class);
}
- private JavaArchive createEjbJar(String jarName, boolean jarCDI, Class<?>... classes)
+ protected JavaArchive createEjbJar(String jarName, boolean jarCDI, Class<?>... classes)
{
JavaArchive ejbJar = ShrinkWrap.create(jarName, JavaArchive.class);
for (Class<?> clazz: classes)
@@ -539,12 +153,12 @@
return ejbJar;
}
- private WebArchive createWar(boolean warCDI)
+ protected WebArchive createWar(boolean warCDI)
{
return createWar(WAR_NAME, warCDI, ServletWebBean.class);
}
- private WebArchive createWar(String warName, boolean warCDI, Class<?>... classes)
+ protected WebArchive createWar(String warName, boolean warCDI, Class<?>... classes)
{
WebArchive war = ShrinkWrap.create(warName, WebArchive.class);
for (Class<?> clazz: classes)
@@ -555,14 +169,14 @@
return war;
}
- private WebArchive createWarWithLib(boolean warCDI, boolean libCDI)
+ protected WebArchive createWarWithLib(boolean warCDI, boolean libCDI)
{
WebArchive war = createWar(warCDI);
createLib(war, "lib.jar", libCDI, UIWebBean.class);
return war;
}
- private WebArchive createWarWithLibs(boolean warCDI, boolean lib1CDI, boolean lib2CDI)
+ protected WebArchive createWarWithLibs(boolean warCDI, boolean lib1CDI, boolean lib2CDI)
{
WebArchive war = createWar(warCDI);
createLib(war, "lib1.jar", lib1CDI, UIWebBean.class);
@@ -570,7 +184,7 @@
return war;
}
- private void createLib(LibraryContainer<?> archive, String libName, boolean cdi, Class<?>... classes)
+ protected void createLib(LibraryContainer<?> archive, String libName, boolean cdi, Class<?>... classes)
{
JavaArchive lib = ShrinkWrap.create(libName, JavaArchive.class);
if (cdi)
@@ -585,19 +199,6 @@
}
/**
- * Asserts that there is only one environment resultant from the deployment.
- *
- * @param name the name of the environment
- * @return the environment
- */
- protected abstract E assertSingleEnvironment(String name);
-
- /**
- * Asserts that there is no environment resultant from the deployment.
- */
- protected abstract void assertEmptyEnvironment();
-
- /**
* Returns the classes recorded in the environment.
*
* @param environment the environment
Added: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractSingleArchiveTest.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractSingleArchiveTest.java (rev 0)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractSingleArchiveTest.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -0,0 +1,431 @@
+/*
+ * 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.test;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.test.deployers.support.MockArchiveManifest;
+import org.jboss.test.deployers.support.crm.CrmWebBean;
+import org.jboss.test.deployers.support.ejb.BusinessInterface;
+import org.jboss.test.deployers.support.ejb.MySLSBean;
+import org.jboss.test.deployers.support.ext.ExternalWebBean;
+import org.jboss.test.deployers.support.jar.PlainJavaBean;
+import org.jboss.test.deployers.support.jsf.NotWBJsfBean;
+import org.jboss.test.deployers.support.ui.UIWebBean;
+import org.jboss.test.deployers.support.util.SomeUtil;
+import org.jboss.test.deployers.support.web.ServletWebBean;
+import org.jboss.vfs.VirtualFile;
+
+/**
+ * Abstract test case that contains scenarios involving the deployment of a single archive.
+ * This test does not contain test scenarios that assert the behaviour when more than one
+ * archive is deployed at the same time.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @param E the type of environment this test applies to
+ */
+public abstract class AbstractSingleArchiveTest<E> extends AbstractEnvironmentTest<E>
+{
+ public AbstractSingleArchiveTest(String name)
+ {
+ super(name);
+ }
+
+ protected DeploymentUnit unit;
+
+ public void testEjbJar() throws Exception
+ {
+ JavaArchive ejbJar = createEjbJar(true);
+ unit = assertDeploy(ejbJar);
+
+ E environment = assertSingleEnvironment(EJB_JAR_NAME);
+ assertExpectedClasses(environment, PlainJavaBean.class);
+ assertExpectedResources(environment, "ejb.jar");
+ }
+
+ public void testEjbJarWithoutXml() throws Exception
+ {
+ JavaArchive ejbJar = createEjbJar(false);
+ unit = assertDeploy(ejbJar);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testEjbJarInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar = createEjbJar(true);
+ ear.addModule(ejbJar);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment(EAR_NAME);
+ assertExpectedClasses(environment, PlainJavaBean.class);
+ assertExpectedResources(environment, unit.getSimpleName() + "/ejb.jar");
+ }
+
+ public void testEjbJarWithoutXmlInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar = createEjbJar(false);
+ ear.addModule(ejbJar);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testEjbJarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", true, PlainJavaBean.class);
+ ear.addModule(ejbJar1);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment(EAR_NAME);
+ assertExpectedClasses(environment, PlainJavaBean.class, MySLSBean.class,
+ BusinessInterface.class);
+ assertExpectedResources(environment, EAR_NAME + "/ejbJar1.jar",
+ EAR_NAME + "/ejbJar2.jar");
+ }
+
+ public void testMixedEjbJarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", false, PlainJavaBean.class);
+ ear.addModule(ejbJar1);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment(EAR_NAME);
+ assertExpectedClasses(environment, MySLSBean.class, BusinessInterface.class);
+ assertExpectedResources(environment, "simple.ear/ejbJar2.jar");
+ }
+
+ public void testEjbJarsWithoutXmlInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", false, PlainJavaBean.class);
+ ear.addModule(ejbJar1);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", false, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testWar() throws Exception
+ {
+ WebArchive war = createWar(true);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), true);
+ }
+
+ public void testWarWithLib() throws Exception
+ {
+ WebArchive war = createWarWithLib(true, true);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), true, "lib.jar");
+ }
+
+ public void testWarWithLibs() throws Exception
+ {
+ WebArchive war = createWarWithLibs(true, true, true);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class, CrmWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), true, "lib1.jar", "lib2.jar");
+ }
+
+ public void testWarWithLibWithoutXml() throws Exception
+ {
+ WebArchive war = createWarWithLib(true, false);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), true);
+ }
+
+ public void testWarWithLibsWithoutXml() throws Exception
+ {
+ WebArchive war = createWarWithLibs(true, false, false);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), true);
+ }
+
+ public void testWarWithMixedLibs() throws Exception
+ {
+ WebArchive war = createWarWithLibs(true, true, false);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), true, "lib1.jar");
+ }
+
+ public void testWarWithoutXmlWithLib() throws Exception
+ {
+ WebArchive war = createWarWithLib(false, true);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, UIWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), false, "lib.jar");
+ }
+
+ public void testWarWithoutXmlWithLibs() throws Exception
+ {
+ WebArchive war = createWarWithLibs(false, true, true);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, UIWebBean.class, CrmWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), false, "lib1.jar", "lib2.jar");
+ }
+
+ public void testWarWithoutXmlWithLibWithoutXml() throws Exception
+ {
+ WebArchive war = createWarWithLib(false, false);
+ unit = assertDeploy(war);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testWarWithoutXmlWithMixedLibs() throws Exception
+ {
+ WebArchive war = createWarWithLibs(false, true, false);
+ unit = assertDeploy(war);
+
+ E environment = assertSingleEnvironment(WAR_NAME);
+ assertExpectedClasses(environment, UIWebBean.class);
+ assertExpectedWarResources(environment, unit.getSimpleName(), false, "lib1.jar");
+ }
+
+ public void testWarWithoutXmlWithLibsWithoutXml() throws Exception
+ {
+ WebArchive war = createWarWithLibs(false, false, false);
+ unit = assertDeploy(war);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testWarWithoutXml() throws Exception
+ {
+ WebArchive war = createWar(false);
+ unit = assertDeploy(war);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testWarInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWar(true);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment("warinear.ear/simple.war");
+ assertExpectedClasses(environment, ServletWebBean.class);
+ assertExpectedWarResources(environment, "warinear.ear/simple.war", true);
+ }
+
+ public void testWarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWar("simple1.war", true, ServletWebBean.class);
+ ear.addModule(war);
+ war = createWar("simple2.war", true, NotWBJsfBean.class);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ assertWarsInEar();
+ }
+
+ protected abstract void assertWarsInEar();
+
+ public void testMixedWarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWar("simple1.war", true, ServletWebBean.class);
+ ear.addModule(war);
+ war = createWar("simple2.war", false, NotWBJsfBean.class);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment("warinear.ear/simple1.war");
+ assertExpectedClasses(environment, ServletWebBean.class);
+ assertExpectedWarResources(environment, "warinear.ear/simple1.war", true);
+ }
+
+ public void testWarsWithoutXmlInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWar("simple1.war", false, ServletWebBean.class);
+ ear.addModule(war);
+ war = createWar("simple2.war", false, NotWBJsfBean.class);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testWarWithLibInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWarWithLib(true, true);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment("warinear.ear/" + WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class, UIWebBean.class);
+ assertExpectedWarResources(environment, "warinear.ear/" + WAR_NAME, true, "lib.jar");
+ }
+
+ public void testWarWithLibWithoutXmlInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWarWithLib(true, false);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment("warinear.ear/" + WAR_NAME);
+ assertExpectedClasses(environment, ServletWebBean.class);
+ assertExpectedWarResources(environment, "warinear.ear/" + WAR_NAME, true);
+ }
+
+ public void testWarWithoutXmlWithLibWithoutXmlInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWarWithLib(false, false);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ assertEmptyEnvironment();
+ }
+
+ public void testWarWithoutXmlWithLibInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war = createWarWithLib(false, true);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ unit = assertDeploy(ear);
+
+ E environment = assertSingleEnvironment("warinear.ear/" + WAR_NAME);
+ assertExpectedClasses(environment, UIWebBean.class);
+ assertExpectedWarResources(environment, "warinear.ear/" + WAR_NAME, false, "lib.jar");
+ }
+
+ public void testBasicEar() throws Exception
+ {
+ VirtualFile ear = createBasicEar();
+ unit = assertDeploy(ear);
+
+ assertBasicEar();
+ }
+
+ protected abstract void assertBasicEar();
+
+ public void testBasicEarFullCDI() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("top-level.ear", EnterpriseArchive.class);
+ createLib(ear, "util.jar", true, SomeUtil.class);
+ createLib(ear, "ext.jar", true, ExternalWebBean.class);
+ JavaArchive ejbJar = createEjbJar("simple.jar", true, PlainJavaBean.class);
+ ear.addModule(ejbJar);
+ ejbJar = createEjbJar("ejbs.jar", true, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar);
+ WebArchive war = createWar("simple.war", true, ServletWebBean.class);
+ createLib(war, "ui.jar", true, UIWebBean.class);
+ ear.addModule(war);
+ war = createWar("crm.war", true, NotWBJsfBean.class);
+ createLib(war, "crm.jar", true, CrmWebBean.class);
+ ear.addModule(war);
+ unit = assertDeploy(ear);
+
+ assertBasicEarFullCDI();
+ }
+
+ protected abstract void assertBasicEarFullCDI();
+
+ public void testBasicEarWithoutXml() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("simple.ear", EnterpriseArchive.class);
+ createLib(ear, "util.jar", false, SomeUtil.class);
+ createLib(ear, "ext.jar", false, ExternalWebBean.class);
+ JavaArchive ejbJar = createEjbJar("simple.jar", false, PlainJavaBean.class);
+ ear.addModule(ejbJar);
+ ejbJar = createEjbJar("ejbs.jar", false, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar);
+ WebArchive war = createWar("simple.war", false, ServletWebBean.class);
+ createLib(war, "ui.jar", false, UIWebBean.class);
+ ear.addModule(war);
+ war = createWar("crm.war", false, NotWBJsfBean.class);
+ createLib(war, "crm.jar", false, CrmWebBean.class);
+ ear.addModule(war);
+ unit = assertDeploy(ear);
+
+ assertBasicEarWithoutXml();
+ }
+
+ protected abstract void assertBasicEarWithoutXml();
+
+ /**
+ * Asserts that there is no environment resultant from the deployment.
+ */
+ protected abstract void assertEmptyEnvironment();
+
+ /**
+ * Asserts that there is only one environment resultant from the deployment.
+ *
+ * @param name the name of the environment
+ * @return the environment
+ */
+ protected abstract E assertSingleEnvironment(String name);
+}
Property changes on: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/AbstractSingleArchiveTest.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/ArchiveEnvironmentTestCase.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/ArchiveEnvironmentTestCase.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/ArchiveEnvironmentTestCase.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -46,7 +46,7 @@
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
*/
-public class ArchiveEnvironmentTestCase extends AbstractEnvironmentTest<WeldDiscoveryEnvironment>
+public class ArchiveEnvironmentTestCase extends AbstractSingleArchiveTest<WeldDiscoveryEnvironment>
{
public ArchiveEnvironmentTestCase(String name)
{
Modified: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java 2010-07-20 02:09:55 UTC (rev 106874)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -54,7 +54,7 @@
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
*/
-public class DeploymentEnvironmentTestCase extends AbstractEnvironmentTest<BeanDeploymentArchive>
+public class DeploymentEnvironmentTestCase extends AbstractSingleArchiveTest<BeanDeploymentArchive>
{
public DeploymentEnvironmentTestCase(String name)
{
Added: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java (rev 0)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java 2010-07-20 03:47:07 UTC (rev 106875)
@@ -0,0 +1,907 @@
+/*
+ * 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.test;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.Iterator;
+
+import junit.framework.Test;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.test.deployers.support.CheckableBootstrap;
+import org.jboss.test.deployers.support.MockArchiveManifest;
+import org.jboss.test.deployers.support.MockEjbServices;
+import org.jboss.test.deployers.support.MockEmptyEjbServices;
+import org.jboss.test.deployers.support.MockTransactionServices;
+import org.jboss.test.deployers.support.MockWeldBootstrap;
+import org.jboss.test.deployers.support.WeldDEWrapper;
+import org.jboss.test.deployers.support.crm.CrmWebBean;
+import org.jboss.test.deployers.support.ejb.BusinessInterface;
+import org.jboss.test.deployers.support.ejb.MySLSBean;
+import org.jboss.test.deployers.support.ext.ExternalWebBean;
+import org.jboss.test.deployers.support.jar.PlainJavaBean;
+import org.jboss.test.deployers.support.jsf.NotWBJsfBean;
+import org.jboss.test.deployers.support.ui.UIWebBean;
+import org.jboss.test.deployers.support.util.SomeUtil;
+import org.jboss.test.deployers.support.web.ServletWebBean;
+import org.jboss.test.deployers.vfs.classloader.support.a.A;
+import org.jboss.test.deployers.vfs.classloader.support.b.B;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.bootstrap.spi.Deployment;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+
+/**
+ * Deployment.loadBeanDeploymentArchive test case.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class LoadBeanDeploymentArchiveTestCase extends AbstractEnvironmentTest<BeanDeploymentArchive>
+{
+ public LoadBeanDeploymentArchiveTestCase(String name)
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return suite(LoadBeanDeploymentArchiveTestCase.class);
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ JavaArchive mockJar = ShrinkWrap.create("mock.jar", JavaArchive.class);
+ mockJar.addClass(CheckableBootstrap.class);
+ mockJar.addClass(MockEjbServices.class);
+ mockJar.addClass(MockEmptyEjbServices.class);
+ mockJar.addClass(MockTransactionServices.class);
+ mockJar.addClass(MockWeldBootstrap.class);
+ mockJar.addClass(WeldDEWrapper.class);
+ assertDeploy(mockJar);
+ }
+
+ public void testEjbJars() throws Exception
+ {
+ // ejb1.jar
+ JavaArchive ejbJar1 = createEjbJar("ejb1.jar", true, PlainJavaBean.class);
+ DeploymentUnit unit = assertDeploy(ejbJar1);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+ // ejb2.jar
+ JavaArchive ejbJar2 = createEjbJar("ejb2.jar", true, MySLSBean.class, BusinessInterface.class);
+ unit = assertDeploy(ejbJar2);
+ Class<?> mySLSBeanClass = getClass(MySLSBean.class, unit);
+ Class<?> businessInterface = getClass(BusinessInterface.class, unit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ assertNotSame(deployment1, deployment2);
+
+ BeanDeploymentArchive bda1 = deployment1.getBeanDeploymentArchives().iterator().next();
+ BeanDeploymentArchive bda2 = deployment2.getBeanDeploymentArchives().iterator().next();
+ // double invocation should yield the same result
+ assertSame(bda1, deployment1.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertSame(bda1, deployment1.loadBeanDeploymentArchive(plainJavaBeanClass));
+
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(businessInterface));
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(businessInterface));
+
+ assertSame(bda1, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertSame(bda1, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(businessInterface));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(businessInterface));
+ }
+
+ public void testMixedEjbJars() throws Exception
+ {
+ // ejb1.jar
+ JavaArchive ejbJar1 = createEjbJar("ejb1.jar", true, PlainJavaBean.class);
+ DeploymentUnit unit = assertDeploy(ejbJar1);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+ // ejb2.jar
+ JavaArchive ejbJar2 = createEjbJar("ejb2.jar", false, MySLSBean.class, BusinessInterface.class);
+ unit = assertDeploy(ejbJar2);
+ ClassLoader classLoader2 = unit.getClassLoader();
+ Class<?> mySLSBeanClass = classLoader2.loadClass(MySLSBean.class.getName());
+ Class<?> businessInterface = classLoader2.loadClass(BusinessInterface.class.getName());
+
+ BeanDeploymentArchive bda1 = deployment1.getBeanDeploymentArchives().iterator().next();
+ assertSame(bda1, deployment1.loadBeanDeploymentArchive(plainJavaBeanClass));
+ // creation of bda2 on demand
+ BeanDeploymentArchive bda2 = deployment1.loadBeanDeploymentArchive(mySLSBeanClass);
+ assertBDAId(bda2, "ejb2.jar");
+ assertExpectedClasses(bda2, MySLSBean.class);
+ assertExpectedResources(bda2);
+ // double invocation
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertBDAId(bda2, "ejb2.jar");
+ assertExpectedClasses(bda2, MySLSBean.class);
+ assertExpectedResources(bda2);
+ // inclusion of BusinessInterface
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(businessInterface));
+ assertBDAId(bda2, "ejb2.jar");
+ assertExpectedClasses(bda2, MySLSBean.class, BusinessInterface.class);
+ assertExpectedResources(bda2);
+ // double invocation
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(businessInterface));
+ assertBDAId(bda2, "ejb2.jar");
+ assertExpectedClasses(bda2, MySLSBean.class, BusinessInterface.class);
+ assertExpectedResources(bda2);
+ }
+
+ public void testEjbJarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", true, PlainJavaBean.class);
+ ear.addModule(ejbJar1);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear);
+ DeploymentUnit unit = assertDeploy(ear);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Class<?> mySLSBeanClass = getClass(MySLSBean.class, unit);
+ Class<?> businessInterface = getClass(BusinessInterface.class, unit);
+
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+ BeanDeploymentArchive bda = deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class, MySLSBean.class, BusinessInterface.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda, deployment.loadBeanDeploymentArchive(businessInterface));
+ }
+
+
+ public void testMixedEjbJarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", true, PlainJavaBean.class);
+ ear.addModule(ejbJar1);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", false, MySLSBean.class, BusinessInterface.class);
+ ear.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear);
+ DeploymentUnit unit = assertDeploy(ear);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Class<?> mySLSBeanClass = getClass(MySLSBean.class, unit);
+ Class<?> businessInterface = getClass(BusinessInterface.class, unit);
+
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+ BeanDeploymentArchive bda = deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class, MySLSBean.class);
+ // make sure double invocation does not affect the bda contents
+ assertSame(bda, deployment.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class, MySLSBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(businessInterface));
+ assertSame(bda, deployment.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class, MySLSBean.class, BusinessInterface.class);
+ }
+
+ public void testEjbJarsInEars() throws Exception
+ {
+ // simple1.ear
+ EnterpriseArchive ear1 = ShrinkWrap.create("simple1.ear", EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", true, PlainJavaBean.class);
+ ear1.addModule(ejbJar1);
+ MockArchiveManifest.addManifest(ear1);
+ DeploymentUnit unit = assertDeploy(ear1);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+ // simple2.ear
+ EnterpriseArchive ear2 = ShrinkWrap.create("simple2.ear", EnterpriseArchive.class);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, BusinessInterface.class);
+ ear2.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear2);
+ unit = assertDeploy(ear2);
+ Class<?> mySLSBeanClass = getClass(MySLSBean.class, unit);
+ Class<?> businessInterface = getClass(BusinessInterface.class, unit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ BeanDeploymentArchive bda1 = deployment1.getBeanDeploymentArchives().iterator().next();
+ BeanDeploymentArchive bda2 = deployment2.getBeanDeploymentArchives().iterator().next();
+ // double invocation should yield the same result
+ assertSame(bda1, deployment1.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertSame(bda1, deployment1.loadBeanDeploymentArchive(plainJavaBeanClass));
+
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(businessInterface));
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment1.loadBeanDeploymentArchive(businessInterface));
+
+ assertSame(bda1, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertSame(bda1, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(businessInterface));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(businessInterface));
+ }
+
+
+ public void testMixedEjbJarsInEars() throws Exception
+ {
+ // simple1.ear
+ EnterpriseArchive ear1 = ShrinkWrap.create("simple1.ear", EnterpriseArchive.class);
+ JavaArchive ejbJar1 = createEjbJar("ejbJar1.jar", false, PlainJavaBean.class);
+ ear1.addModule(ejbJar1);
+ MockArchiveManifest.addManifest(ear1);
+ DeploymentUnit unit = assertDeploy(ear1);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+
+ // simple2.ear
+ EnterpriseArchive ear2 = ShrinkWrap.create("simple2.ear", EnterpriseArchive.class);
+ JavaArchive ejbJar2 = createEjbJar("ejbJar2.jar", true, MySLSBean.class, BusinessInterface.class);
+ ear2.addModule(ejbJar2);
+ MockArchiveManifest.addManifest(ear2);
+ unit = assertDeploy(ear2);
+ Class<?> mySLSBeanClass = getClass(MySLSBean.class, unit);
+ Class<?> businessInterface = getClass(BusinessInterface.class, unit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ BeanDeploymentArchive bda2 = deployment2.getBeanDeploymentArchives().iterator().next();
+ // contents of BDA2
+ assertBDAId(bda2, "simple2.ear");
+ assertExpectedClasses(bda2, MySLSBean.class, BusinessInterface.class);
+ // call loadBDA
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(mySLSBeanClass));
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(businessInterface));
+ // make sure that loadBDA did not change the contents of BDA2
+ assertBDAId(bda2, "simple2.ear");
+ assertExpectedClasses(bda2, MySLSBean.class, BusinessInterface.class);
+
+ // creation of bda1 on demand
+ BeanDeploymentArchive bda1 = deployment2.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertBDAId(bda1, "simple1.ear");
+ assertExpectedClasses(bda1, PlainJavaBean.class);
+ assertExpectedResources(bda1);
+ // double invocation
+ assertSame(bda1, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ assertBDAId(bda1, "simple1.ear");
+ assertExpectedClasses(bda1, PlainJavaBean.class);
+ assertExpectedResources(bda1);
+ }
+
+ public void testWars() throws Exception
+ {
+ WebArchive war1 = createWar("simple1.war", true, ServletWebBean.class);
+ DeploymentUnit unit = assertDeploy(war1);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ WebArchive war2 = createWar("simple2.war", true, NotWBJsfBean.class);
+ unit = assertDeploy(war2);
+ Class<?> notWBJsfBeanClass = getClass(NotWBJsfBean.class, unit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ assertCannotLoadBDA(deployment1, notWBJsfBeanClass);
+ assertCannotLoadBDA(deployment2, servletWebBeanClass);
+
+ BeanDeploymentArchive bda1 = deployment1.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda1, "simple1.war");
+ assertExpectedClasses(bda1, ServletWebBean.class);
+ assertSame(bda1, deployment1.loadBeanDeploymentArchive(servletWebBeanClass));
+ // make sure loadBDA didn't change the bda structure
+ assertBDAId(bda1, "simple1.war");
+ assertExpectedClasses(bda1, ServletWebBean.class);
+
+ BeanDeploymentArchive bda2 = deployment2.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda2, "simple2.war");
+ assertExpectedClasses(bda2, NotWBJsfBean.class);
+ assertSame(bda2, deployment2.loadBeanDeploymentArchive(notWBJsfBeanClass));
+ // make sure loadBDA didn't change the bda structure
+ assertBDAId(bda2, "simple2.war");
+ assertExpectedClasses(bda2, NotWBJsfBean.class);
+ }
+
+ public void testMixedWars() throws Exception
+ {
+ WebArchive war1 = createWar("simple1.war", true, ServletWebBean.class);
+ DeploymentUnit unit = assertDeploy(war1);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ WebArchive war2 = createWar("simple2.war", false, NotWBJsfBean.class);
+ unit = assertDeploy(war2);
+ Class<?> notWBJsfBeanClass = getClass(NotWBJsfBean.class, unit);
+
+ assertCannotLoadBDA(deployment1, notWBJsfBeanClass);
+ }
+
+ public void testWarWithLib() throws Exception
+ {
+ WebArchive war = createWarWithLib(true, true);
+ DeploymentUnit unit = assertDeploy(war);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Class<?> uiWebBeanClass = getClass(UIWebBean.class, unit);
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+
+ BeanDeploymentArchive bda = deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(servletWebBeanClass));
+ assertSame(bda, deployment.loadBeanDeploymentArchive(uiWebBeanClass));
+ // make sure bda is unchanged
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ }
+
+ public void testWarWithLibWithoutXml() throws Exception
+ {
+ WebArchive war = createWarWithLib(true, false);
+ DeploymentUnit unit = assertDeploy(war);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Class<?> uiWebBeanClass = getClass(UIWebBean.class, unit);
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+
+ BeanDeploymentArchive bda = deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(servletWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(uiWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ // duplicate call makes no difference in the bda contents
+ assertSame(bda, deployment.loadBeanDeploymentArchive(uiWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ }
+
+ public void testWarWithoutXmlWithLib() throws Exception
+ {
+ WebArchive war = createWarWithLib(false, true);
+ DeploymentUnit unit = assertDeploy(war);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Class<?> uiWebBeanClass = getClass(UIWebBean.class, unit);
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+
+ BeanDeploymentArchive bda = deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, UIWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(servletWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ // duplicate call makes no difference in the bda contents
+ assertSame(bda, deployment.loadBeanDeploymentArchive(servletWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(uiWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ }
+
+ public void testWarWithMixedLibs() throws Exception
+ {
+ WebArchive war = createWarWithLibs(true, true, false);
+ DeploymentUnit unit = assertDeploy(war);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Class<?> uiWebBeanClass = getClass(UIWebBean.class, unit);
+ Class<?> crmWebBeanClass = getClass(CrmWebBean.class, unit);
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+
+ BeanDeploymentArchive bda = deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(servletWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(uiWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ assertSame(bda, deployment.loadBeanDeploymentArchive(crmWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class, CrmWebBean.class);
+ // duplicate call makes no difference in the bda contents
+ assertSame(bda, deployment.loadBeanDeploymentArchive(crmWebBeanClass));
+ assertBDAId(bda, WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class, CrmWebBean.class);
+ }
+
+
+ public void testWarInEars() throws Exception
+ {
+ EnterpriseArchive ear1 = ShrinkWrap.create("warinear1.ear", EnterpriseArchive.class);
+ WebArchive war1 = createWar(true);
+ ear1.addModule(war1);
+ MockArchiveManifest.addManifest(ear1);
+ DeploymentUnit unit = assertDeploy(ear1);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit.getChildren().iterator().next());
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ EnterpriseArchive ear2 = ShrinkWrap.create("warinear2.ear", EnterpriseArchive.class);
+ WebArchive war2 = createWar(WAR_NAME, true, NotWBJsfBean.class);
+ ear2.addModule(war2);
+ MockArchiveManifest.addManifest(ear2);
+ unit = assertDeploy(ear2);
+ Class<?> notWBJsfBeanClass = getClass(NotWBJsfBean.class, unit.getChildren().iterator().next());
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ assertCannotLoadBDA(deployment1, notWBJsfBeanClass);
+ assertCannotLoadBDA(deployment2, servletWebBeanClass);
+ }
+
+ public void testWarsInEar() throws Exception
+ {
+ EnterpriseArchive ear = ShrinkWrap.create("warinear.ear", EnterpriseArchive.class);
+ WebArchive war1 = createWar("simple1.war", true, ServletWebBean.class);
+ ear.addModule(war1);
+ WebArchive war2 = createWar("simple2.war", true, NotWBJsfBean.class);
+ ear.addModule(war2);
+ MockArchiveManifest.addManifest(ear);
+ DeploymentUnit unit = assertDeploy(ear);
+ Iterator<DeploymentUnit> iterator = unit.getChildren().iterator();
+ DeploymentUnit unit1 = iterator.next();
+ DeploymentUnit unit2 = iterator.next();
+ if (unit2.getName().contains("simple1.war"))
+ {
+ DeploymentUnit temp = unit2;
+ unit2 = unit1;
+ unit1 = temp;
+ }
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit1);
+ Class<?> notWBJsfBeanClass = getClass(NotWBJsfBean.class, unit2);
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+
+ BeanDeploymentArchive bda1 = deployment.loadBeanDeploymentArchive(servletWebBeanClass);
+ assertBDAId(bda1, "warinear.ear/simple1.war");
+ assertExpectedClasses(bda1, ServletWebBean.class);
+
+ BeanDeploymentArchive bda2 = deployment.loadBeanDeploymentArchive(notWBJsfBeanClass);
+ assertBDAId(bda2, "warinear.ear/simple2.war");
+ assertExpectedClasses(bda2, NotWBJsfBean.class);
+ }
+
+ public void testEjbJar_War() throws Exception
+ {
+ // ejb.jar
+ JavaArchive ejbJar = createEjbJar(true);
+ DeploymentUnit unit = assertDeploy(ejbJar);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+ // simple.war
+ WebArchive war = createWar(true);
+ unit = assertDeploy(war);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ assertCannotLoadBDA(deployment1, servletWebBeanClass);
+
+ BeanDeploymentArchive bda = deployment1.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, EJB_JAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class);
+ assertSame(bda, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ // make sure bda contents are unchanged
+ assertBDAId(bda, EJB_JAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class);
+ }
+
+ public void testEjbJarAndWarInEar() throws Exception
+ {
+ // ejb.jar
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar = createEjbJar(true);
+ ear.addModule(ejbJar);
+ // simple.war
+ WebArchive war = createWar(true);
+ ear.addModule(war);
+ MockArchiveManifest.addManifest(ear);
+ DeploymentUnit unit = assertDeploy(ear);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Iterator<DeploymentUnit> iterator = unit.getChildren().iterator();
+ DeploymentUnit warUnit = null;
+ do
+ {
+ warUnit = iterator.next();
+ } while (!warUnit.getName().contains(WAR_NAME));
+
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, warUnit);
+ Deployment deployment = (Deployment) getBean(Deployment.class);
+
+
+ BeanDeploymentArchive bda = deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class);
+
+ bda = deployment.loadBeanDeploymentArchive(servletWebBeanClass);
+ assertBDAId(bda, EAR_NAME + "/" + WAR_NAME);
+ assertExpectedClasses(bda, ServletWebBean.class);
+ }
+
+ public void testEjbJarInEar_War() throws Exception
+ {
+ // ejb.jar
+ EnterpriseArchive ear = ShrinkWrap.create(EAR_NAME, EnterpriseArchive.class);
+ JavaArchive ejbJar = createEjbJar(true);
+ ear.addModule(ejbJar);
+ MockArchiveManifest.addManifest(ear);
+ DeploymentUnit unit = assertDeploy(ear);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+ // simple.war
+ WebArchive war = createWar(true);
+ unit = assertDeploy(war);
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, unit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ assertCannotLoadBDA(deployment1, servletWebBeanClass);
+
+ BeanDeploymentArchive bda = deployment1.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class);
+ assertSame(bda, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ // make sure bda contents are unchanged
+ assertBDAId(bda, EAR_NAME);
+ assertExpectedClasses(bda, PlainJavaBean.class);
+ }
+
+
+ public void testEjbJarInEar_WarWithLibInEar() throws Exception
+ {
+ // ejb.ear
+ EnterpriseArchive ejbEar = ShrinkWrap.create("ejb.ear", EnterpriseArchive.class);
+ JavaArchive ejbJar = createEjbJar(true);
+ ejbEar.addModule(ejbJar);
+ MockArchiveManifest.addManifest(ejbEar);
+ DeploymentUnit unit = assertDeploy(ejbEar);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, unit);
+ Deployment deployment1 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+ // war.ear
+ EnterpriseArchive warEar = ShrinkWrap.create("war.ear", EnterpriseArchive.class);
+ WebArchive war = createWarWithLib(true, false);
+ warEar.addModule(war);
+ MockArchiveManifest.addManifest(warEar);
+ unit = assertDeploy(warEar);
+ DeploymentUnit warUnit = unit.getChildren().iterator().next();
+ Class<?> servletWebBeanClass = getClass(ServletWebBean.class, warUnit);
+ Class<?> uiWebBeanClass = getClass(UIWebBean.class, warUnit);
+ Deployment deployment2 = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(unit));
+
+ assertCannotLoadBDA(deployment1, servletWebBeanClass);
+
+ BeanDeploymentArchive bda = deployment1.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(bda, "ejb.ear");
+ assertExpectedClasses(bda, PlainJavaBean.class);
+ assertSame(bda, deployment2.loadBeanDeploymentArchive(plainJavaBeanClass));
+ // make sure bda contents are unchanged
+ assertBDAId(bda, "ejb.ear");
+ assertExpectedClasses(bda, PlainJavaBean.class);
+
+ bda = deployment2.loadBeanDeploymentArchive(servletWebBeanClass);
+ String bdaName = "war.ear/" + WAR_NAME;
+ assertBDAId(bda, bdaName);
+ assertExpectedClasses(bda, ServletWebBean.class);
+
+ BeanDeploymentArchive bda2 = deployment2.loadBeanDeploymentArchive(uiWebBeanClass);
+ assertSame(bda, bda2);
+ assertBDAId(bda, bdaName);
+ assertExpectedClasses(bda, ServletWebBean.class, UIWebBean.class);
+ }
+
+ public void testMultipleArchives() throws Exception
+ {
+ WebArchive war1 = createWar("web1.war", true, ServletWebBean.class);
+ DeploymentUnit war1Unit = assertDeploy(war1);
+ Deployment war1Deployment = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(war1Unit));
+ BeanDeploymentArchive war1BDA = war1Deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(war1BDA, "web1.war");
+ assertExpectedClasses(war1BDA, ServletWebBean.class);
+ Class<?> servletWebBeanWar1Class = getClass(ServletWebBean.class, war1Unit);
+
+ WebArchive war2 = createWar("web2.war", true, NotWBJsfBean.class);
+ createLib(war2, "crm.jar", false, CrmWebBean.class);
+ DeploymentUnit war2Unit = assertDeploy(war2);
+ Deployment war2Deployment = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(war2Unit));
+ BeanDeploymentArchive war2BDA = war2Deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(war2BDA, "web2.war");
+ assertExpectedClasses(war2BDA, NotWBJsfBean.class);
+ Class<?> notWBJsfBeanWar2Class = getClass(NotWBJsfBean.class, war2Unit);
+ Class<?> crmWebBeanWar2Class = getClass(CrmWebBean.class, war2Unit);
+
+ JavaArchive ejbJar = createEjbJar("ejb.jar", true, BusinessInterface.class);
+ DeploymentUnit ejbJarUnit = assertDeploy(ejbJar);
+ Deployment ejbJarDeployment = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(ejbJarUnit));
+ BeanDeploymentArchive ejbJarBDA = ejbJarDeployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(ejbJarBDA, "ejb.jar");
+ assertExpectedClasses(ejbJarBDA, BusinessInterface.class);
+ Class<?> businessInterfaceClass = getClass(BusinessInterface.class, ejbJarUnit);
+
+ EnterpriseArchive ear1 = ShrinkWrap.create("full.ear", EnterpriseArchive.class);
+ WebArchive warInEar1 = createWarWithLibs(false, true, true);
+ ear1.addModule(warInEar1);
+ ear1.addModule(war2);
+ JavaArchive ejbJarInEar1 = createEjbJar("ejbInFullEar.jar", false, MySLSBean.class);
+ ear1.addModule(ejbJarInEar1);
+ createLib(ear1, "lib1.jar", false, ExternalWebBean.class);
+ createLib(ear1, "lib2.jar", true, A.class);
+ createLib(ear1, "lib3.jar", false, B.class);
+ MockArchiveManifest.addManifest(ear1);
+ DeploymentUnit ear1Unit = assertDeploy(ear1);
+ Deployment ear1Deployment = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(ear1Unit));
+ BeanDeploymentArchive ear1BDA = null, ear1War1BDA = null, ear1War2BDA = null;
+ for (BeanDeploymentArchive bda: ear1Deployment.getBeanDeploymentArchives())
+ {
+ if (bda.getId().contains(WAR_NAME))
+ {
+ ear1War1BDA = bda;
+ }
+ else if (bda.getId().contains("web2.war"))
+ {
+ ear1War2BDA = bda;
+ }
+ else
+ {
+ ear1BDA = bda;
+ }
+ }
+ assertBDAId(ear1BDA, "full.ear");
+ assertExpectedClasses(ear1BDA, A.class);
+ assertBDAId(ear1War1BDA, "full.ear/" + WAR_NAME);
+ assertExpectedClasses(ear1War1BDA, UIWebBean.class, CrmWebBean.class);
+ assertBDAId(ear1War2BDA, "full.ear/web2.war");
+ assertExpectedClasses(ear1War2BDA, NotWBJsfBean.class);
+ Class<?> servletWebBeanEar1Class = null, uiWebBeanEar1Class = null,
+ crmWebBeanEar1War1Class = null, notWBJsfBeanEar1Class = null,
+ crmWebBeanEar1War2Class = null;
+ for (DeploymentUnit ear1Child: ear1Unit.getChildren())
+ {
+ if (ear1Child.getName().contains(WAR_NAME))
+ {
+ servletWebBeanEar1Class = getClass(ServletWebBean.class, ear1Child);
+ uiWebBeanEar1Class = getClass(UIWebBean.class, ear1Child);
+ crmWebBeanEar1War1Class = getClass(CrmWebBean.class, ear1Child);
+ }
+ else if (ear1Child.getName().contains("web2.war"))
+ {
+ notWBJsfBeanEar1Class = getClass(NotWBJsfBean.class, ear1Child);
+ crmWebBeanEar1War2Class = getClass(CrmWebBean.class, ear1Child);
+ }
+ }
+ Class<?> externalWebBeanClass = getClass(ExternalWebBean.class, ear1Unit);
+ Class<?> aClass = getClass(A.class, ear1Unit);
+ Class<?> bClass = getClass(B.class, ear1Unit);
+
+ EnterpriseArchive ear2 = ShrinkWrap.create("ejbWLibs.ear", EnterpriseArchive.class);
+ JavaArchive ejbJarInEar2 = createEjbJar("ejbInEar2.jar", true, PlainJavaBean.class);
+ ear2.addModule(ejbJarInEar2);
+ createLib(ear2, "lib1.jar", false, SomeUtil.class);
+ createLib(ear2, "lib2.jar", true, CrmWebBean.class);
+ MockArchiveManifest.addManifest(ear2);
+ DeploymentUnit ear2Unit = assertDeploy(ear2);
+ Deployment ear2Deployment = (Deployment) getBean(DeployersUtils.getDeploymentBeanName(ear2Unit));
+ BeanDeploymentArchive ear2BDA = ear2Deployment.getBeanDeploymentArchives().iterator().next();
+ assertBDAId(ear2BDA, "ejbWLibs.ear");
+ assertExpectedClasses(ear2BDA, PlainJavaBean.class, CrmWebBean.class);
+ Class<?> plainJavaBeanClass = getClass(PlainJavaBean.class, ear2Unit);
+ Class<?> someUtilClass = getClass(SomeUtil.class, ear2Unit);
+ Class<?> crmWebBeanClass = getClass(CrmWebBean.class, ear2Unit);
+
+ // Assert on web classes
+
+ assertCannotLoadBDA(war1Deployment, servletWebBeanEar1Class);
+ assertCannotLoadBDA(war1Deployment, notWBJsfBeanWar2Class);
+ assertCannotLoadBDA(war1Deployment, notWBJsfBeanEar1Class);
+ assertCannotLoadBDA(war1Deployment, crmWebBeanWar2Class);
+ assertCannotLoadBDA(war1Deployment, crmWebBeanEar1War1Class);
+ assertCannotLoadBDA(war1Deployment, crmWebBeanEar1War2Class);
+ assertCannotLoadBDA(war1Deployment, uiWebBeanEar1Class);
+ BeanDeploymentArchive bda = war1Deployment.loadBeanDeploymentArchive(servletWebBeanWar1Class);
+ assertSame(war1BDA, bda);
+ // verify the absence of collateral effects on the BDA
+ assertBDAId(war1BDA, "web1.war");
+ assertExpectedClasses(war1BDA, ServletWebBean.class);
+
+ assertCannotLoadBDA(war2Deployment, servletWebBeanWar1Class);
+ assertCannotLoadBDA(war2Deployment, servletWebBeanEar1Class);
+ assertCannotLoadBDA(war2Deployment, notWBJsfBeanEar1Class);
+ assertCannotLoadBDA(war2Deployment, crmWebBeanEar1War1Class);
+ assertCannotLoadBDA(war2Deployment, crmWebBeanEar1War2Class);
+ assertCannotLoadBDA(war2Deployment, uiWebBeanEar1Class);
+ bda = war2Deployment.loadBeanDeploymentArchive(notWBJsfBeanWar2Class);
+ bda = war2Deployment.loadBeanDeploymentArchive(crmWebBeanWar2Class);
+ assertSame(war2BDA, bda);
+ assertBDAId(war2BDA, "web2.war");
+ assertExpectedClasses(war2BDA, NotWBJsfBean.class, CrmWebBean.class);
+
+ assertCannotLoadBDA(ejbJarDeployment, servletWebBeanWar1Class);
+ assertCannotLoadBDA(ejbJarDeployment, servletWebBeanEar1Class);
+ assertCannotLoadBDA(ejbJarDeployment, notWBJsfBeanWar2Class);
+ assertCannotLoadBDA(ejbJarDeployment, notWBJsfBeanEar1Class);
+ assertCannotLoadBDA(ejbJarDeployment, crmWebBeanWar2Class);
+ assertCannotLoadBDA(ejbJarDeployment, crmWebBeanEar1War1Class);
+ assertCannotLoadBDA(ejbJarDeployment, crmWebBeanEar1War2Class);
+ assertCannotLoadBDA(ejbJarDeployment, uiWebBeanEar1Class);
+
+ assertCannotLoadBDA(ear1Deployment, servletWebBeanWar1Class);
+ assertCannotLoadBDA(ear1Deployment, notWBJsfBeanWar2Class);
+ assertCannotLoadBDA(ear1Deployment, crmWebBeanWar2Class);
+ bda = ear1Deployment.loadBeanDeploymentArchive(servletWebBeanEar1Class);
+ assertSame(ear1War1BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(uiWebBeanEar1Class);
+ assertSame(ear1War1BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(crmWebBeanEar1War1Class);
+ assertSame(ear1War1BDA, bda);
+ assertBDAId(ear1War1BDA, "full.ear/" + WAR_NAME);
+ assertExpectedClasses(ear1War1BDA, ServletWebBean.class, UIWebBean.class, CrmWebBean.class);
+
+ bda = ear1Deployment.loadBeanDeploymentArchive(notWBJsfBeanEar1Class);
+ assertSame(ear1War2BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(crmWebBeanEar1War2Class);
+ assertSame(ear1War2BDA, bda);
+ assertBDAId(ear1War2BDA, "full.ear/web2.war");
+ assertExpectedClasses(ear1War2BDA, NotWBJsfBean.class, CrmWebBean.class);
+
+ assertCannotLoadBDA(ear2Deployment, servletWebBeanWar1Class);
+ assertCannotLoadBDA(ear2Deployment, servletWebBeanEar1Class);
+ assertCannotLoadBDA(ear2Deployment, notWBJsfBeanWar2Class);
+ assertCannotLoadBDA(ear2Deployment, notWBJsfBeanEar1Class);
+ assertCannotLoadBDA(ear2Deployment, crmWebBeanWar2Class);
+ assertCannotLoadBDA(ear2Deployment, crmWebBeanEar1War1Class);
+ assertCannotLoadBDA(ear2Deployment, crmWebBeanEar1War2Class);
+ assertCannotLoadBDA(ear2Deployment, uiWebBeanEar1Class);
+
+ // Assert on business classes that are part of existing BDAs
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(businessInterfaceClass);
+ assertSame(ejbJarBDA, bda);
+ war1Deployment.loadBeanDeploymentArchive(businessInterfaceClass);
+ assertSame(ejbJarBDA, bda);
+ war2Deployment.loadBeanDeploymentArchive(businessInterfaceClass);
+ assertSame(ejbJarBDA, bda);
+ ear1Deployment.loadBeanDeploymentArchive(businessInterfaceClass);
+ assertSame(ejbJarBDA, bda);
+ war2Deployment.loadBeanDeploymentArchive(businessInterfaceClass);
+ assertSame(ejbJarBDA, bda);
+ assertBDAId(ejbJarBDA, "ejb.jar"); // no collateral effects on the BDA
+ assertExpectedClasses(ejbJarBDA, BusinessInterface.class);
+
+ bda = ear1Deployment.loadBeanDeploymentArchive(aClass);
+ assertSame(ear1BDA, bda);
+ bda = war1Deployment.loadBeanDeploymentArchive(aClass);
+ assertSame(ear1BDA, bda);
+ bda = war2Deployment.loadBeanDeploymentArchive(aClass);
+ assertSame(ear1BDA, bda);
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(aClass);
+ assertSame(ear1BDA, bda);
+ bda = ear2Deployment.loadBeanDeploymentArchive(aClass);
+ assertSame(ear1BDA, bda);
+ assertBDAId(ear1BDA, "full.ear"); // no collateral effects on the BDA
+ assertExpectedClasses(ear1BDA, A.class);
+
+ bda = ear2Deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = ear2Deployment.loadBeanDeploymentArchive(crmWebBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = war1Deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = war1Deployment.loadBeanDeploymentArchive(crmWebBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = war2Deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = war2Deployment.loadBeanDeploymentArchive(crmWebBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(crmWebBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(plainJavaBeanClass);
+ assertSame(ear2BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(crmWebBeanClass);
+ assertSame(ear2BDA, bda);
+ assertBDAId(ear2BDA, "ejbWLibs.ear"); // no collateral effects on the BDA
+ assertExpectedClasses(ear2BDA, PlainJavaBean.class, CrmWebBean.class);
+
+ // Assert on business classes that are not yet part of existing BDAs
+ bda = war1Deployment.loadBeanDeploymentArchive(externalWebBeanClass);
+ assertSame(ear1BDA, bda);
+ assertBDAId(ear1BDA, "full.ear");
+ assertExpectedClasses(ear1BDA, ExternalWebBean.class, A.class);
+ bda = war2Deployment.loadBeanDeploymentArchive(externalWebBeanClass);
+ assertSame(ear1BDA, bda);
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(externalWebBeanClass);
+ assertSame(ear1BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(externalWebBeanClass);
+ assertSame(ear1BDA, bda);
+ bda = ear2Deployment.loadBeanDeploymentArchive(externalWebBeanClass);
+ assertSame(ear1BDA, bda);
+ assertBDAId(ear1BDA, "full.ear"); // no collateral effects on the BDA
+ assertExpectedClasses(ear1BDA, ExternalWebBean.class, A.class);
+
+ bda = ear1Deployment.loadBeanDeploymentArchive(bClass);
+ assertSame(ear1BDA, bda);
+ assertBDAId(ear1BDA, "full.ear");
+ assertExpectedClasses(ear1BDA, ExternalWebBean.class, A.class, B.class);
+ bda = war1Deployment.loadBeanDeploymentArchive(bClass);
+ assertSame(ear1BDA, bda);
+ bda = war2Deployment.loadBeanDeploymentArchive(bClass);
+ assertSame(ear1BDA, bda);
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(bClass);
+ assertSame(ear1BDA, bda);
+ bda = ear2Deployment.loadBeanDeploymentArchive(bClass);
+ assertSame(ear1BDA, bda);
+ assertBDAId(ear1BDA, "full.ear"); // no collateral effects on the BDA
+ assertExpectedClasses(ear1BDA, ExternalWebBean.class, A.class, B.class);
+
+ bda = ejbJarDeployment.loadBeanDeploymentArchive(someUtilClass);
+ assertSame(ear2BDA, bda);
+ assertBDAId(ear2BDA, "ejbWLibs.ear");
+ assertExpectedClasses(ear2BDA, PlainJavaBean.class, SomeUtil.class, CrmWebBean.class);
+ bda = war1Deployment.loadBeanDeploymentArchive(someUtilClass);
+ assertSame(ear2BDA, bda);
+ bda = war2Deployment.loadBeanDeploymentArchive(someUtilClass);
+ assertSame(ear2BDA, bda);
+ bda = ear1Deployment.loadBeanDeploymentArchive(someUtilClass);
+ assertSame(ear2BDA, bda);
+ bda = ear2Deployment.loadBeanDeploymentArchive(someUtilClass);
+ assertSame(ear2BDA, bda);
+ assertBDAId(ear2BDA, "ejbWLibs.ear"); // no collateraleffects on the BDA
+ assertExpectedClasses(ear2BDA, PlainJavaBean.class, SomeUtil.class, CrmWebBean.class);
+ }
+
+ @Override
+ protected Collection<Class<?>> getClasses(BeanDeploymentArchive bda)
+ {
+ return bda.getBeanClasses();
+ }
+
+ @Override
+ protected Collection<URL> getResources(BeanDeploymentArchive bda)
+ {
+ return bda.getBeansXml();
+ }
+
+ private void assertBDAId(BeanDeploymentArchive bda, String name)
+ {
+ assertTrue("BDA id \"" + bda.getId() + "\" expected to end with suffix \"" + name + "/}\"",
+ bda.getId().endsWith(name + "/}"));
+ }
+
+ private Class<?> getClass(Class<?> clazz, DeploymentUnit unit) throws ClassNotFoundException
+ {
+ ClassLoader classLoader = unit.getClassLoader();
+ return classLoader.loadClass(clazz.getName());
+ }
+
+ private void assertCannotLoadBDA(Deployment deployment, Class<?> beanClass)
+ {
+ boolean failed = false;
+ try
+ {
+ deployment.loadBeanDeploymentArchive(beanClass);
+ }
+ catch (IllegalArgumentException e)
+ {
+ failed = true;
+ }
+ assertTrue(failed);
+ }
+}
\ No newline at end of file
Property changes on: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Added: projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml
===================================================================
--- projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml (rev 0)
+++ projects/weld-int/branches/Deployment_WELDINT-1/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml 2010-07-20 03:47:07 UTC (rev 106875)
@@ -0,0 +1,33 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="EarStructure" class="org.jboss.test.deployers.vfs.structure.ear.support.MockEarStructureDeployer"/>
+ <bean name="WarStructure" class="org.jboss.test.deployers.vfs.structure.war.support.MockWarStructureDeployer"/>
+ <bean name="WarClassLoader" class="org.jboss.test.deployers.vfs.reflect.support.MockWarClassLoaderDeployer"/>
+
+ <bean name="JWBMDDeployer" class="org.jboss.weld.integration.deployer.ext.JBossWeldMetaDataDeployer"/>
+ <bean name="WBFilesDeployer" class="org.jboss.weld.integration.deployer.metadata.WeldFilesDeployer"/>
+ <bean name="ArchiveInfoDeployer" class="org.jboss.weld.integration.deployer.env.ArchiveInfoDeployer"/>
+ <bean name="ArchiveDiscoveryDeployer" class="org.jboss.weld.integration.deployer.env.ArchiveDiscoveryDeployer"/>
+
+ <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEmptyEjbServices"/>
+
+ <bean name="EjbServicesDeployer" class="org.jboss.weld.integration.deployer.env.EjbServicesDeployer">
+ <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEmptyEjbServices</property>
+ </bean>
+
+ <!-- Target of the Test -->
+ <bean name="DeploymentDeployer" class="org.jboss.weld.integration.deployer.env.JBossDeploymentDeployer"/>
+
+ <bean name="BootDeployer" class="org.jboss.test.deployers.support.deployer.MockBootDeployer"/>
+
+ <bean name="DynamicDependencyCreator" class="org.jboss.weld.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