You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2014/03/22 01:49:45 UTC
svn commit: r1580105 - in /tomee/tomee/trunk:
container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/
server/openejb-hessian/src/main/java/org/apache/op...
Author: dblevins
Date: Sat Mar 22 00:49:44 2014
New Revision: 1580105
URL: http://svn.apache.org/r1580105
Log:
OPENEJB-2084 - Move Server Services to a dedicated "Start" event
Added:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java (with props)
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java (with props)
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.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=1580105&r1=1580104&r2=1580105&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 00:49:44 2014
@@ -45,6 +45,8 @@ 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;
@@ -886,6 +888,8 @@ public class Assembler extends Assembler
deployedApplications.put(appInfo.path, appInfo);
resumePersistentSchedulers(appContext);
+ systemInstance.fireEvent(new StartApplicationContext(appInfo, appContext));
+
logger.info("createApplication.success", appInfo.path);
systemInstance.fireEvent(new AssemblerAfterApplicationCreated(appInfo, allDeployments));
@@ -1524,6 +1528,8 @@ public class Assembler extends Assembler
final AppContext appContext = containerSystem.getAppContext(appInfo.appId);
final ClassLoader classLoader = appContext.getClassLoader();
+ SystemInstance.get().fireEvent(new StopApplicationContext(appInfo, appContext));
+
if (null == appContext) {
logger.warning("Application id '" + appInfo.appId + "' not found in: " + Arrays.toString(containerSystem.getAppContextKeys()));
return;
Added: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java?rev=1580105&view=auto
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java (added)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java Sat Mar 22 00:49:44 2014
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+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 StartApplicationContext {
+
+ private final AppInfo applicationInfo;
+ private final AppContext applicationContext;
+
+ public StartApplicationContext(final AppInfo applicationInfo, final AppContext applicationContext) {
+ this.applicationInfo = applicationInfo;
+ this.applicationContext = applicationContext;
+ }
+
+ public AppInfo getApplicationInfo() {
+ return applicationInfo;
+ }
+
+ public AppContext getApplicationContext() {
+ return applicationContext;
+ }
+}
Propchange: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StartApplicationContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java?rev=1580105&view=auto
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java (added)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java Sat Mar 22 00:49:44 2014
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+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 StopApplicationContext {
+
+ private final AppInfo applicationInfo;
+ private final AppContext applicationContext;
+
+ public StopApplicationContext(final AppInfo applicationInfo, final AppContext applicationContext) {
+ this.applicationInfo = applicationInfo;
+ this.applicationContext = applicationContext;
+ }
+
+ public AppInfo getApplicationInfo() {
+ return applicationInfo;
+ }
+
+ public AppContext getApplicationContext() {
+ return applicationContext;
+ }
+}
Propchange: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/event/StopApplicationContext.java
------------------------------------------------------------------------------
svn:eol-style = native
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=1580105&r1=1580104&r2=1580105&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 00:49:44 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.AssemblerAfterApplicationCreated;
-import org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
+import org.apache.openejb.assembler.classic.event.StartApplicationContext;
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()) {
- afterApplicationCreated(new AssemblerAfterApplicationCreated(appInfo, SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(appInfo.appId).getBeanContexts()));
+ afterApplicationCreated(new StartApplicationContext(appInfo, SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(appInfo.appId)));
}
}
}
@@ -160,24 +160,24 @@ public class HessianService implements S
deploy(event.getApp(), event.getBeanContexts());
}
- public void afterApplicationCreated(final @Observes AssemblerAfterApplicationCreated event) {
- final AppInfo appInfo = event.getApp();
- deploy(appInfo, event.getDeployedEjbs());
+ public void afterApplicationCreated(final @Observes StartApplicationContext event) {
+ final AppInfo appInfo = event.getApplicationInfo();
+ deploy(appInfo, event.getApplicationContext().getBeanContexts());
}
- public void beforeApplicationDestroyed(@Observes final AssemblerBeforeApplicationDestroyed event) {
+ public void beforeApplicationDestroyed(@Observes final StopApplicationContext event) {
if (disabled) {
return;
}
- for (final BeanContext beanContext : SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(event.getApp().appId).getBeanContexts()) {
+ for (final BeanContext beanContext : event.getApplicationContext().getBeanContexts()) {
final Class<?> remoteItf = beanContext.getBusinessRemoteInterface();
if (remoteItf == null) {
continue;
}
final String name = String.class.cast(beanContext.getDeploymentID());
- registry.undeploy(virtualHost, appName(event.getApp(), beanContext), name);
+ registry.undeploy(virtualHost, appName(event.getApplicationInfo(), 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=1580105&r1=1580104&r2=1580105&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 00:49:44 2014
@@ -29,8 +29,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.AssemblerAfterApplicationCreated;
-import org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
+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;
@@ -534,11 +534,11 @@ public abstract class RESTService implem
return additionalProviders;
}
- public void afterApplicationCreated(@Observes final AssemblerAfterApplicationCreated event) {
+ public void afterApplicationCreated(@Observes final StartApplicationContext event) {
if (!enabled)
return;
- final AppInfo appInfo = event.getApp();
+ final AppInfo appInfo = event.getApplicationInfo();
if ("false".equalsIgnoreCase(appInfo.properties.getProperty("openejb.jaxrs.on", "true"))) {
return;
}
@@ -884,8 +884,8 @@ public abstract class RESTService implem
return cl;
}
- public void beforeApplicationDestroyed(@Observes final AssemblerBeforeApplicationDestroyed event) {
- final AppInfo app = event.getApp();
+ public void beforeApplicationDestroyed(@Observes final StopApplicationContext event) {
+ final AppInfo app = event.getApplicationInfo();
if (deployedApplications.contains(app)) {
for (final WebAppInfo webApp : app.webApps) {
final List<DeployedService> toRemove = new ArrayList<DeployedService>();
@@ -912,7 +912,7 @@ public abstract class RESTService implem
if (assembler != null) {
SystemInstance.get().addObserver(this);
for (final AppInfo appInfo : assembler.getDeployedApplications()) {
- afterApplicationCreated(new AssemblerAfterApplicationCreated(appInfo, null));
+ afterApplicationCreated(new StartApplicationContext(appInfo, null));
}
}
}
@@ -929,7 +929,7 @@ public abstract class RESTService implem
if (assembler != null) {
SystemInstance.get().removeObserver(this);
for (final AppInfo appInfo : new ArrayList<AppInfo>(deployedApplications)) {
- beforeApplicationDestroyed(new AssemblerBeforeApplicationDestroyed(appInfo));
+ beforeApplicationDestroyed(new StopApplicationContext(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=1580105&r1=1580104&r2=1580105&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 00:49:44 2014
@@ -30,9 +30,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;
@@ -185,7 +185,7 @@ public abstract class WsService implemen
if (assembler != null) {
SystemInstance.get().addObserver(this);
for (final AppInfo appInfo : assembler.getDeployedApplications()) {
- afterApplicationCreated(new AssemblerAfterApplicationCreated(appInfo, null));
+ afterApplicationCreated(new StartApplicationContext(appInfo, null));
}
}
}
@@ -195,7 +195,7 @@ public abstract class WsService implemen
if (assembler != null) {
SystemInstance.get().removeObserver(this);
for (final AppInfo appInfo : new ArrayList<AppInfo>(deployedApplications)) {
- beforeApplicationDestroyed(new AssemblerBeforeApplicationDestroyed(appInfo));
+ beforeApplicationDestroyed(new StopApplicationContext(appInfo, null));
}
assembler = null;
if (SystemInstance.get().getComponent(WsService.class) == this) {
@@ -219,10 +219,10 @@ public abstract class WsService implemen
deployApp(event.getApp(), event.getBeanContexts());
}
- public void afterApplicationCreated(final @Observes AssemblerAfterApplicationCreated event) {
- final AppInfo appInfo = event.getApp();
+ public void afterApplicationCreated(final @Observes StartApplicationContext event) {
+ final AppInfo appInfo = event.getApplicationInfo();
if (deployedApplications.add(appInfo)) {
- deployApp(appInfo, event.getDeployedEjbs());
+ deployApp(appInfo, event.getApplicationContext().getBeanContexts());
}
}
@@ -424,8 +424,8 @@ public abstract class WsService implemen
}
}
- public void beforeApplicationDestroyed(@Observes final AssemblerBeforeApplicationDestroyed event) {
- final AppInfo appInfo = event.getApp();
+ public void beforeApplicationDestroyed(@Observes final StopApplicationContext event) {
+ final AppInfo appInfo = event.getApplicationInfo();
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=1580105&r1=1580104&r2=1580105&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 00:49:44 2014
@@ -19,8 +19,8 @@ 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.AssemblerAfterApplicationCreated;
-import org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
+import org.apache.openejb.assembler.classic.event.StartApplicationContext;
+import org.apache.openejb.assembler.classic.event.StopApplicationContext;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.observer.Observes;
@@ -36,21 +36,21 @@ public class ClusterObserver {
this.clusters = clusters;
}
- public void deploy(@Observes final AssemblerAfterApplicationCreated app) {
+ public void deploy(@Observes final StartApplicationContext app) {
if (!ClUSTER_DEPLOYMENT) {
return;
}
- final AppInfo appInfo = app.getApp();
+ final AppInfo appInfo = app.getApplicationInfo();
send(new DeployMessage(appInfo.path), appInfo);
}
- public void undeploy(@Observes final AssemblerBeforeApplicationDestroyed app) {
+ public void undeploy(@Observes final StopApplicationContext app) {
if (!ClUSTER_DEPLOYMENT) {
return;
}
- final AppInfo appInfo = app.getApp();
+ final AppInfo appInfo = app.getApplicationInfo();
send(new UndeployMessage(appInfo.path), appInfo);
}