You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2013/10/02 21:14:55 UTC
svn commit: r1528598 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java
Author: jlmonteiro
Date: Wed Oct 2 19:14:55 2013
New Revision: 1528598
URL: http://svn.apache.org/r1528598
Log:
OPENEJB-2039 Implement POJO Web Services in embedded mode
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java?rev=1528598&r1=1528597&r2=1528598&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java Wed Oct 2 19:14:55 2013
@@ -28,6 +28,7 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.JndiEncBuilder;
import org.apache.openejb.assembler.classic.ListenerInfo;
import org.apache.openejb.assembler.classic.ParamValueInfo;
+import org.apache.openejb.assembler.classic.PortInfo;
import org.apache.openejb.assembler.classic.ServletInfo;
import org.apache.openejb.assembler.classic.WebAppBuilder;
import org.apache.openejb.assembler.classic.WebAppInfo;
@@ -69,6 +70,7 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import java.util.TreeMap;
public class LightweightWebAppBuilder implements WebAppBuilder {
private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, LightweightWebAppBuilder.class);
@@ -184,7 +186,7 @@ public class LightweightWebAppBuilder im
}
final FilterConfig config = new SimpleFilterConfig(sce.getServletContext(), info.name, initParams);
- for (String mapping: annotation.urlPatterns()) {
+ for (String mapping : annotation.urlPatterns()) {
try {
addFilterMethod.invoke(null, clazz.getName(), webContext, mapping, config);
deployedWebObjects.filterMappings.add(mapping);
@@ -196,6 +198,11 @@ public class LightweightWebAppBuilder im
}
}
+ final Map<String, PortInfo> ports = new TreeMap<String, PortInfo>();
+ for (final PortInfo port : webAppInfo.portInfos) {
+ ports.put(port.serviceLink, port);
+ }
+
// register servlets
for (ServletInfo info : webAppInfo.servlets) {
if ("true".equalsIgnoreCase(appInfo.properties.getProperty("openejb.jaxrs.on", "true"))) {
@@ -220,7 +227,12 @@ public class LightweightWebAppBuilder im
// no-op
}
}
- } // else let the user manage itself a rest servlet etc...
+ }
+
+ // If POJO web services, it will be overriden with WsServlet
+ if (ports.containsKey(info.servletName) || ports.containsKey(info.servletClass)) {
+ continue;
+ }
// deploy
for (String mapping : info.mappings) {
@@ -232,13 +244,14 @@ public class LightweightWebAppBuilder im
}
}
}
+
for (ClassListInfo info : webAppInfo.webAnnotatedClasses) {
final String url = info.name;
for (String servletPath : info.list) {
final Class<?> clazz = loadFromUrls(webContext.getClassLoader(), url, servletPath);
final WebServlet annotation = clazz.getAnnotation(WebServlet.class);
if (annotation != null) {
- for (String mapping: annotation.urlPatterns()) {
+ for (String mapping : annotation.urlPatterns()) {
try {
addServletMethod.invoke(null, clazz.getName(), webContext, mapping);
deployedWebObjects.mappings.add(mapping);