Author: rmannibucau
Date: Sat Mar 22 11:12:34 2014
New Revision: 1580193

URL: http://svn.apache.org/r1580193
Log:
OPENEJB-2084 AfterEvent to replace Stop/Start events

Removed:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java
Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerAfterApplicationCreated.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerBeforeApplicationDestroyed.java
    
tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
    
tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
    
tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cluster/ClusterObserver.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 Sat Mar 22 11:12:34 2014
@@ -45,8 +45,6 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.event.AssemblerDestroyed;
 import org.apache.openejb.assembler.classic.event.ContainerSystemPostCreate;
 import org.apache.openejb.assembler.classic.event.ContainerSystemPreDestroy;
-import org.apache.openejb.assembler.classic.event.StartApplicationContext;
-import org.apache.openejb.assembler.classic.event.StopApplicationContext;
 import org.apache.openejb.assembler.monitoring.JMXContainer;
 import org.apache.openejb.async.AsynchronousPool;
 import org.apache.openejb.cdi.CdiAppContextsService;
@@ -888,10 +886,8 @@ public class Assembler extends Assembler
             deployedApplications.put(appInfo.path, appInfo);
             resumePersistentSchedulers(appContext);
 
-            systemInstance.fireEvent(new StartApplicationContext(appInfo, 
appContext));
-
+            systemInstance.fireEvent(new 
AssemblerAfterApplicationCreated(appInfo, appContext, allDeployments));
             logger.info("createApplication.success", appInfo.path);
-            systemInstance.fireEvent(new 
AssemblerAfterApplicationCreated(appInfo, allDeployments));
 
             return appContext;
         } catch (final ValidationException ve) {
@@ -1522,13 +1518,11 @@ public class Assembler extends Assembler
             deployedApplications.remove(appInfo.path);
             logger.info("destroyApplication.start", appInfo.path);
 
-            SystemInstance.get().fireEvent(new 
AssemblerBeforeApplicationDestroyed(appInfo));
-
             final Context globalContext = containerSystem.getJNDIContext();
             final AppContext appContext = 
containerSystem.getAppContext(appInfo.appId);
             final ClassLoader classLoader = appContext.getClassLoader();
 
-            SystemInstance.get().fireEvent(new StopApplicationContext(appInfo, 
appContext));
+            SystemInstance.get().fireEvent(new 
AssemblerBeforeApplicationDestroyed(appInfo, appContext));
 
             if (null == appContext) {
                 logger.warning("Application id '" + appInfo.appId + "' not 
found in: " + Arrays.toString(containerSystem.getAppContextKeys()));

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerAfterApplicationCreated.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerAfterApplicationCreated.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerAfterApplicationCreated.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerAfterApplicationCreated.java
 Sat Mar 22 11:12:34 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.assembler.classic.event;
 
+import org.apache.openejb.AppContext;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.observer.Event;
@@ -25,25 +26,29 @@ import java.util.Collection;
 @Event
 public class AssemblerAfterApplicationCreated {
     private final AppInfo app;
+    private final AppContext context;
     private final Collection<BeanContext> deployedEjbs;
-    private final String s;
 
-    public AssemblerAfterApplicationCreated(final AppInfo appInfo, final 
Collection<BeanContext> ejbs) {
+    public AssemblerAfterApplicationCreated(final AppInfo appInfo, final 
AppContext appContext, final Collection<BeanContext> ejbs) {
         app = appInfo;
+        context = appContext;
         deployedEjbs = ejbs;
-        this.s = "AssemblerAfterApplicationCreated{app=" + app.appId +"}";
     }
 
     public AppInfo getApp() {
         return app;
     }
 
+    public AppContext getContext() {
+        return context;
+    }
+
     public Collection<BeanContext> getDeployedEjbs() {
         return deployedEjbs;
     }
 
     @Override
     public String toString() {
-        return s;
+        return "AssemblerAfterApplicationCreated{app=" + app.appId +"}";
     }
 }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerBeforeApplicationDestroyed.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerBeforeApplicationDestroyed.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerBeforeApplicationDestroyed.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/AssemblerBeforeApplicationDestroyed.java
 Sat Mar 22 11:12:34 2014
@@ -16,25 +16,30 @@
  */
 package org.apache.openejb.assembler.classic.event;
 
+import org.apache.openejb.AppContext;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.observer.Event;
 
 @Event
 public class AssemblerBeforeApplicationDestroyed {
     private final AppInfo app;
-    private final String s;
+    private final AppContext context;
 
-    public AssemblerBeforeApplicationDestroyed(final AppInfo appInfo) {
+    public AssemblerBeforeApplicationDestroyed(final AppInfo appInfo, final 
AppContext appContext) {
         app = appInfo;
-        s = "AssemblerBeforeApplicationDestroyed{app=" + app.appId + "}";
+        context = appContext;
     }
 
     public AppInfo getApp() {
         return app;
     }
 
+    public AppContext getContext() {
+        return context;
+    }
+
     @Override
     public String toString() {
-        return s;
+        return "AssemblerBeforeApplicationDestroyed{app=" + app.appId + "}";
     }
 }

Modified: 
tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
 Sat Mar 22 11:12:34 2014
@@ -22,9 +22,9 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
-import org.apache.openejb.assembler.classic.event.StartApplicationContext;
+import 
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
+import 
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
 import 
org.apache.openejb.assembler.classic.event.NewEjbAvailableAfterApplicationCreated;
-import org.apache.openejb.assembler.classic.event.StopApplicationContext;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.observer.Observes;
 import org.apache.openejb.server.SelfManaging;
@@ -114,7 +114,7 @@ public class HessianService implements S
         final Assembler assembler = 
SystemInstance.get().getComponent(Assembler.class);
         if (assembler != null) {
             for (final AppInfo appInfo : assembler.getDeployedApplications()) {
-                deploy(new StartApplicationContext(appInfo, 
SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(appInfo.appId)));
+                deploy(new AssemblerAfterApplicationCreated(appInfo, 
SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(appInfo.appId),
 null));
             }
         }
     }
@@ -160,24 +160,24 @@ public class HessianService implements S
         deploy(event.getApp(), event.getBeanContexts());
     }
 
-    public void deploy(final @Observes StartApplicationContext event) {
-        final AppInfo appInfo = event.getApplicationInfo();
-        deploy(appInfo, event.getApplicationContext().getBeanContexts());
+    public void deploy(final @Observes AssemblerAfterApplicationCreated event) 
{
+        final AppInfo appInfo = event.getApp();
+        deploy(appInfo, event.getContext().getBeanContexts());
     }
 
-    public void undeploy(@Observes final StopApplicationContext event) {
+    public void undeploy(@Observes final AssemblerBeforeApplicationDestroyed 
event) {
         if (disabled) {
             return;
         }
 
-        for (final BeanContext beanContext : 
event.getApplicationContext().getBeanContexts()) {
+        for (final BeanContext beanContext : 
event.getContext().getBeanContexts()) {
             final Class<?> remoteItf = 
beanContext.getBusinessRemoteInterface();
             if (remoteItf == null) {
                 continue;
             }
 
             final String name = 
String.class.cast(beanContext.getDeploymentID());
-            registry.undeploy(virtualHost, appName(event.getApplicationInfo(), 
beanContext), name);
+            registry.undeploy(virtualHost, appName(event.getApp(), 
beanContext), name);
             LOGGER.info("Undeployed hessian service " + name);
         }
     }

Modified: 
tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
 Sat Mar 22 11:12:34 2014
@@ -30,8 +30,8 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.assembler.classic.ServletInfo;
 import org.apache.openejb.assembler.classic.WebAppInfo;
-import org.apache.openejb.assembler.classic.event.StartApplicationContext;
-import org.apache.openejb.assembler.classic.event.StopApplicationContext;
+import 
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
+import 
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
 import org.apache.openejb.assembler.classic.util.PojoUtil;
 import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
 import org.apache.openejb.core.CoreContainerSystem;
@@ -535,11 +535,11 @@ public abstract class RESTService implem
         return additionalProviders;
     }
 
-    public void afterApplicationCreated(@Observes final 
StartApplicationContext event) {
+    public void afterApplicationCreated(@Observes final 
AssemblerAfterApplicationCreated event) {
         if (!enabled)
             return;
 
-        final AppInfo appInfo = event.getApplicationInfo();
+        final AppInfo appInfo = event.getApp();
         if 
("false".equalsIgnoreCase(appInfo.properties.getProperty("openejb.jaxrs.on", 
"true"))) {
             return;
         }
@@ -885,8 +885,8 @@ public abstract class RESTService implem
         return cl;
     }
 
-    public void deploy(@Observes final StopApplicationContext event) {
-        final AppInfo app = event.getApplicationInfo();
+    public void undeploy(@Observes final AssemblerBeforeApplicationDestroyed 
event) {
+        final AppInfo app = event.getApp();
         if (deployedApplications.contains(app)) {
             for (final WebAppInfo webApp : app.webApps) {
                 final List<DeployedService> toRemove = new 
ArrayList<DeployedService>();
@@ -914,7 +914,7 @@ public abstract class RESTService implem
             SystemInstance.get().addObserver(this);
             for (final AppInfo appInfo : assembler.getDeployedApplications()) {
                 final AppContext appContext = 
containerSystem.getAppContext(appInfo.appId);
-                afterApplicationCreated(new StartApplicationContext(appInfo, 
appContext));
+                afterApplicationCreated(new 
AssemblerAfterApplicationCreated(appInfo, appContext, null));
             }
         }
     }
@@ -931,7 +931,7 @@ public abstract class RESTService implem
         if (assembler != null) {
             SystemInstance.get().removeObserver(this);
             for (final AppInfo appInfo : new 
ArrayList<AppInfo>(deployedApplications)) {
-                deploy(new StopApplicationContext(appInfo, null));
+                undeploy(new AssemblerBeforeApplicationDestroyed(appInfo, 
null));
             }
         }
 

Modified: 
tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
 Sat Mar 22 11:12:34 2014
@@ -31,9 +31,9 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.StatelessBeanInfo;
 import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.assembler.classic.WsBuilder;
+import 
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
+import 
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
 import 
org.apache.openejb.assembler.classic.event.NewEjbAvailableAfterApplicationCreated;
-import org.apache.openejb.assembler.classic.event.StartApplicationContext;
-import org.apache.openejb.assembler.classic.event.StopApplicationContext;
 import org.apache.openejb.assembler.classic.util.PojoUtil;
 import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
 import org.apache.openejb.core.CoreContainerSystem;
@@ -187,7 +187,7 @@ public abstract class WsService implemen
             SystemInstance.get().addObserver(this);
             for (final AppInfo appInfo : assembler.getDeployedApplications()) {
                 final AppContext appContext = 
containerSystem.getAppContext(appInfo.appId);
-                deploy(new StartApplicationContext(appInfo, appContext));
+                deploy(new AssemblerAfterApplicationCreated(appInfo, 
appContext, null));
             }
         }
     }
@@ -197,7 +197,7 @@ public abstract class WsService implemen
         if (assembler != null) {
             SystemInstance.get().removeObserver(this);
             for (final AppInfo appInfo : new 
ArrayList<AppInfo>(deployedApplications)) {
-                undeploy(new StopApplicationContext(appInfo, null));
+                undeploy(new AssemblerBeforeApplicationDestroyed(appInfo, 
null));
             }
             assembler = null;
             if (SystemInstance.get().getComponent(WsService.class) == this) {
@@ -221,10 +221,10 @@ public abstract class WsService implemen
         deployApp(event.getApp(), event.getBeanContexts());
     }
 
-    public void deploy(final @Observes StartApplicationContext event) {
-        final AppInfo appInfo = event.getApplicationInfo();
+    public void deploy(final @Observes AssemblerAfterApplicationCreated event) 
{
+        final AppInfo appInfo = event.getApp();
         if (deployedApplications.add(appInfo)) {
-            deployApp(appInfo, 
event.getApplicationContext().getBeanContexts());
+            deployApp(appInfo, event.getContext().getBeanContexts());
         }
     }
 
@@ -426,8 +426,8 @@ public abstract class WsService implemen
         }
     }
 
-    public void undeploy(@Observes final StopApplicationContext event) {
-        final AppInfo appInfo = event.getApplicationInfo();
+    public void undeploy(@Observes final AssemblerBeforeApplicationDestroyed 
event) {
+        final AppInfo appInfo = event.getApp();
         if (deployedApplications.remove(appInfo)) {
             for (final EjbJarInfo ejbJar : appInfo.ejbJars) {
                 final Map<String, PortInfo> ports = new TreeMap<String, 
PortInfo>();

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cluster/ClusterObserver.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cluster/ClusterObserver.java?rev=1580193&r1=1580192&r2=1580193&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cluster/ClusterObserver.java
 (original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cluster/ClusterObserver.java
 Sat Mar 22 11:12:34 2014
@@ -19,10 +19,11 @@ package org.apache.tomee.catalina.cluste
 import org.apache.catalina.ha.CatalinaCluster;
 import org.apache.catalina.ha.ClusterMessage;
 import org.apache.openejb.assembler.classic.AppInfo;
-import org.apache.openejb.assembler.classic.event.StartApplicationContext;
-import org.apache.openejb.assembler.classic.event.StopApplicationContext;
+import 
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
+import 
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.observer.Observes;
+import org.apache.openejb.observer.event.AfterEvent;
 
 import java.io.File;
 import java.util.Set;
@@ -36,21 +37,21 @@ public class ClusterObserver {
         this.clusters = clusters;
     }
 
-    public void deploy(@Observes final StartApplicationContext app) {
+    public void deploy(@Observes final 
AfterEvent<AssemblerAfterApplicationCreated> app) {
         if (!ClUSTER_DEPLOYMENT) {
             return;
         }
 
-        final AppInfo appInfo = app.getApplicationInfo();
+        final AppInfo appInfo = app.getEvent().getApp();
         send(new DeployMessage(appInfo.path), appInfo);
     }
 
-    public void undeploy(@Observes final StopApplicationContext app) {
+    public void undeploy(@Observes final AssemblerBeforeApplicationDestroyed 
app) {
         if (!ClUSTER_DEPLOYMENT) {
             return;
         }
 
-        final AppInfo appInfo = app.getApplicationInfo();
+        final AppInfo appInfo = app.getApp();
         send(new UndeployMessage(appInfo.path), appInfo);
     }
 


Reply via email to