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;
> >
> >
> >
>
>

Reply via email to