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 2011/10/11 16:32:57 UTC
svn commit: r1181810 - in /openejb/trunk/openejb:
assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/
assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/
server/openejb-rest/src/main/java/org/apache/openejb/s...
Author: rmannibucau
Date: Tue Oct 11 14:32:57 2011
New Revision: 1181810
URL: http://svn.apache.org/viewvc?rev=1181810&view=rev
Log:
OPENEJB-1699 OPENEJB-1700 adding AppInfo to WebDeploymentListener since ejb can be needed in afterApplicationCreated() and are not stored in webappnfo
Modified:
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListener.java
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListeners.java
openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java
openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Modified: openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1181810&r1=1181809&r2=1181810&view=diff
==============================================================================
--- openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Tue Oct 11 14:32:57 2011
@@ -597,7 +597,7 @@ public class TomcatWebAppBuilder impleme
WebDeploymentListeners listeners = SystemInstance.get().getComponent(WebDeploymentListeners.class);
if (listeners != null) {
for (WebAppInfo webApp : contextInfo.appInfo.webApps) {
- listeners.afterApplicationCreated(webApp);
+ listeners.afterApplicationCreated(contextInfo.appInfo, webApp);
}
}
Modified: openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListener.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListener.java?rev=1181810&r1=1181809&r2=1181810&view=diff
==============================================================================
--- openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListener.java (original)
+++ openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListener.java Tue Oct 11 14:32:57 2011
@@ -16,6 +16,7 @@
*/
package org.apache.tomee.catalina;
+import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.WebAppInfo;
/**
@@ -23,6 +24,6 @@ import org.apache.openejb.assembler.clas
*/
public interface WebDeploymentListener {
- public void afterApplicationCreated(final WebAppInfo webApp);
+ public void afterApplicationCreated(final AppInfo appInfo,final WebAppInfo webApp);
}
Modified: openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListeners.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListeners.java?rev=1181810&r1=1181809&r2=1181810&view=diff
==============================================================================
--- openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListeners.java (original)
+++ openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/WebDeploymentListeners.java Tue Oct 11 14:32:57 2011
@@ -16,6 +16,7 @@
*/
package org.apache.tomee.catalina;
+import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.WebAppInfo;
import java.util.ArrayList;
@@ -32,9 +33,9 @@ public class WebDeploymentListeners impl
}
@Override
- public void afterApplicationCreated(WebAppInfo webApp) {
+ public void afterApplicationCreated(AppInfo appInfo, WebAppInfo webApp) {
for (WebDeploymentListener listener : listeners) {
- listener.afterApplicationCreated(webApp);
+ listener.afterApplicationCreated(appInfo, webApp);
}
}
Modified: openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java?rev=1181810&r1=1181809&r2=1181810&view=diff
==============================================================================
--- openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java (original)
+++ openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxRsService.java Tue Oct 11 14:32:57 2011
@@ -16,6 +16,7 @@
*/
package org.apache.tomee.webservices;
+import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.WebAppInfo;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.server.rest.RESTService;
@@ -45,13 +46,13 @@ public class TomeeJaxRsService implement
}
@Override
- public void afterApplicationCreated(WebAppInfo webApp) {
+ public void afterApplicationCreated(AppInfo appInfo, WebAppInfo webApp) {
// required for Pojo Web Services because when Assembler creates the application
// the CoreContainerSystem does not contain the WebContext
// see also the start method getContainerSystem().addWebDeployment(webContext);
RESTService component = SystemInstance.get().getComponent(RESTService.class);
if (component == null) return;
- component.afterApplicationCreated(webApp);
+ component.afterApplicationCreated(appInfo, webApp);
}
}
Modified: openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java?rev=1181810&r1=1181809&r2=1181810&view=diff
==============================================================================
--- openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java (original)
+++ openejb/trunk/openejb/assembly/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java Tue Oct 11 14:32:57 2011
@@ -16,6 +16,7 @@
*/
package org.apache.tomee.webservices;
+import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.WebAppInfo;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.server.webservices.WsRegistry;
@@ -46,7 +47,7 @@ public class TomeeJaxWsService implement
}
@Override
- public void afterApplicationCreated(WebAppInfo webApp) {
+ public void afterApplicationCreated(AppInfo appInfo, WebAppInfo webApp) {
// required for Pojo Web Services because when Assembler creates the application
// the CoreContainerSystem does not contain the WebContext
// see also the start method getContainerSystem().addWebDeployment(webContext);
Modified: openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1181810&r1=1181809&r2=1181810&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original)
+++ openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Tue Oct 11 14:32:57 2011
@@ -74,7 +74,9 @@ public abstract class RESTService implem
private List<String> services = new ArrayList<String>();
private String virtualHost;
- public void afterApplicationCreated(final WebAppInfo webApp, Map<String, EJBRestServiceInfo> restEjbs) {
+ public void afterApplicationCreated(final AppInfo appInfo, final WebAppInfo webApp) {
+ final Map<String, EJBRestServiceInfo> restEjbs = getRestEjbs(appInfo);
+
final WebContext webContext = containerSystem.getWebContext(webApp.moduleId);
if (webContext == null) {
return;
@@ -168,65 +170,58 @@ public abstract class RESTService implem
LOGGER.info("REST application deployed: " + app);
}
}
- }
-
- private static class EJBRestServiceInfo {
- public String path;
- public BeanContext context;
-
- public EJBRestServiceInfo(String path, BeanContext context) {
- if (context == null) {
- throw new OpenEJBRestRuntimeException("can't find context");
- }
- this.path = path;
- this.context = context;
- }
+ restEjbs.clear();
}
@Override public void afterApplicationCreated(final AppInfo appInfo) {
if (deployedApplications.add(appInfo)) {
- Map<String, BeanContext> beanContexts = new HashMap<String, BeanContext>();
- for (EjbJarInfo ejbJar : appInfo.ejbJars) {
- for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) {
- if (bean.restService) {
- BeanContext beanContext = containerSystem.getBeanContext(bean.ejbDeploymentId);
- if (beanContext == null) {
- continue;
- }
-
- beanContexts.put(bean.ejbClass, beanContext);
- }
+ if (appInfo.standaloneModule) {
+ Map<String, EJBRestServiceInfo> restEjbs = getRestEjbs(appInfo);
+ for (Map.Entry<String, EJBRestServiceInfo> ejb : restEjbs.entrySet()) {
+ deployEJB(ejb.getValue().path, ejb.getValue().context);
}
- }
-
- Map<String, EJBRestServiceInfo> restEjbs = new HashMap<String, EJBRestServiceInfo>();
- for (WebAppInfo webApp : appInfo.webApps) {
- for (String ejb : webApp.ejbRestServices) {
- restEjbs.put(ejb, new EJBRestServiceInfo(webApp.contextRoot, beanContexts.get(ejb)));
+ restEjbs.clear();
+ } else {
+ for (final WebAppInfo webApp : appInfo.webApps) {
+ afterApplicationCreated(appInfo, webApp);
}
}
- for (Map.Entry<String, BeanContext> ejbs : beanContexts.entrySet()) {
- final String clazz = ejbs.getKey();
- if (!restEjbs.containsKey(clazz)) {
- // null is important, it means there is no webroot path in standalone
- restEjbs.put(clazz, new EJBRestServiceInfo(null, beanContexts.get(clazz)));
+ }
+ }
+
+ protected Map<String,EJBRestServiceInfo> getRestEjbs(AppInfo appInfo) {
+ Map<String, BeanContext> beanContexts = new HashMap<String, BeanContext>();
+ for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+ for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) {
+ if (bean.restService) {
+ BeanContext beanContext = containerSystem.getBeanContext(bean.ejbDeploymentId);
+ if (beanContext == null) {
+ continue;
+ }
+
+ beanContexts.put(bean.ejbClass, beanContext);
}
}
- beanContexts.clear();
+ }
- for (final WebAppInfo webApp : appInfo.webApps) {
- afterApplicationCreated(webApp, restEjbs);
+ Map<String, EJBRestServiceInfo> restEjbs = new HashMap<String, EJBRestServiceInfo>();
+ for (WebAppInfo webApp : appInfo.webApps) {
+ for (String ejb : webApp.ejbRestServices) {
+ restEjbs.put(ejb, new EJBRestServiceInfo(webApp.contextRoot, beanContexts.get(ejb)));
}
-
- if (appInfo.standaloneModule) { // other it is already managed
- for (Map.Entry<String, EJBRestServiceInfo> ejb : restEjbs.entrySet()) {
- deployEJB(ejb.getValue().path, ejb.getValue().context);
- }
+ }
+ for (Map.Entry<String, BeanContext> ejbs : beanContexts.entrySet()) {
+ final String clazz = ejbs.getKey();
+ if (!restEjbs.containsKey(clazz)) {
+ // null is important, it means there is no webroot path in standalone
+ restEjbs.put(clazz, new EJBRestServiceInfo(null, beanContexts.get(clazz)));
}
- restEjbs.clear();
}
- }
+ beanContexts.clear();
+
+ return restEjbs;
+ }
private void deploySingleton(String contextRoot, Object o, Application appInstance, ClassLoader classLoader) {
final String nopath = getAddress(contextRoot, o.getClass()) + "/.*";
@@ -378,4 +373,18 @@ public abstract class RESTService implem
public void setVirtualHost(String virtualHost) {
this.virtualHost = virtualHost;
}
+
+ public static class EJBRestServiceInfo {
+ public String path;
+ public BeanContext context;
+
+ public EJBRestServiceInfo(String path, BeanContext context) {
+ if (context == null) {
+ throw new OpenEJBRestRuntimeException("can't find context");
+ }
+
+ this.path = path;
+ this.context = context;
+ }
+ }
}