You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/01/06 14:42:36 UTC
svn commit: r1429523 - in
/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb:
OpenEJBArchiveProcessor.java OpenEJBDeployableContainer.java
Author: rmannibucau
Date: Sun Jan 6 13:42:36 2013
New Revision: 1429523
URL: http://svn.apache.org/viewvc?rev=1429523&view=rev
Log:
OPENEJB-1982 ability to use jaxrs from arquillian with application
Modified:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
Modified: openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java?rev=1429523&r1=1429522&r2=1429523&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java Sun Jan 6 13:42:36 2013
@@ -23,10 +23,12 @@ import org.apache.openejb.config.Deploym
import org.apache.openejb.config.EjbModule;
import org.apache.openejb.config.FinderFactory;
import org.apache.openejb.config.ReadDescriptors;
+import org.apache.openejb.config.WebModule;
import org.apache.openejb.config.WebappAggregatedArchive;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.ManagedBean;
import org.apache.openejb.jee.TransactionType;
+import org.apache.openejb.jee.WebApp;
import org.apache.openejb.jee.oejb3.EjbDeployment;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.openejb.loader.IO;
@@ -87,7 +89,7 @@ public class OpenEJBArchiveProcessor {
public static AppModule createModule(final Archive<?> archive, final TestClass testClass) {
final Class<?> javaClass = testClass.getJavaClass();
- final Collection<URL> additionalPaths = new ArrayList<URL>();
+ final List<URL> additionalPaths = new ArrayList<URL>();
final String prefix;
if (WebArchive.class.isInstance(archive)) {
@@ -125,6 +127,11 @@ public class OpenEJBArchiveProcessor {
final AppModule appModule = new AppModule(loader, archive.getName());
if (WEB_INF.equals(prefix)) {
appModule.setDelegateFirst(false);
+ appModule.setStandloneWebModule();
+
+ final WebModule webModule = new WebModule(new WebApp(), contextRoot(archive.getName()), loader, "", appModule.getModuleId());
+ webModule.setUrls(additionalPaths);
+ appModule.getWebModules().add(webModule);
}
// add the test as a managed bean to be able to inject into it easily
@@ -172,6 +179,9 @@ public class OpenEJBArchiveProcessor {
final org.apache.xbean.finder.archive.Archive finderArchive = finderArchive(beansXml, archive, appModule.getClassLoader(), additionalPaths);
ejbModule.setFinder(new FinderFactory.ModuleLimitedFinder(new AnnotationFinder(finderArchive)));
+ if (appModule.isWebapp()) { // war
+ appModule.getWebModules().iterator().next().setFinder(ejbModule.getFinder());
+ }
appModule.getEjbModules().add(ejbModule);
{
@@ -236,11 +246,20 @@ public class OpenEJBArchiveProcessor {
}
}
- appModule.getAdditionalLibraries().addAll(additionalPaths);
+ if (!appModule.isWebapp()) {
+ appModule.getAdditionalLibraries().addAll(additionalPaths);
+ }
return appModule;
}
+ private static String contextRoot(final String name) {
+ if (name.endsWith(".war")) {
+ return name.substring(0, name.length() - ".war".length());
+ }
+ return name;
+ }
+
private static <T> T get(final Class<T> fileClass, final String attr, final Asset asset) {
try {
final Field field = asset.getClass().getDeclaredField(attr);
Modified: openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java?rev=1429523&r1=1429522&r2=1429523&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java Sun Jan 6 13:42:36 2013
@@ -22,6 +22,7 @@ import org.apache.openejb.OpenEJBRuntime
import org.apache.openejb.OpenEjbContainer;
import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.WebAppBuilder;
import org.apache.openejb.config.AppModule;
import org.apache.openejb.config.ConfigurationFactory;
import org.apache.openejb.config.DeploymentFilterable;
@@ -29,6 +30,7 @@ import org.apache.openejb.core.LocalInit
import org.apache.openejb.core.LocalInitialContextFactory;
import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.web.LightweightWebAppBuilder;
import org.apache.webbeans.web.lifecycle.test.MockHttpSession;
import org.apache.webbeans.web.lifecycle.test.MockServletContext;
import org.jboss.arquillian.container.spi.client.container.DeployableContainer;
@@ -164,6 +166,12 @@ public class OpenEJBDeployableContainer
assembler = SystemInstance.get().getComponent(Assembler.class);
configurationFactory = new ConfigurationFactory();
+
+ if ("true".equalsIgnoreCase(PROPERTIES.getProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE))
+ && SystemInstance.get().getComponent(WebAppBuilder.class) == null) {
+ SystemInstance.get().setComponent(WebAppBuilder.class, new LightweightWebAppBuilder());
+ }
+
contextProducer.set(initialContext);
}