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