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 2012/01/04 23:13:21 UTC

svn commit: r1227348 - in /openejb/trunk/openejb: container/openejb-core/src/main/java/org/apache/openejb/ container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ tomee/tomee-...

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;



Re: Where to deploy non-wars (was: Re: svn commit: r1227348)

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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" <da...@gmail.com> 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, rmannibucau@apache.org 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;
> >
> >
> >
>
>

Where to deploy non-wars (was: Re: svn commit: r1227348)

Posted by David Blevins <da...@gmail.com>.
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, rmannibucau@apache.org 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;
> 
> 
>