You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2009/07/07 07:07:08 UTC

svn commit: r791703 - in /geronimo/server/trunk/plugins: axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/ axis/geronimo-axis/src/main/java/org/apache/geronimo/axis/server/ axis2/geronimo-axis2-ejb/src/main/java/org/apache/gero...

Author: gawor
Date: Tue Jul  7 05:07:08 2009
New Revision: 791703

URL: http://svn.apache.org/viewvc?rev=791703&view=rev
Log:
prefer openejb-jar.xml instead of geronimo-openejb.xml descriptor in ejb ws deployer and pass additional properties object to SoapHandlers

Modified:
    geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java
    geronimo/server/trunk/plugins/axis/geronimo-axis/src/main/java/org/apache/geronimo/axis/server/EjbWebServiceGBean.java
    geronimo/server/trunk/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBWebServiceGBean.java
    geronimo/server/trunk/plugins/cxf/geronimo-cxf-ejb/src/main/java/org/apache/geronimo/cxf/ejb/EJBWebServiceGBean.java
    geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSEJBModuleBuilderExtension.java
    geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java
    geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ContainerTest.java
    geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java
    geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/ContainerTest.java
    geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatContainer.java
    geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/ContainerTest.java
    geronimo/server/trunk/plugins/webservices/geronimo-webservices/src/main/java/org/apache/geronimo/webservices/SoapHandler.java

Modified: geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java (original)
+++ geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java Tue Jul  7 05:07:08 2009
@@ -22,6 +22,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Collections;
+import java.util.Properties;
 import java.util.jar.JarFile;
 
 import org.apache.geronimo.axis.server.EjbWebServiceGBean;
@@ -46,9 +47,12 @@
 import org.apache.geronimo.openejb.deployment.EjbModule;
 import org.apache.geronimo.security.jaas.ConfigurationFactory;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.jee.oejb2.EnterpriseBean;
 import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
+import org.apache.openejb.jee.oejb2.OpenejbJarType;
+import org.apache.openejb.jee.oejb2.SessionBeanType;
 import org.apache.openejb.jee.oejb2.WebServiceBindingType;
-import org.apache.openejb.jee.oejb2.WebServiceBindingType.WebServiceSecurityType;
+import org.apache.openejb.jee.oejb2.WebServiceSecurityType;
 
 /**
  * @version $Rev$ $Date$
@@ -79,21 +83,18 @@
         EjbModule ejbModule = (EjbModule) module;
         
         //overridden web service locations
-        Map correctedPortLocations = new HashMap();         
-        GeronimoEjbJarType geronimoEjbJarType = 
-            (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
-        if (geronimoEjbJarType != null) {
-           for (WebServiceBindingType bt : geronimoEjbJarType.getWebServiceBinding()) {
-               String location = bt.getWebServiceAddress();
-               if (location != null) {
-                   location = location.trim();
-                   if (!location.startsWith("/")) {
-                       location = "/" + location;
-                   }
-                   correctedPortLocations.put(bt.getEjbName(), location);
-               }
-           }
-        }
+        Map correctedPortLocations = new HashMap();     
+        Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
+        for (Map.Entry<String, WebServiceBinding> entry : wsBindingMap.entrySet()) {
+            String location = entry.getValue().getWebServiceAddress();
+            if (location != null) {
+                location = location.trim();
+                if (!location.startsWith("/")) {
+                    location = "/" + location;
+                }
+                correctedPortLocations.put(entry.getKey(), location);
+            }
+        }        
 
         axisBuilder.findWebServices(module, true, correctedPortLocations, environment, ejbModule.getSharedContext());
         
@@ -115,8 +116,7 @@
 
         EjbModule ejbModule = (EjbModule) module;
         
-        Map<String, WebServiceBindingType> wsBindingMap = 
-            createWebServiceBindingMap(ejbModule);
+        Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
 
         for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
             if (bean.type != EnterpriseBeanInfo.STATELESS) {
@@ -135,7 +135,7 @@
             ejbWebServiceGBean.setAttribute("ejbName", ejbName);
             ejbWebServiceGBean.setAttribute("ejbClass", bean.ejbClass);
             
-            WebServiceBindingType wsBinding = wsBindingMap.get(ejbName);
+            WebServiceBinding wsBinding = wsBindingMap.get(ejbName);
             if (wsBinding != null) {
                 List<String> ddVirtualHosts = wsBinding.getWebServiceVirtualHost();
                 if (ddVirtualHosts != null) {                    
@@ -162,6 +162,8 @@
                         protectedMethods = methods.toArray(protectedMethods);                    
                         ejbWebServiceGBean.setAttribute("protectedMethods", protectedMethods);
                     }
+                    Properties properties = wsSecurity.getProperties();
+                    ejbWebServiceGBean.setAttribute("properties", properties);
                 }
             }
             
@@ -188,19 +190,68 @@
         }
     }
 
-    private Map<String, WebServiceBindingType> createWebServiceBindingMap(EjbModule ejbModule) {
-        Map<String, WebServiceBindingType> wsBindingMap = 
-            new HashMap<String, WebServiceBindingType>();
-        GeronimoEjbJarType geronimoEjbJarType = 
-            (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
-        if (geronimoEjbJarType != null) {
-            for (WebServiceBindingType bt : geronimoEjbJarType.getWebServiceBinding()) {
-                wsBindingMap.put(bt.getEjbName(), bt);
+    private Map<String, WebServiceBinding> createWebServiceBindingMap(EjbModule ejbModule) {   
+        Map<String, WebServiceBinding> wsBindingMap = new HashMap<String, WebServiceBinding>();
+        
+        Object openejbDD = ejbModule.getEjbModule().getAltDDs().get("openejb-jar.xml");
+        if (openejbDD instanceof OpenejbJarType) {
+            OpenejbJarType openejb = (OpenejbJarType) openejbDD;
+            for (EnterpriseBean bean : openejb.getEnterpriseBeans()) {
+                if (bean instanceof SessionBeanType) {
+                    SessionBeanType sessioBean = (SessionBeanType) bean;
+                    wsBindingMap.put(bean.getEjbName(), new WebServiceBinding(sessioBean));
+                }                
+            }
+        } else {        
+            GeronimoEjbJarType geronimoEjbJarType = 
+                (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
+            if (geronimoEjbJarType != null) {
+                for (WebServiceBindingType bt : geronimoEjbJarType.getWebServiceBinding()) {
+                    wsBindingMap.put(bt.getEjbName(), new WebServiceBinding(bt));
+                }
             }
         }
+
         return wsBindingMap;
     }
     
+    private static class WebServiceBinding {
+        
+        private String address;
+        private List<String> virtualHosts;
+        private WebServiceSecurityType security;
+        
+        private WebServiceBinding(SessionBeanType bean) {
+            address = bean.getWebServiceAddress();
+            virtualHosts = bean.getWebServiceVirtualHost();
+            security = bean.getWebServiceSecurity();
+        }
+        
+        private WebServiceBinding(WebServiceBindingType bt) {
+            address = bt.getWebServiceAddress();
+            virtualHosts = bt.getWebServiceVirtualHost();
+            if (bt.getWebServiceSecurity() != null) {
+                security = new WebServiceSecurityType();
+                security.setAuthMethod(bt.getWebServiceSecurity().getAuthMethod());
+                security.setRealmName(bt.getWebServiceSecurity().getRealmName());
+                security.setSecurityRealmName(bt.getWebServiceSecurity().getSecurityRealmName());
+                security.setTransportGuarantee(bt.getWebServiceSecurity().getTransportGuarantee());
+            }
+        }
+        
+        public String getWebServiceAddress() {
+            return address;
+        }
+        
+        public List<String> getWebServiceVirtualHost() {
+            return virtualHosts;
+        }
+        
+        public WebServiceSecurityType getWebServiceSecurity() {
+            return security;
+        }
+    }
+    
     public static final GBeanInfo GBEAN_INFO;
 
     static {

Modified: geronimo/server/trunk/plugins/axis/geronimo-axis/src/main/java/org/apache/geronimo/axis/server/EjbWebServiceGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis/geronimo-axis/src/main/java/org/apache/geronimo/axis/server/EjbWebServiceGBean.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis/geronimo-axis/src/main/java/org/apache/geronimo/axis/server/EjbWebServiceGBean.java (original)
+++ geronimo/server/trunk/plugins/axis/geronimo-axis/src/main/java/org/apache/geronimo/axis/server/EjbWebServiceGBean.java Tue Jul  7 05:07:08 2009
@@ -29,6 +29,7 @@
 import org.apache.openejb.server.axis.EjbContainerProvider;
 
 import java.net.URI;
+import java.util.Properties;
 
 public class EjbWebServiceGBean implements GBeanLifecycle {
 
@@ -50,7 +51,8 @@
                               String transportGuarantee,
                               String authMethod,
                               String[] protectedMethods, 
-                              String[] virtualHosts) throws Exception {
+                              String[] virtualHosts,
+                              Properties properties) throws Exception {
 
         this.soapHandler = soapHandler;
         this.location = location;
@@ -75,7 +77,16 @@
         
         AxisWebServiceContainer axisContainer = new AxisWebServiceContainer(location, wsdlURI, service, serviceInfo.getWsdlMap(), classLoader);
         if (soapHandler != null) {
-            soapHandler.addWebService(location.getPath(), virtualHosts, axisContainer, configurationFactory, realmName, transportGuarantee, authMethod, protectedMethods, classLoader);
+            soapHandler.addWebService(location.getPath(), 
+                                      virtualHosts, 
+                                      axisContainer, 
+                                      configurationFactory, 
+                                      realmName, 
+                                      transportGuarantee, 
+                                      authMethod, 
+                                      protectedMethods, 
+                                      properties,
+                                      classLoader);
         }
     }
 
@@ -111,6 +122,7 @@
         infoFactory.addAttribute("protectedMethods", String[].class, true);
         infoFactory.addAttribute("virtualHosts", String[].class, true);
         infoFactory.addReference("WebServiceContainer", SoapHandler.class);
+        infoFactory.addAttribute("properties", Properties.class, true);
 
         infoFactory.setConstructor(new String[]{
                 "EjbDeployment",
@@ -123,7 +135,8 @@
                 "transportGuarantee",
                 "authMethod",
                 "protectedMethods",
-                "virtualHosts"
+                "virtualHosts",
+                "properties"
         });
 
         GBEAN_INFO = infoFactory.getBeanInfo();

Modified: geronimo/server/trunk/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBWebServiceGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBWebServiceGBean.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBWebServiceGBean.java (original)
+++ geronimo/server/trunk/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBWebServiceGBean.java Tue Jul  7 05:07:08 2009
@@ -19,6 +19,7 @@
 
 import java.net.URL;
 import java.util.Collection;
+import java.util.Properties;
 
 import javax.naming.Context;
 
@@ -52,7 +53,8 @@
                               String transportGuarantee,
                               String authMethod,
                               String[] protectedMethods, 
-                              String[] virtualHosts) throws Exception {        
+                              String[] virtualHosts,
+                              Properties properties) throws Exception {        
         if (ejbDeploymentContext == null || webContainers == null || webContainers.isEmpty() || portInfo == null) {
             return;
         }
@@ -80,6 +82,7 @@
                                   transportGuarantee, 
                                   authMethod, 
                                   protectedMethods, 
+                                  properties,
                                   classLoader);        
     }
 
@@ -114,6 +117,7 @@
         infoFactory.addAttribute("protectedMethods", String[].class, true);
         infoFactory.addAttribute("virtualHosts", String[].class, true);
         infoFactory.addReference("WebServiceContainer", SoapHandler.class);
+        infoFactory.addAttribute("properties", Properties.class, true);
         
         infoFactory.setConstructor(new String[]{
                 "EjbDeployment",
@@ -126,7 +130,8 @@
                 "transportGuarantee",
                 "authMethod",
                 "protectedMethods",
-                "virtualHosts"
+                "virtualHosts",
+                "properties"
         });
 
         

Modified: geronimo/server/trunk/plugins/cxf/geronimo-cxf-ejb/src/main/java/org/apache/geronimo/cxf/ejb/EJBWebServiceGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/cxf/geronimo-cxf-ejb/src/main/java/org/apache/geronimo/cxf/ejb/EJBWebServiceGBean.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/cxf/geronimo-cxf-ejb/src/main/java/org/apache/geronimo/cxf/ejb/EJBWebServiceGBean.java (original)
+++ geronimo/server/trunk/plugins/cxf/geronimo-cxf-ejb/src/main/java/org/apache/geronimo/cxf/ejb/EJBWebServiceGBean.java Tue Jul  7 05:07:08 2009
@@ -18,6 +18,7 @@
 
 import java.net.URL;
 import java.util.Collection;
+import java.util.Properties;
 
 import javax.naming.Context;
 
@@ -54,7 +55,8 @@
                               String transportGuarantee,
                               String authMethod,
                               String[] protectedMethods,
-                              String[] virtualHosts) throws Exception {        
+                              String[] virtualHosts,
+                              Properties properties) throws Exception {        
         if (ejbDeploymentContext == null || webContainers == null || webContainers.isEmpty() || portInfo == null) {
             return;
         }
@@ -91,6 +93,7 @@
                                   transportGuarantee, 
                                   authMethod, 
                                   protectedMethods, 
+                                  properties,
                                   classLoader);        
     }
 
@@ -125,6 +128,7 @@
         infoFactory.addAttribute("protectedMethods", String[].class, true);
         infoFactory.addAttribute("virtualHosts", String[].class, true);
         infoFactory.addReference("WebServiceContainer", SoapHandler.class);
+        infoFactory.addAttribute("properties", Properties.class, true);
         
         infoFactory.setConstructor(new String[]{
                 "EjbDeployment",
@@ -137,7 +141,8 @@
                 "transportGuarantee",
                 "authMethod",
                 "protectedMethods",
-                "virtualHosts"
+                "virtualHosts",
+                "properties"
         });
 
         

Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSEJBModuleBuilderExtension.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSEJBModuleBuilderExtension.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSEJBModuleBuilderExtension.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSEJBModuleBuilderExtension.java Tue Jul  7 05:07:08 2009
@@ -22,6 +22,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.jar.JarFile;
 
 import org.apache.geronimo.common.DeploymentException;
@@ -47,9 +48,12 @@
 import org.apache.geronimo.openejb.deployment.EjbModule;
 import org.apache.geronimo.security.jaas.ConfigurationFactory;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.jee.oejb2.EnterpriseBean;
 import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
+import org.apache.openejb.jee.oejb2.OpenejbJarType;
+import org.apache.openejb.jee.oejb2.SessionBeanType;
 import org.apache.openejb.jee.oejb2.WebServiceBindingType;
-import org.apache.openejb.jee.oejb2.WebServiceBindingType.WebServiceSecurityType;
+import org.apache.openejb.jee.oejb2.WebServiceSecurityType;
 
 /**
  * @version $Rev$ $Date$
@@ -97,21 +101,18 @@
         Environment environment = module.getEnvironment();
                 
         //overridden web service locations       
-        Map correctedPortLocations = new HashMap();         
-        GeronimoEjbJarType geronimoEjbJarType = 
-            (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
-        if (geronimoEjbJarType != null) {
-           for (WebServiceBindingType bt : geronimoEjbJarType.getWebServiceBinding()) {
-               String location = bt.getWebServiceAddress();
-               if (location != null) {
-                   location = location.trim();
-                   if (!location.startsWith("/")) {
-                       location = "/" + location;
-                   }
-                   correctedPortLocations.put(bt.getEjbName(), location);
-               }
-           }
-        }      
+        Map correctedPortLocations = new HashMap();     
+        Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
+        for (Map.Entry<String, WebServiceBinding> entry : wsBindingMap.entrySet()) {
+            String location = entry.getValue().getWebServiceAddress();
+            if (location != null) {
+                location = location.trim();
+                if (!location.startsWith("/")) {
+                    location = "/" + location;
+                }
+                correctedPortLocations.put(entry.getKey(), location);
+            }
+        }
         
         jaxwsBuilder.findWebServices(module, true, correctedPortLocations, environment, ejbModule.getSharedContext());
     }
@@ -123,8 +124,7 @@
 
         EjbModule ejbModule = (EjbModule) module;
 
-        Map<String, WebServiceBindingType> wsBindingMap = 
-            createWebServiceBindingMap(ejbModule);
+        Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
         
         for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
             if (bean.type != EnterpriseBeanInfo.STATELESS) {
@@ -144,7 +144,7 @@
             ejbWebServiceGBean.setAttribute("ejbName", ejbName);
             ejbWebServiceGBean.setAttribute("ejbClass", bean.ejbClass);
             
-            WebServiceBindingType wsBinding = wsBindingMap.get(ejbName);
+            WebServiceBinding wsBinding = wsBindingMap.get(ejbName);
             if (wsBinding != null) {
                 List<String> ddVirtualHosts = wsBinding.getWebServiceVirtualHost();
                 if (ddVirtualHosts != null) {                    
@@ -171,6 +171,8 @@
                         protectedMethods = methods.toArray(protectedMethods);                    
                         ejbWebServiceGBean.setAttribute("protectedMethods", protectedMethods);
                     }
+                    Properties properties = wsSecurity.getProperties();
+                    ejbWebServiceGBean.setAttribute("properties", properties);
                 }
             }
             
@@ -198,19 +200,68 @@
             
         }
     }
-    
-    private Map<String, WebServiceBindingType> createWebServiceBindingMap(EjbModule ejbModule) {
-        Map<String, WebServiceBindingType> wsBindingMap = 
-            new HashMap<String, WebServiceBindingType>();
-        GeronimoEjbJarType geronimoEjbJarType = 
-            (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
-        if (geronimoEjbJarType != null) {
-            for (WebServiceBindingType bt : geronimoEjbJarType.getWebServiceBinding()) {
-                wsBindingMap.put(bt.getEjbName(), bt);
+        
+    private Map<String, WebServiceBinding> createWebServiceBindingMap(EjbModule ejbModule) {   
+        Map<String, WebServiceBinding> wsBindingMap = new HashMap<String, WebServiceBinding>();
+        
+        Object openejbDD = ejbModule.getEjbModule().getAltDDs().get("openejb-jar.xml");
+        if (openejbDD instanceof OpenejbJarType) {
+            OpenejbJarType openejb = (OpenejbJarType) openejbDD;
+            for (EnterpriseBean bean : openejb.getEnterpriseBeans()) {
+                if (bean instanceof SessionBeanType) {
+                    SessionBeanType sessioBean = (SessionBeanType) bean;
+                    wsBindingMap.put(bean.getEjbName(), new WebServiceBinding(sessioBean));
+                }                
+            }
+        } else {        
+            GeronimoEjbJarType geronimoEjbJarType = 
+                (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
+            if (geronimoEjbJarType != null) {
+                for (WebServiceBindingType bt : geronimoEjbJarType.getWebServiceBinding()) {
+                    wsBindingMap.put(bt.getEjbName(), new WebServiceBinding(bt));
+                }
             }
         }
+
         return wsBindingMap;
-    } 
+    }
+    
+    private static class WebServiceBinding {
+        
+        private String address;
+        private List<String> virtualHosts;
+        private WebServiceSecurityType security;
+        
+        private WebServiceBinding(SessionBeanType bean) {
+            address = bean.getWebServiceAddress();
+            virtualHosts = bean.getWebServiceVirtualHost();
+            security = bean.getWebServiceSecurity();
+        }
+        
+        private WebServiceBinding(WebServiceBindingType bt) {
+            address = bt.getWebServiceAddress();
+            virtualHosts = bt.getWebServiceVirtualHost();
+            if (bt.getWebServiceSecurity() != null) {
+                security = new WebServiceSecurityType();
+                security.setAuthMethod(bt.getWebServiceSecurity().getAuthMethod());
+                security.setRealmName(bt.getWebServiceSecurity().getRealmName());
+                security.setSecurityRealmName(bt.getWebServiceSecurity().getSecurityRealmName());
+                security.setTransportGuarantee(bt.getWebServiceSecurity().getTransportGuarantee());
+            }
+        }
+        
+        public String getWebServiceAddress() {
+            return address;
+        }
+        
+        public List<String> getWebServiceVirtualHost() {
+            return virtualHosts;
+        }
+        
+        public WebServiceSecurityType getWebServiceSecurity() {
+            return security;
+        }
+    }
     
     public static final GBeanInfo GBEAN_INFO;
 

Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java Tue Jul  7 05:07:08 2009
@@ -20,6 +20,7 @@
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 import javax.management.j2ee.statistics.Stats;
 
@@ -209,7 +210,16 @@
         contextHandlerCollection.removeHandler(context);
     }
 
-    public void addWebService(String contextPath, String[] virtualHosts, WebServiceContainer webServiceContainer, ConfigurationFactory configurationFactory, String realmName, String transportGuarantee, String authMethod, String[] protectedMethods, ClassLoader classLoader) throws Exception {
+    public void addWebService(String contextPath, 
+                              String[] virtualHosts, 
+                              WebServiceContainer webServiceContainer, 
+                              ConfigurationFactory configurationFactory, 
+                              String realmName, 
+                              String transportGuarantee, 
+                              String authMethod, 
+                              String[] protectedMethods, 
+                              Properties properties,
+                              ClassLoader classLoader) throws Exception {
         InternalJAASJettyRealm internalJAASJettyRealm = configurationFactory == null ? null : new InternalJAASJettyRealm(configurationFactory);
         JettyEJBWebServiceContext webServiceContext = new JettyEJBWebServiceContext(contextPath, webServiceContainer, internalJAASJettyRealm, realmName, transportGuarantee, authMethod, protectedMethods, classLoader);
         webServiceContext.setVirtualHosts(virtualHosts);

Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ContainerTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ContainerTest.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ContainerTest.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ContainerTest.java Tue Jul  7 05:07:08 2009
@@ -46,7 +46,7 @@
 
         String contextPath = "/foo/webservice.ws";
         MockWebServiceContainer webServiceInvoker = new MockWebServiceContainer();
-        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, cl);
+        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, null, cl);
 
         HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:5678" + contextPath).openConnection();
         try {
@@ -71,11 +71,11 @@
 
         String contextPath = "/foo/webservice.ws";
         MockWebServiceContainer webServiceInvoker = new MockWebServiceContainer();
-        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, cl);
+        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, null, cl);
 
         String contextPath2 = "/bar/webservice.ws";
         MockWebServiceContainer webServiceInvoker2 = new MockWebServiceContainer();
-        container.addWebService(contextPath2, null, webServiceInvoker2, null, null, null, null, null, cl);
+        container.addWebService(contextPath2, null, webServiceInvoker2, null, null, null, null, null, null, cl);
 
         HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:5678" + contextPath).openConnection();
         try {

Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java Tue Jul  7 05:07:08 2009
@@ -20,6 +20,7 @@
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 import java.security.Permission;
 
 import javax.management.j2ee.statistics.Stats;
@@ -227,6 +228,7 @@
                               String transportGuarantee,
                               String authMethod,
                               String[] protectedMethods, //allowed methods?
+                              Properties properties, 
                               ClassLoader classLoader) throws Exception {
         SecurityHandler securityHandler = null;
         if (configurationFactory != null) {

Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/ContainerTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/ContainerTest.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/ContainerTest.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/ContainerTest.java Tue Jul  7 05:07:08 2009
@@ -46,7 +46,7 @@
 
         String contextPath = "/foo/webservice.ws";
         MockWebServiceContainer webServiceInvoker = new MockWebServiceContainer();
-        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, cl);
+        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, null, cl);
 
         HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:5678" + contextPath).openConnection();
         try {
@@ -71,11 +71,11 @@
 
         String contextPath = "/foo/webservice.ws";
         MockWebServiceContainer webServiceInvoker = new MockWebServiceContainer();
-        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, cl);
+        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, null, cl);
 
         String contextPath2 = "/bar/webservice.ws";
         MockWebServiceContainer webServiceInvoker2 = new MockWebServiceContainer();
-        container.addWebService(contextPath2, null, webServiceInvoker2, null, null, null, null, null, cl);
+        container.addWebService(contextPath2, null, webServiceInvoker2, null, null, null, null, null, null, cl);
 
         HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:5678" + contextPath).openConnection();
         try {

Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatContainer.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatContainer.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatContainer.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatContainer.java Tue Jul  7 05:07:08 2009
@@ -21,6 +21,7 @@
 import java.net.URLStreamHandlerFactory;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 import javax.management.ObjectName;
 import javax.management.MalformedObjectNameException;
@@ -373,7 +374,16 @@
         embedded.removeConnector(connector);
     }
 
-    public void addWebService(String contextPath, String[] virtualHosts, WebServiceContainer webServiceContainer, ConfigurationFactory configurationFactory, String realmName, String transportGuarantee, String authMethod, String[] protectedMethods, ClassLoader classLoader) throws Exception {
+    public void addWebService(String contextPath, 
+                              String[] virtualHosts, 
+                              WebServiceContainer webServiceContainer, 
+                              ConfigurationFactory configurationFactory, 
+                              String realmName, 
+                              String transportGuarantee,
+                              String authMethod, 
+                              String[] protectedMethods, 
+                              Properties properties,
+                              ClassLoader classLoader) throws Exception {
         Context webServiceContext = createEJBWebServiceContext(contextPath, webServiceContainer, configurationFactory, realmName, transportGuarantee, authMethod, protectedMethods, classLoader);
 
         String virtualServer;

Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/ContainerTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/ContainerTest.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/ContainerTest.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/ContainerTest.java Tue Jul  7 05:07:08 2009
@@ -35,7 +35,7 @@
 
         String contextPath = "/foo/webservice.ws";
         MockWebServiceContainer webServiceInvoker = new MockWebServiceContainer();
-        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, cl);
+        container.addWebService(contextPath, null, webServiceInvoker, null, null, null, null, null, null, cl);
         HttpURLConnection connection = (HttpURLConnection) new URL(connector.getConnectUrl() + contextPath).openConnection();
         try {
             BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
@@ -62,7 +62,7 @@
 
         String contextPath = "/foo/webservice.ws";
         MockWebServiceContainer webServiceInvoker = new MockWebServiceContainer();
-        container.addWebService(contextPath, null, webServiceInvoker, realm, securityRealmName, "NONE", "BASIC", null, cl);
+        container.addWebService(contextPath, null, webServiceInvoker, realm, securityRealmName, "NONE", "BASIC", null, null, cl);
 
         //Veryify its secured
         HttpURLConnection connection = (HttpURLConnection) new URL(connector.getConnectUrl() + contextPath).openConnection();

Modified: geronimo/server/trunk/plugins/webservices/geronimo-webservices/src/main/java/org/apache/geronimo/webservices/SoapHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/webservices/geronimo-webservices/src/main/java/org/apache/geronimo/webservices/SoapHandler.java?rev=791703&r1=791702&r2=791703&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/webservices/geronimo-webservices/src/main/java/org/apache/geronimo/webservices/SoapHandler.java (original)
+++ geronimo/server/trunk/plugins/webservices/geronimo-webservices/src/main/java/org/apache/geronimo/webservices/SoapHandler.java Tue Jul  7 05:07:08 2009
@@ -16,6 +16,8 @@
  */
 package org.apache.geronimo.webservices;
 
+import java.util.Properties;
+
 import org.apache.geronimo.security.jaas.ConfigurationFactory;
 
 /**
@@ -23,7 +25,16 @@
  */
 public interface SoapHandler {
 
-    void addWebService(String contextPath, String[] virtualHosts, WebServiceContainer webServiceContainer, ConfigurationFactory configurationFactory, String realmName, String transportGuarantee, String authMethod, String[] protectedMethods, ClassLoader classLoader) throws Exception;
+    void addWebService(String contextPath, 
+                       String[] virtualHosts, 
+                       WebServiceContainer webServiceContainer, 
+                       ConfigurationFactory configurationFactory, 
+                       String realmName, 
+                       String transportGuarantee, 
+                       String authMethod, 
+                       String[] protectedMethods, 
+                       Properties properties, 
+                       ClassLoader classLoader) throws Exception;
 
     void removeWebService(String contextPath);