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/07/11 16:28:12 UTC
svn commit: r1145190 [2/2] - in /openejb/trunk/openejb3: ./
container/openejb-core/src/main/java/org/apache/openejb/util/
container/openejb-core/src/main/resources/ server/ server/openejb-cxf-rs/
server/openejb-cxf-rs/src/ server/openejb-cxf-rs/src/mai...
Modified: openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/OpenEJBHttpWsRegistry.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/OpenEJBHttpWsRegistry.java?rev=1145190&r1=1145189&r2=1145190&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/OpenEJBHttpWsRegistry.java (original)
+++ openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/OpenEJBHttpWsRegistry.java Mon Jul 11 14:28:10 2011
@@ -17,51 +17,13 @@
*/
package org.apache.openejb.server.webservices;
-import java.net.InetAddress;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
-import org.apache.openejb.assembler.classic.ServiceInfo;
-import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.server.httpd.BasicAuthHttpListenerWrapper;
import org.apache.openejb.server.httpd.HttpListener;
-import org.apache.openejb.server.httpd.HttpListenerRegistry;
-import org.apache.openejb.server.httpd.HttpRequest;
-import org.apache.openejb.server.httpd.HttpResponse;
-import org.apache.openejb.server.httpd.HttpServerFactory;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.Logger;
-
-public class OpenEJBHttpWsRegistry implements WsRegistry {
- public static final Logger log = Logger.getInstance(LogCategory.OPENEJB_WS, WsService.class);
- private final HttpListenerRegistry registry;
- private final List<URI> baseUris = new ArrayList<URI>();
-
- public OpenEJBHttpWsRegistry() {
- try {
- OpenEjbConfiguration configuration = SystemInstance.get().getComponent(OpenEjbConfiguration.class);
- for (ServiceInfo service : configuration.facilities.services) {
- if (service.className.equals(HttpServerFactory.class.getName())) {
- int port = Integer.parseInt(service.properties.getProperty("port"));
- String ip = service.properties.getProperty("bind");
- if ("0.0.0.0".equals(ip)) {
- InetAddress[] addresses = InetAddress.getAllByName(ip);
- for (InetAddress address : addresses) {
- baseUris.add(new URI("http", null, address.getHostAddress(), port, null, null, null));
- }
- } else {
- baseUris.add(new URI("http", null, ip, port, null, null, null));
- }
- break;
- }
- }
- } catch (Exception e) {
- log.error("Web Services disabled: Unable to build base URIs for Web Service registry", e);
- }
- registry = SystemInstance.get().getComponent(HttpListenerRegistry.class);
- }
+import org.apache.openejb.server.httpd.OpenEJBHttpRegistry;
+import java.util.List;
+
+public class OpenEJBHttpWsRegistry extends OpenEJBHttpRegistry implements WsRegistry {
public List<String> setWsContainer(String virtualHost, String contextRoot, String servletName, HttpListener wsContainer) throws Exception {
throw new UnsupportedOperationException("OpenEJB http server does not support POJO webservices");
}
@@ -82,42 +44,13 @@ public class OpenEJBHttpWsRegistry imple
httpListener = new BasicAuthHttpListenerWrapper(httpListener, realmName);
}
- // assure context root with a leading slash
- if (!path.startsWith("/")) path = "/" + path;
-
- httpListener = new ClassLoaderHttpListener(httpListener, classLoader);
- registry.addHttpListener(httpListener, path);
+ addWrappedHttpListener(httpListener, classLoader, path);
// register wsdl locations for service-ref resolution
- List<String> addresses = new ArrayList<String>();
- for (URI baseUri : baseUris) {
- URI address = baseUri.resolve(path);
- addresses.add(address.toString());
- }
- return addresses;
+ return getResolvedAddresses(path);
}
public void removeWsContainer(String path) {
registry.removeHttpListener(path);
}
-
- private static class ClassLoaderHttpListener implements HttpListener {
- private final HttpListener delegate;
- private final ClassLoader classLoader;
-
- private ClassLoaderHttpListener(HttpListener delegate, ClassLoader classLoader) {
- this.delegate = delegate;
- this.classLoader = classLoader;
- }
-
- public void onMessage(HttpRequest request, HttpResponse response) throws Exception {
- ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(classLoader);
- try {
- delegate.onMessage(request, response);
- } finally {
- Thread.currentThread().setContextClassLoader(oldCl);
- }
- }
- }
}
Modified: openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1145190&r1=1145189&r2=1145190&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java (original)
+++ openejb/trunk/openejb3/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java Mon Jul 11 14:28:10 2011
@@ -40,6 +40,7 @@ import org.apache.openejb.core.webservic
import org.apache.openejb.core.webservices.PortData;
import org.apache.openejb.core.CoreContainerSystem;
import org.apache.openejb.core.WebContext;
+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;
@@ -255,7 +256,7 @@ public abstract class WsService implemen
List<String> addresses = wsRegistry.addWsContainer(location, container, virtualHost, realm, transport, auth, classLoader);
// one of the registered addresses to be the connonical address
- String address = selectSingleAddress(addresses);
+ String address = HttpUtil.selectSingleAddress(addresses);
if (address != null) {
// register wsdl location
@@ -314,7 +315,7 @@ public abstract class WsService implemen
List<String> addresses = wsRegistry.setWsContainer(virtualHost, webApp.contextRoot, servlet.servletName, container);
// one of the registered addresses to be the connonical address
- String address = selectSingleAddress(addresses);
+ String address = HttpUtil.selectSingleAddress(addresses);
// add address to global registry
portAddressRegistry.addPort(portInfo.serviceId, portInfo.wsdlService, portInfo.portId, portInfo.wsdlPort, portInfo.seiInterfaceName, address);
@@ -388,26 +389,6 @@ public abstract class WsService implemen
}
}
- private String selectSingleAddress(List<String> addresses) {
- if (addresses == null || addresses.isEmpty()) return null;
-
- // return the first http address
- for (String address : addresses) {
- if (address.startsWith("http:")) {
- return address;
- }
- }
- // return the first https address
- for (String address : addresses) {
- if (address.startsWith("https:")) {
- return address;
- }
- }
- // just return the first address
- String address = addresses.iterator().next();
- return address;
- }
-
private String autoAssignWsLocation(EnterpriseBeanInfo bean, PortData port, Map<String, String> contextData, StringTemplate template) {
contextData.put("ejbDeploymentId", bean.ejbDeploymentId);
contextData.put("ejbType", getEjbType(bean.type));
Modified: openejb/trunk/openejb3/server/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/pom.xml?rev=1145190&r1=1145189&r2=1145190&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/pom.xml (original)
+++ openejb/trunk/openejb3/server/pom.xml Mon Jul 11 14:28:10 2011
@@ -44,6 +44,9 @@
<module>openejb-cxf</module>
<module>openejb-multicast</module>
<module>openejb-daemon</module>
+ <module>openejb-cxf-rs</module>
+ <module>openejb-cxf-transport</module>
+ <module>openejb-rest</module>
</modules>
</project>