You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2012/11/29 16:40:36 UTC
svn commit: r1415216 - in /openejb/trunk/openejb: arquillian/
arquillian/arquillian-openejb-embedded-4/
arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/
arquillian/arquillian-tomee-embedded/src/main/java/org...
Author: andygumbrecht
Date: Thu Nov 29 15:40:34 2012
New Revision: 1415216
URL: http://svn.apache.org/viewvc?rev=1415216&view=rev
Log:
Fix bad windows URI/path in TomcatWebAppBuilder.java
Fix TomEEWebappExtension.java and RemoteTomEEExtension.java multiple registration exceptions.
Update to Maven.resolver() syntax and libs.
Finals.
Modified:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEExtension.java
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/hibernate/HibernateTest.java
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappExtension.java
openejb/trunk/openejb/arquillian/pom.xml
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Modified: openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml Thu Nov 29 15:40:34 2012
@@ -84,7 +84,7 @@
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
- <version>2.0.0-alpha-1</version>
+ <version>2.0.0-alpha-5</version>
<scope>test</scope>
</dependency>
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=1415216&r1=1415215&r2=1415216&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 Thu Nov 29 15:40:34 2012
@@ -94,7 +94,7 @@ public class OpenEJBArchiveProcessor {
prefix = WEB_INF;
final Map<ArchivePath, Node> content = archive.getContent(new IncludeRegExpPaths("/WEB-INF/lib/.*"));
- for (Map.Entry<ArchivePath, Node> node : content.entrySet()) {
+ for (final Map.Entry<ArchivePath, Node> node : content.entrySet()) {
final Asset asset = node.getValue().getAsset();
if (UrlAsset.class.isInstance(asset)) {
additionalPaths.add(get(URL.class, "url", asset));
@@ -241,7 +241,7 @@ public class OpenEJBArchiveProcessor {
return appModule;
}
- private static <T> T get(Class<T> fileClass, String attr, Asset asset) {
+ private static <T> T get(final Class<T> fileClass, final String attr, final Asset asset) {
try {
final Field field = asset.getClass().getDeclaredField(attr);
field.setAccessible(true);
@@ -254,7 +254,7 @@ public class OpenEJBArchiveProcessor {
private static org.apache.xbean.finder.archive.Archive finderArchive(final Node beansXml, final Archive<?> archive, final ClassLoader cl, final Collection<URL> additionalPaths) {
final List<Class<?>> classes = new ArrayList<Class<?>>();
final Map<ArchivePath, Node> content = archive.getContent(new IncludeRegExpPaths(".*.class"));
- for (Map.Entry<ArchivePath, Node> node : content.entrySet()) {
+ for (final Map.Entry<ArchivePath, Node> node : content.entrySet()) {
final String classname = name(node.getKey().get());
try {
classes.add(cl.loadClass(classname));
@@ -266,7 +266,7 @@ public class OpenEJBArchiveProcessor {
final Map<URL, List<String>> classesByUrl = new HashMap<URL, List<String>>();
final List<org.apache.xbean.finder.archive.Archive> archives = new ArrayList<org.apache.xbean.finder.archive.Archive>();
- for (URL url : DeploymentLoader.filterWebappUrls(additionalPaths.toArray(new URL[additionalPaths.size()]), null)) {
+ for (final URL url : DeploymentLoader.filterWebappUrls(additionalPaths.toArray(new URL[additionalPaths.size()]), null)) {
final List<String> currentClasses = new ArrayList<String>();
final org.apache.xbean.finder.archive.Archive newArchive = new FilteredArchive(new JarArchive(cl, url), new WebappAggregatedArchive.ScanXmlSaverFilter(false, null, currentClasses));
classesByUrl.put(url, currentClasses);
@@ -276,7 +276,7 @@ public class OpenEJBArchiveProcessor {
archives.add(new ClassesArchive(classes));
if (beansXml != null) {
final List<String> mainClasses = new ArrayList<String>();
- for (Class<?> clazz : classes) {
+ for (final Class<?> clazz : classes) {
mainClasses.add(clazz.getName());
}
// look org.apache.openejb.config.AnnotationDeployer.DiscoverAnnotatedBeans.hasBeansXml()
@@ -303,7 +303,7 @@ public class OpenEJBArchiveProcessor {
private static class AssetSource implements ReadDescriptors.Source {
private Asset asset;
- private AssetSource(Asset asset) {
+ private AssetSource(final Asset asset) {
this.asset = asset;
}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java Thu Nov 29 15:40:34 2012
@@ -43,23 +43,24 @@ public class EmbeddedTomEEContainer exte
private Container container;
+ @Override
public Class<EmbeddedTomEEConfiguration> getConfigurationClass() {
return EmbeddedTomEEConfiguration.class;
}
@Override
- public void setup(EmbeddedTomEEConfiguration configuration) {
+ public void setup(final EmbeddedTomEEConfiguration configuration) {
super.setup(configuration);
- container = new Container();
- container.setup(convertConfiguration(configuration));
+ this.container = new Container();
+ this.container.setup(this.convertConfiguration(configuration));
}
/*
* Not exactly as elegant as I'd like. Maybe we could have the EmbeddedServer configuration in openejb-core so all the adapters can use it.
* Depending on tomee-embedded is fine in this adapter, but less desirable in the others, as we'd get loads of stuff in the classpath we don't need.
*/
- private Configuration convertConfiguration(EmbeddedTomEEConfiguration tomeeConfiguration) {
- Configuration configuration = new Configuration();
+ private Configuration convertConfiguration(final EmbeddedTomEEConfiguration tomeeConfiguration) {
+ final Configuration configuration = new Configuration();
configuration.setDir(tomeeConfiguration.getDir());
configuration.setHttpPort(tomeeConfiguration.getHttpPort());
configuration.setStopPort(tomeeConfiguration.getStopPort());
@@ -73,7 +74,7 @@ public class EmbeddedTomEEContainer exte
@Override
public void start() throws LifecycleException {
try {
- container.start();
+ this.container.start();
SystemInstance.get().setComponent(AdditionalBeanDiscoverer.class, new TestClassDiscoverer());
} catch (Exception e) {
e.printStackTrace();
@@ -84,7 +85,7 @@ public class EmbeddedTomEEContainer exte
@Override
public void stop() throws LifecycleException {
try {
- container.stop();
+ this.container.stop();
} catch (Exception e) {
throw new LifecycleException("Unable to stop server", e);
}
@@ -103,17 +104,17 @@ public class EmbeddedTomEEContainer exte
final File file = new File(tempDir, name);
*/
final String name = archive.getName();
- final File file = dumpFile(archive);
+ final File file = this.dumpFile(archive);
ARCHIVES.put(archive, file);
- archiveWithTestInfo(archive).as(ZipExporter.class).exportTo(file, true);
+ this.archiveWithTestInfo(archive).as(ZipExporter.class).exportTo(file, true);
- container.deploy(name, file);
- final AppInfo info = container.getInfo(name);
- final String context = getArchiveNameWithoutExtension(archive);
+ this.container.deploy(name, file);
+ final AppInfo info = this.container.getInfo(name);
+ final String context = this.getArchiveNameWithoutExtension(archive);
- final HTTPContext httpContext = new HTTPContext(configuration.getHost(), configuration.getHttpPort());
+ final HTTPContext httpContext = new HTTPContext(this.configuration.getHost(), this.configuration.getHttpPort());
httpContext.add(new Servlet("ArquillianServletRunner", "/" + context));
- addServlets(httpContext, info);
+ this.addServlets(httpContext, info);
return new ProtocolMetaData().addContext(httpContext);
} catch (Exception e) {
@@ -123,16 +124,16 @@ public class EmbeddedTomEEContainer exte
}
@Override
- public void undeploy(Archive<?> archive) throws DeploymentException {
+ public void undeploy(final Archive<?> archive) throws DeploymentException {
try {
final String name = archive.getName();
- container.undeploy(name);
+ this.container.undeploy(name);
} catch (Exception e) {
e.printStackTrace();
throw new DeploymentException("Unable to undeploy", e);
}
- File file = ARCHIVES.remove(archive);
- File folder = new File(file.getParentFile(), file.getName().substring(0, file.getName().length() - 5));
+ final File file = ARCHIVES.remove(archive);
+ final File folder = new File(file.getParentFile(), file.getName().substring(0, file.getName().length() - 5));
if (folder.exists()) {
Files.delete(folder);
}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEExtension.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEExtension.java?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEExtension.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEExtension.java Thu Nov 29 15:40:34 2012
@@ -26,16 +26,41 @@ import org.jboss.arquillian.container.te
import org.jboss.arquillian.core.spi.LoadableExtension;
import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
public class RemoteTomEEExtension implements LoadableExtension {
+
private static final String ADAPTER = "tomee-remote";
+ private static final AtomicBoolean registered = new AtomicBoolean(false);
+ private static final ReentrantLock lock = new ReentrantLock();
- @Override public void register(ExtensionBuilder builder) {
+ @Override
+ public void register(final ExtensionBuilder builder) {
if (ArquillianUtil.isCurrentAdapter(ADAPTER)) {
- builder.service(DeployableContainer.class, RemoteTomEEContainer.class)
- .service(AuxiliaryArchiveAppender.class, RemoteTomEEEJBEnricherArchiveAppender.class)
- .observer(DeploymentExceptionObserver.class)
- .observer(RemoteInitialContextObserver.class)
- .service(ResourceProvider.class, DeploymentExceptionProvider.class);
+
+ final ReentrantLock l = lock;
+ l.lock();
+
+ try {
+
+ if (!registered.getAndSet(true)) {
+
+ try {
+ builder.observer(RemoteInitialContextObserver.class);
+ builder.observer(DeploymentExceptionObserver.class);
+ builder.service(DeployableContainer.class, RemoteTomEEContainer.class)
+ .service(AuxiliaryArchiveAppender.class, RemoteTomEEEJBEnricherArchiveAppender.class)
+ .service(ResourceProvider.class, DeploymentExceptionProvider.class);
+ } catch (IllegalArgumentException e) {
+ Logger.getLogger(RemoteTomEEExtension.class.getName()).log(Level.WARNING, "RemoteTomEEExtension: " + e.getMessage());
+ }
+ }
+ } finally {
+ l.unlock();
+ }
}
}
}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/hibernate/HibernateTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/hibernate/HibernateTest.java?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/hibernate/HibernateTest.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/hibernate/HibernateTest.java Thu Nov 29 15:40:34 2012
@@ -28,17 +28,17 @@ import org.jboss.shrinkwrap.api.ArchiveP
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.jboss.shrinkwrap.resolver.api.DependencyResolvers;
import org.jboss.shrinkwrap.resolver.api.ResolutionException;
-import org.jboss.shrinkwrap.resolver.api.maven.MavenDependencyResolver;
-import org.jboss.shrinkwrap.resolver.api.maven.MavenResolutionFilter;
-import org.jboss.shrinkwrap.resolver.api.maven.filter.ScopeFilter;
+import org.jboss.shrinkwrap.resolver.api.maven.Maven;
+import org.jboss.shrinkwrap.resolver.api.maven.ScopeType;
+import org.jboss.shrinkwrap.resolver.api.maven.strategy.AcceptScopesStrategy;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.persistence.EntityManagerFactory;
import java.io.File;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@RunWith(Arquillian.class)
@@ -47,50 +47,51 @@ public class HibernateTest {
public static WebArchive war() {
File[] hibernate;
try { // try offline first since it is generally faster
- hibernate = DependencyResolvers.use(MavenDependencyResolver.class)
- .goOffline()
- .loadEffectivePom("src/test/resources/hibernate-pom.xml")
- .importAnyDependencies(new ScopeFilter("compile"))
- .resolveAsFiles();
+ hibernate = Maven.resolver()
+ .offline(true)
+ .loadPomFromFile("src/test/resources/hibernate-pom.xml")
+ .importRuntimeAndTestDependencies(new AcceptScopesStrategy(ScopeType.COMPILE))
+ .asFile();
} catch (ResolutionException re) { // try on central
- hibernate = DependencyResolvers.use(MavenDependencyResolver.class)
- .loadEffectivePom("src/test/resources/hibernate-pom.xml")
- .importAnyDependencies(new ScopeFilter("compile"))
- .resolveAsFiles();
+ hibernate = Maven.resolver()
+ .loadPomFromFile("src/test/resources/hibernate-pom.xml")
+ .importRuntimeAndTestDependencies(new AcceptScopesStrategy(ScopeType.COMPILE))
+ .asFile();
}
return ShrinkWrap.create(WebArchive.class, "hibernate-app.war")
- .addAsWebInfResource(new StringAsset("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
- "<persistence version=\"2.0\"\n" +
- " xmlns=\"http://java.sun.com/xml/ns/persistence\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
- " xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence" +
- " http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd\">\n" +
- " <persistence-unit name=\"hibernate\">\n" +
- " <provider>org.hibernate.ejb.HibernatePersistence</provider>\n" +
- " <exclude-unlisted-classes>true</exclude-unlisted-classes>\n" +
- " <properties>\n" +
- " <property name=\"hibernate.hbm2ddl.auto\" value=\"create-drop\" />\n" +
- " </properties>\n" +
- " </persistence-unit>\n" +
- "</persistence>"), ArchivePaths.create("persistence.xml"))
- .addAsLibraries(hibernate)
- .addAsLibraries(JarLocation.jarLocation(ResolutionException.class))
- .addAsLibraries(JarLocation.jarLocation(MavenResolutionFilter.class));
+ .addAsWebInfResource(new StringAsset("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<persistence version=\"2.0\"\n" +
+ " xmlns=\"http://java.sun.com/xml/ns/persistence\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence" +
+ " http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd\">\n" +
+ " <persistence-unit name=\"hibernate\">\n" +
+ " <provider>org.hibernate.ejb.HibernatePersistence</provider>\n" +
+ " <exclude-unlisted-classes>true</exclude-unlisted-classes>\n" +
+ " <properties>\n" +
+ " <property name=\"hibernate.hbm2ddl.auto\" value=\"create-drop\" />\n" +
+ " </properties>\n" +
+ " </persistence-unit>\n" +
+ "</persistence>"), ArchivePaths.create("persistence.xml"))
+ .addAsLibraries(hibernate)
+ .addAsLibraries(JarLocation.jarLocation(ResolutionException.class))
+ .addAsLibraries(JarLocation.jarLocation(org.jboss.shrinkwrap.resolver.api.maven.filter.MavenResolutionFilter.class));
}
@Test // using an internal lookup because in tomee embedded new InitialContext() is not guaranteed
public void checkEmIsHibernateOne() throws Exception {
AppInfo info = null;
- for (AppInfo app : SystemInstance.get().getComponent(Assembler.class).getDeployedApplications()) {
+ for (final AppInfo app : SystemInstance.get().getComponent(Assembler.class).getDeployedApplications()) {
if (app.appId.endsWith("hibernate-app")) {
info = app;
break;
}
}
+ assertNotNull(info);
final EntityManagerFactory emf = (EntityManagerFactory)
- SystemInstance.get().getComponent(ContainerSystem.class)
- .getJNDIContext().lookup(Assembler.PERSISTENCE_UNIT_NAMING_CONTEXT + info.persistenceUnits.iterator().next().id);
+ SystemInstance.get().getComponent(ContainerSystem.class)
+ .getJNDIContext().lookup(Assembler.PERSISTENCE_UNIT_NAMING_CONTEXT + info.persistenceUnits.iterator().next().id);
assertTrue(((ReloadableEntityManagerFactory) emf).getDelegate().getClass().getName().startsWith("org.hibernate."));
}
}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml Thu Nov 29 15:40:34 2012
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
- <version>2.0.0-alpha-1</version>
+ <version>2.0.0-alpha-5</version>
<scope>test</scope>
</dependency>
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappExtension.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappExtension.java?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappExtension.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappExtension.java Thu Nov 29 15:40:34 2012
@@ -26,17 +26,42 @@ import org.jboss.arquillian.container.te
import org.jboss.arquillian.core.spi.LoadableExtension;
import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
public class TomEEWebappExtension implements LoadableExtension {
+
private static final String ADAPTER = "tomee-webapp";
+ private static final AtomicBoolean registered = new AtomicBoolean(false);
+ private static final ReentrantLock lock = new ReentrantLock();
@Override
- public void register(ExtensionBuilder builder) {
+ public void register(final ExtensionBuilder builder) {
if (ArquillianUtil.isCurrentAdapter(ADAPTER)) {
- builder.service(DeployableContainer.class, TomEEWebappContainer.class)
- .service(AuxiliaryArchiveAppender.class, TomEEWebappEJBEnricherArchiveAppender.class)
- .observer(DeploymentExceptionObserver.class)
- .observer(RemoteInitialContextObserver.class)
- .service(ResourceProvider.class, DeploymentExceptionProvider.class);
+
+ final ReentrantLock l = lock;
+ l.lock();
+
+ try {
+
+ if (!registered.getAndSet(true)) {
+
+ try {
+ builder.observer(DeploymentExceptionObserver.class);
+ builder.observer(RemoteInitialContextObserver.class);
+
+ builder.service(DeployableContainer.class, TomEEWebappContainer.class)
+ .service(AuxiliaryArchiveAppender.class, TomEEWebappEJBEnricherArchiveAppender.class)
+ .service(ResourceProvider.class, DeploymentExceptionProvider.class);
+ } catch (IllegalArgumentException e) {
+ Logger.getLogger(TomEEWebappExtension.class.getName()).log(Level.WARNING, "TomEEWebappExtension: " + e.getMessage());
+ }
+ }
+ } finally {
+ l.unlock();
+ }
}
}
}
Modified: openejb/trunk/openejb/arquillian/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/pom.xml?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/pom.xml Thu Nov 29 15:40:34 2012
@@ -34,7 +34,7 @@
<properties>
<version.arquillian>1.0.3.Final</version.arquillian>
<version.shrinkwrap.descriptor>2.0.0-alpha-4</version.shrinkwrap.descriptor>
- <version.shrinkwrap.shrinkwrap>1.1.1-alpha-1</version.shrinkwrap.shrinkwrap>
+ <version.shrinkwrap.shrinkwrap>1.1.1-alpha-2</version.shrinkwrap.shrinkwrap>
</properties>
<modules>
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1415216&r1=1415215&r2=1415216&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Thu Nov 29 15:40:34 2012
@@ -383,7 +383,7 @@ public class TomcatWebAppBuilder impleme
InputStream contextXml = null;
URL contextXmlUrl = null;
if (war.isDirectory()) {
- final File cXml = new File(war, Constants.ApplicationContextXml);
+ final File cXml = new File(war, Constants.ApplicationContextXml).getAbsoluteFile();
if (cXml.exists()) {
contextXml = IO.read(cXml);
contextXmlUrl = cXml.toURI().toURL();
@@ -393,7 +393,7 @@ public class TomcatWebAppBuilder impleme
final JarFile warAsJar = new JarFile(war);
final JarEntry entry = warAsJar.getJarEntry(Constants.ApplicationContextXml);
if (entry != null) {
- contextXmlUrl = new URL("jar:file://" + war.getAbsolutePath() + "!/" + Constants.ApplicationContextXml);
+ contextXmlUrl = new URL("jar:" + war.getAbsoluteFile().toURI().toURL().toExternalForm() + "!/" + Constants.ApplicationContextXml);
contextXml = warAsJar.getInputStream(entry);
}
}