Author: jlmonteiro
Date: Wed Oct  2 19:16:58 2013
New Revision: 1528600

URL: http://svn.apache.org/r1528600
Log:
OPENEJB-2039 Implement POJO Web Services in embedded mode

Modified:
    
tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java

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=1528600&r1=1528599&r2=1528600&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
 Wed Oct  2 19:16:58 2013
@@ -24,7 +24,6 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
 import org.apache.openejb.assembler.classic.IdPropertiesInfo;
-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.SingletonBeanInfo;
@@ -303,7 +302,7 @@ public abstract class WsService implemen
                             if (context == null && !OLD_WEBSERVICE_DEPLOYMENT) 
{
                                 context = ejbJar.moduleName;
                             }
-                            final List<String> addresses = 
wsRegistry.addWsContainer(context, location, container, virtualHost, realm, 
transport, auth, classLoader);
+                            final List<String> addresses = 
wsRegistry.addWsContainer(container, classLoader, context, location, 
virtualHost, realm, transport, auth);
 
                             // one of the registered addresses to be the 
canonical address
                             final String address = 
HttpUtil.selectSingleAddress(addresses);
@@ -324,7 +323,7 @@ public abstract class WsService implemen
                 }
             }
         }
-        if (ejbs == null) {
+        if (ejbs == null || appInfo.webAppAlone) {
             for (final WebAppInfo webApp : appInfo.webApps) {
                 afterApplicationCreated(appInfo, webApp);
             }
@@ -384,12 +383,22 @@ public abstract class WsService implemen
                 pojoConfiguration = PojoUtil.findPojoConfig(pojoConfiguration, 
appInfo, webApp);
 
                 final HttpListener container = 
createPojoWsContainer(classLoader, moduleBaseUrl, port, portInfo.serviceLink,
-                                                                     target, 
context, webApp.contextRoot, bindings,
-                                                                     new 
ServiceConfiguration(PojoUtil.findConfiguration(pojoConfiguration, 
target.getName()), appInfo.services));
+                        target, context, webApp.contextRoot, bindings,
+                        new 
ServiceConfiguration(PojoUtil.findConfiguration(pojoConfiguration, 
target.getName()), appInfo.services));
 
                 if (wsRegistry != null) {
+                    String auth = authMethod;
+                    String realm = realmName;
+                    String transport = transportGuarantee;
+
+                    if ("BASIC".equals(portInfo.authMethod) || 
"DIGEST".equals(portInfo.authMethod) || 
"CLIENT-CERT".equals(portInfo.authMethod)) {
+                        auth = portInfo.authMethod;
+                        realm = portInfo.realmName;
+                        transport = portInfo.transportGuarantee;
+                    }
+
                     // give servlet a reference to the webservice container
-                    final List<String> addresses = 
wsRegistry.setWsContainer(virtualHost, webApp.contextRoot, servlet.servletName, 
container);
+                    final List<String> addresses = 
wsRegistry.setWsContainer(container, classLoader, webApp.contextRoot, 
virtualHost, servlet, realm, transport, auth);
 
                     // one of the registered addresses to be the connonical 
address
                     final String address = 
HttpUtil.selectSingleAddress(addresses);
@@ -409,8 +418,8 @@ public abstract class WsService implemen
     }
 
     public void beforeApplicationDestroyed(
-                                                  @Observes
-                                                  final 
AssemblerBeforeApplicationDestroyed event) {
+            @Observes
+            final AssemblerBeforeApplicationDestroyed event) {
         final AppInfo appInfo = event.getApp();
         if (deployedApplications.remove(appInfo)) {
             for (final EjbJarInfo ejbJar : appInfo.ejbJars) {
@@ -483,7 +492,7 @@ public abstract class WsService implemen
                     // clear servlet's reference to the webservice container
                     if (this.wsRegistry != null) {
                         try {
-                            this.wsRegistry.clearWsContainer(virtualHost, 
webApp.contextRoot, servlet.servletName);
+                            
this.wsRegistry.clearWsContainer(webApp.contextRoot, virtualHost, servlet);
                         } catch (IllegalArgumentException ignored) {
                             // no-op
                         }


Reply via email to