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/02/16 13:55:53 UTC
svn commit: r1244965 - in /openejb/trunk/openejb:
container/openejb-core/src/main/java/org/apache/openejb/config/
server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/
tomee/tomee-webservices/src/main/java/org/apache/tomee/web...
Author: rmannibucau
Date: Thu Feb 16 12:55:53 2012
New Revision: 1244965
URL: http://svn.apache.org/viewvc?rev=1244965&view=rev
Log:
OPENEJB-1775 managing web-service-address of openejb-jar.xml
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java?rev=1244965&r1=1244964&r2=1244965&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java Thu Feb 16 12:55:53 2012
@@ -16,15 +16,13 @@
*/
package org.apache.openejb.config;
-import java.io.ByteArrayInputStream;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.Set;
-import java.util.TreeSet;
-import javax.xml.bind.JAXBElement;
-
+import org.apache.openejb.jee.ActivationConfig;
+import org.apache.openejb.jee.ActivationConfigProperty;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.EjbRef;
+import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.openejb.jee.MessageDrivenBean;
+import org.apache.openejb.jee.jpa.AttributeOverride;
import org.apache.openejb.jee.jpa.Attributes;
import org.apache.openejb.jee.jpa.Basic;
import org.apache.openejb.jee.jpa.Column;
@@ -41,35 +39,37 @@ import org.apache.openejb.jee.jpa.OneToM
import org.apache.openejb.jee.jpa.OneToOne;
import org.apache.openejb.jee.jpa.RelationField;
import org.apache.openejb.jee.jpa.Table;
-import org.apache.openejb.jee.jpa.AttributeOverride;
+import org.apache.openejb.jee.oejb2.ActivationConfigPropertyType;
+import org.apache.openejb.jee.oejb2.ActivationConfigType;
+import org.apache.openejb.jee.oejb2.EjbLocalRefType;
+import org.apache.openejb.jee.oejb2.EjbRefType;
import org.apache.openejb.jee.oejb2.EjbRelationType;
import org.apache.openejb.jee.oejb2.EjbRelationshipRoleType;
import org.apache.openejb.jee.oejb2.EntityBeanType;
+import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
import org.apache.openejb.jee.oejb2.JaxbOpenejbJar2;
-import org.apache.openejb.jee.oejb2.OpenejbJarType;
-import org.apache.openejb.jee.oejb2.QueryType;
+import org.apache.openejb.jee.oejb2.Jndi;
import org.apache.openejb.jee.oejb2.MessageDrivenBeanType;
-import org.apache.openejb.jee.oejb2.ActivationConfigType;
-import org.apache.openejb.jee.oejb2.ActivationConfigPropertyType;
-import org.apache.openejb.jee.oejb2.EjbRefType;
+import org.apache.openejb.jee.oejb2.OpenejbJarType;
import org.apache.openejb.jee.oejb2.PatternType;
-import org.apache.openejb.jee.oejb2.EjbLocalRefType;
-import org.apache.openejb.jee.oejb2.Jndi;
-import org.apache.openejb.jee.oejb2.SessionBeanType;
-import org.apache.openejb.jee.oejb2.WebServiceSecurityType;
-import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
+import org.apache.openejb.jee.oejb2.QueryType;
import org.apache.openejb.jee.oejb2.RpcBean;
+import org.apache.openejb.jee.oejb2.SessionBeanType;
import org.apache.openejb.jee.oejb2.TssLinkType;
import org.apache.openejb.jee.oejb2.WebServiceBindingType;
-import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.jee.oejb2.WebServiceSecurityType;
import org.apache.openejb.jee.oejb3.EjbDeployment;
import org.apache.openejb.jee.oejb3.EjbLink;
-import org.apache.openejb.jee.EjbJar;
-import org.apache.openejb.jee.MessageDrivenBean;
-import org.apache.openejb.jee.EnterpriseBean;
-import org.apache.openejb.jee.ActivationConfigProperty;
-import org.apache.openejb.jee.ActivationConfig;
-import org.apache.openejb.jee.EjbRef;
+import org.apache.openejb.jee.oejb3.OpenejbJar;
+
+import javax.xml.bind.JAXBElement;
+import java.io.ByteArrayInputStream;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
public class OpenEjb2Conversion implements DynamicDeployer {
public AppModule deploy(AppModule appModule) {
@@ -159,7 +159,10 @@ public class OpenEjb2Conversion implemen
deployment.getProperties().putAll(webServiceSecurityType.getProperties());
}
-
+
+ if (sessionBean.getWebServiceAddress() != null) {
+ deployment.getProperties().put("openejb.webservice.deployment.address", sessionBean.getWebServiceAddress());
+ }
}
deployment.getProperties().putAll(enterpriseBean.getProperties());
Modified: openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1244965&r1=1244964&r2=1244965&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java (original)
+++ openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java Thu Feb 16 12:55:53 2012
@@ -18,57 +18,57 @@
package org.apache.openejb.server.webservices;
import org.apache.openejb.BeanContext;
-import org.apache.openejb.jee.WebApp;
-import org.apache.openejb.server.ServerService;
-import org.apache.openejb.server.SelfManaging;
-import org.apache.openejb.server.ServiceException;
-import org.apache.openejb.server.httpd.HttpListener;
-import org.apache.openejb.server.httpd.HttpListenerRegistry;
-import org.apache.openejb.assembler.classic.DeploymentListener;
-import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.Injection;
import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.DeploymentListener;
import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.PortInfo;
import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
-import org.apache.openejb.assembler.classic.StatelessBeanInfo;
-import org.apache.openejb.assembler.classic.WsBuilder;
-import org.apache.openejb.assembler.classic.WebAppInfo;
+import org.apache.openejb.assembler.classic.PortInfo;
import org.apache.openejb.assembler.classic.ServletInfo;
import org.apache.openejb.assembler.classic.SingletonBeanInfo;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.core.webservices.PortAddressRegistryImpl;
-import org.apache.openejb.core.webservices.PortAddressRegistry;
-import org.apache.openejb.core.webservices.PortData;
+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.core.CoreContainerSystem;
import org.apache.openejb.core.WebContext;
+import org.apache.openejb.core.webservices.PortAddressRegistry;
+import org.apache.openejb.core.webservices.PortAddressRegistryImpl;
+import org.apache.openejb.core.webservices.PortData;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.server.SelfManaging;
+import org.apache.openejb.server.ServerService;
+import org.apache.openejb.server.ServiceException;
+import org.apache.openejb.server.httpd.HttpListener;
+import org.apache.openejb.server.httpd.HttpListenerRegistry;
import org.apache.openejb.server.httpd.util.HttpUtil;
import org.apache.openejb.spi.ContainerSystem;
-import org.apache.openejb.Injection;
-import org.apache.openejb.util.Logger;
import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
import org.apache.openejb.util.StringTemplate;
import javax.naming.Context;
-import java.util.Properties;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.TreeMap;
-import java.util.List;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashSet;
+import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.IOException;
-import java.io.File;
+import java.net.MalformedURLException;
import java.net.Socket;
import java.net.URL;
-import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
public abstract class WsService implements ServerService, SelfManaging, DeploymentListener {
public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_WS, WsService.class);
public static final String WS_ADDRESS_FORMAT = "openejb.wsAddress.format";
+ public static final String WS_FORCE_ADDRESS = "openejb.webservice.deployment.address";
private StringTemplate wsAddressTemplate;
private PortAddressRegistry portAddressRegistry;
@@ -400,6 +400,9 @@ public abstract class WsService implemen
}
private String autoAssignWsLocation(EnterpriseBeanInfo bean, PortData port, Map<String, String> contextData, StringTemplate template) {
+ if (bean.properties.containsKey(WS_FORCE_ADDRESS)) {
+ return bean.properties.getProperty(WS_FORCE_ADDRESS);
+ }
contextData.put("ejbDeploymentId", bean.ejbDeploymentId);
contextData.put("ejbType", getEjbType(bean.type));
contextData.put("ejbClass", bean.ejbClass);
Modified: openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java?rev=1244965&r1=1244964&r2=1244965&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomcatWsRegistry.java Thu Feb 16 12:55:53 2012
@@ -168,7 +168,12 @@ public class TomcatWsRegistry implements
root = '/' + root;
}
Context webAppContext = (Context) host.findChild(root);
- if (WEBSERVICE_SUB_CONTEXT.startsWith("/")) {
+ // sub context = '/' means the service address is provided by webservices
+ if (WEBSERVICE_SUB_CONTEXT.equals("/") && path.startsWith("/")) {
+ addServlet(host, webAppContext, path, httpListener, path, addresses);
+ } else if (WEBSERVICE_SUB_CONTEXT.equals("/") && !path.startsWith("/")) {
+ addServlet(host, webAppContext, '/' + path, httpListener, path, addresses);
+ } else if (WEBSERVICE_SUB_CONTEXT.startsWith("/")) {
addServlet(host, webAppContext, WEBSERVICE_SUB_CONTEXT + path, httpListener, path, addresses);
} else {
addServlet(host, webAppContext, '/' + WEBSERVICE_SUB_CONTEXT + path, httpListener, path, addresses);
@@ -281,8 +286,12 @@ public class TomcatWsRegistry implements
} else if (contextPath == null) {
contextPath = "/";
}
+
fullContextpath = new StringBuilder(contextPath)
- .append(WEBSERVICE_SUB_CONTEXT).append(path);
+ if (!WEBSERVICE_SUB_CONTEXT.equals("/")) {
+ fullContextpath.append(WEBSERVICE_SUB_CONTEXT);
+ }
+ fullContextpath.append(path);
} else {
fullContextpath = new StringBuilder(path);
}