It never works as webapps (at least because of exception management). Personally i never made it work otherwise, do we scan tomcat hosts, never saw it? We were using tomcat polling but it doesnt match the containers impl
- Romain Le 5 janv. 2012 00:13, "David Blevins" <[email protected]> a écrit : > Note that we've always told people to drop their ears or jars into > webapps/ and it "just works". If this broke, we should fix it. > > > We really shouldn't even have an apps/ dir in TomEE. > > > -David > > On Jan 4, 2012, at 2:13 PM, [email protected] wrote: > > > Author: rmannibucau > > Date: Wed Jan 4 22:13:21 2012 > > New Revision: 1227348 > > > > URL: http://svn.apache.org/viewvc?rev=1227348&view=rev > > Log: > > managing exception through the exception manager when deploying an > additional Deployment (openejb.xml) > > > > Added: > > > > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java > > - copied, changed from r1227285, > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java > > Removed: > > > > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java > > Modified: > > > > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java > > > > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java > > > > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java > > > > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java > > > > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java > > > > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java > > > > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java > > > > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatHook.java > > > > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java > > > > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java > > > > Modified: > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java > (original) > > +++ > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java > Wed Jan 4 22:13:21 2012 > > @@ -20,6 +20,8 @@ import java.util.Date; > > import java.util.Properties; > > > > import javax.transaction.TransactionManager; > > + > > +import org.apache.openejb.assembler.classic.DeploymentExceptionManager; > > import org.apache.openejb.cdi.CdiBuilder; > > import org.apache.openejb.loader.SystemInstance; > > import org.apache.openejb.spi.ApplicationServer; > > @@ -83,6 +85,8 @@ public final class OpenEJB { > > } > > SystemInstance system = SystemInstance.get(); > > > > + system.setComponent(DeploymentExceptionManager.class, new > DeploymentExceptionManager()); > > + > > system.setComponent(ApplicationServer.class, appServer); > > //OWB support. The classloader has to be able to load all > OWB components including the ones supplied by OpenEjb. > > CdiBuilder.initializeOWB(getClass().getClassLoader()); > > > > Modified: > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java > (original) > > +++ > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java > Wed Jan 4 22:13:21 2012 > > @@ -409,6 +409,11 @@ public class Assembler extends Assembler > > // already logged. > > } catch (Throwable e) { > > logger.error("appNotDeployed", e, appInfo.path); > > + > > + final DeploymentExceptionManager exceptionManager = > SystemInstance.get().getComponent(DeploymentExceptionManager.class); > > + if (exceptionManager != null && e instanceof Exception) > { > > + exceptionManager.saveDelpoymentException(appInfo, > (Exception) e); > > + } > > } > > } > > } > > > > Copied: > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java > (from r1227285, > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java) > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java?p2=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java&p1=openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java&r1=1227285&r2=1227348&rev=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java > (original) > > +++ > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java > Wed Jan 4 22:13:21 2012 > > @@ -1,4 +1,4 @@ > > -package org.apache.tomee.catalina; > > +package org.apache.openejb.assembler.classic; > > > > import org.apache.openejb.assembler.classic.AppInfo; > > > > @@ -20,19 +20,19 @@ public class DeploymentExceptionManager > > } > > }; > > > > - public synchronized boolean hasDelpoyementFailed(AppInfo appInfo) { > > + public synchronized boolean hasDelpoymentFailed(AppInfo appInfo) { > > return deploymentException.containsKey(appInfo); > > } > > > > - public synchronized Exception getDelpoyementException(AppInfo > appInfo) { > > + public synchronized Exception getDelpoymentException(AppInfo > appInfo) { > > return deploymentException.get(appInfo); > > } > > > > - public synchronized Exception saveDelpoyementException(AppInfo > appInfo, Exception exception) { > > + public synchronized Exception saveDelpoymentException(AppInfo > appInfo, Exception exception) { > > return deploymentException.put(appInfo, exception); > > } > > > > - public synchronized void clearDelpoyementException(AppInfo info) { > > + public synchronized void clearDelpoymentException(AppInfo info) { > > deploymentException.remove(info); > > } > > > > > > Modified: > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java > (original) > > +++ > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java > Wed Jan 4 22:13:21 2012 > > @@ -28,6 +28,10 @@ public class AbstractContainers { > > protected static final String tmpDir = > System.getProperty("java.io.tmpdir"); > > > > protected void writeToFile(File file, InputStream archive) { > > + if (!file.getParentFile().exists()) { > > + file.getParentFile().mkdirs(); > > + } > > + > > try { > > FileOutputStream fos = new FileOutputStream(file); > > byte[] buffer = new byte[4096]; > > > > Modified: > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java > (original) > > +++ > openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java > Wed Jan 4 22:13:21 2012 > > @@ -40,6 +40,7 @@ import java.util.Properties; > > */ > > public class FullRestartContainer extends AbstractContainers implements > Containers { > > private static final File WEBAPP_DIR = new > File(System.getProperty("openejb.home"), "webapps/"); > > + private static final File APPS_DIR = new > File(System.getProperty("openejb.home"), "apps/"); > > > > private RemoteServer server; > > private Exception exception; > > @@ -60,7 +61,12 @@ public class FullRestartContainer extend > > > > @Override > > public boolean deploy(InputStream archive, String name) throws > IOException { > > - currentFile = new File(WEBAPP_DIR, name); > > + if (name.endsWith("war")) { > > + currentFile = new File(WEBAPP_DIR, name); > > + } else { > > + currentFile = new File(APPS_DIR, name); > > + } > > + > > System.out.println(currentFile); > > writeToFile(currentFile, archive); > > > > @@ -71,6 +77,7 @@ public class FullRestartContainer extend > > e.printStackTrace(); > > throw e; > > } > > + > > return (exception = lookup().exception()) == null; > > } > > > > > > Modified: > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java > (original) > > +++ > openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java > Wed Jan 4 22:13:21 2012 > > @@ -187,7 +187,6 @@ public class TomcatLoader implements Loa > > tomcatWebAppBuilder.start(); > > SystemInstance.get().setComponent(WebAppBuilder.class, > tomcatWebAppBuilder); > > } > > - > SystemInstance.get().setComponent(DeploymentExceptionManager.class, new > DeploymentExceptionManager()); > > > > // Web Services will be installed into the > WebDeploymentListeners list > > SystemInstance.get().setComponent(WebDeploymentListeners.class, > new WebDeploymentListeners()); > > > > 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=1227348&r1=1227347&r2=1227348&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 > Wed Jan 4 22:13:21 2012 > > @@ -47,6 +47,7 @@ import org.apache.openejb.OpenEJBExcepti > > import org.apache.openejb.assembler.classic.AppInfo; > > import org.apache.openejb.assembler.classic.Assembler; > > import org.apache.openejb.assembler.classic.ConnectorInfo; > > +import org.apache.openejb.assembler.classic.DeploymentExceptionManager; > > import org.apache.openejb.assembler.classic.EjbJarInfo; > > import org.apache.openejb.assembler.classic.InjectionBuilder; > > import org.apache.openejb.assembler.classic.JndiEncBuilder; > > @@ -597,7 +598,7 @@ public class TomcatWebAppBuilder impleme > > if (System.getProperty(TOMEE_EAT_EXCEPTION_PROP) == > null) { > > final TomEERuntimeException tre = new > TomEERuntimeException(e); > > DeploymentExceptionManager dem = > SystemInstance.get().getComponent(DeploymentExceptionManager.class); > > - > dem.saveDelpoyementException(contextInfo.appInfo, tre); > > + > dem.saveDelpoymentException(contextInfo.appInfo, tre); > > throw tre; > > } > > return; > > > > Modified: > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java > (original) > > +++ > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java > Wed Jan 4 22:13:21 2012 > > @@ -56,10 +56,12 @@ public class OpenEJBListener implements > > try { > > Properties properties = new Properties(); > > File webappDir = findOpenEjbWar(); > > - properties.setProperty("openejb.war", > webappDir.getAbsolutePath()); > > - properties.setProperty("openejb.embedder.source", > getClass().getSimpleName()); > > - TomcatEmbedder.embed(properties, > StandardServer.class.getClassLoader()); > > - listenerInstalled = true; > > + if (webappDir != null) { > > + properties.setProperty("openejb.war", > webappDir.getAbsolutePath()); > > + properties.setProperty("openejb.embedder.source", > getClass().getSimpleName()); > > + TomcatEmbedder.embed(properties, > StandardServer.class.getClassLoader()); > > + listenerInstalled = true; > > + } // webapp can be found lazily in some conditions > > } catch (Exception e) { > > System.out.println("ERROR: OpenEJB webapp was not found"); > > // e.printStackTrace(System.err); > > > > Modified: > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatHook.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatHook.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatHook.java > (original) > > +++ > openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatHook.java > Wed Jan 4 22:13:21 2012 > > @@ -148,7 +148,9 @@ class TomcatHook { > > if( properties.getProperty("openejb.libs") == null){ > > throw new NullPointerException("openejb.libs property is not > set"); > > } > > - > > + > > + final Embedder embedder = new > Embedder("org.apache.tomee.catalina.TomcatLoader"); > > + SystemInstance.get().setComponent(Embedder.class, embedder); > > try { > > // create the loader > > > > @@ -159,7 +161,6 @@ class TomcatHook { > > > > // This guy does the magic of squishing the openejb > libraries into the parent classloader > > // and kicking off the reall integration. > > - Embedder embedder = new > Embedder("org.apache.tomee.catalina.TomcatLoader"); > > embedder.init(properties); > > } catch (Exception e) { > > e.printStackTrace(); > > > > Modified: > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java > (original) > > +++ > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java > Wed Jan 4 22:13:21 2012 > > @@ -41,11 +41,11 @@ import org.apache.openejb.UndeployExcept > > import org.apache.openejb.assembler.Deployer; > > import org.apache.openejb.assembler.classic.AppInfo; > > import org.apache.openejb.assembler.classic.Assembler; > > +import org.apache.openejb.assembler.classic.DeploymentExceptionManager; > > import org.apache.openejb.assembler.classic.WebAppBuilder; > > import org.apache.openejb.loader.FileUtils; > > import org.apache.openejb.loader.SystemInstance; > > import org.apache.tomcat.util.modeler.Registry; > > -import org.apache.tomee.catalina.DeploymentExceptionManager; > > import org.apache.tomee.catalina.TomcatWebAppBuilder; > > import org.apache.tomee.loader.TomcatHelper; > > > > @@ -118,10 +118,10 @@ public class WebappDeployer implements D > > } > > > > final DeploymentExceptionManager dem = > SystemInstance.get().getComponent(DeploymentExceptionManager.class); > > - if (dem.hasDelpoyementFailed(info)) { > > - Exception tre = dem.getDelpoyementException(info); > > + if (dem.hasDelpoymentFailed(info)) { > > + Exception tre = dem.getDelpoymentException(info); > > // we don't need this exceptino anymore > > - dem.clearDelpoyementException(info); > > + dem.clearDelpoymentException(info); > > throw tre; > > } > > > > > > Modified: > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java?rev=1227348&r1=1227347&r2=1227348&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java > (original) > > +++ > openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java > Wed Jan 4 22:13:21 2012 > > @@ -1,7 +1,7 @@ > > package org.apache.tomee.catalina.facade; > > > > +import org.apache.openejb.assembler.classic.DeploymentExceptionManager; > > import org.apache.openejb.loader.SystemInstance; > > -import org.apache.tomee.catalina.DeploymentExceptionManager; > > > > import javax.ejb.Singleton; > > import javax.ejb.TransactionManagement; > > > > > > > >
