dblevins    2005/03/25 21:43:34

  Modified:    modules/core/src/java/org/openejb/server/axis
                        WSContainer.java WSContainerGBean.java
  Log:

  Basic handler support.  More work to be done on EJB sercurity/handlers.
  
  Revision  Changes    Path
  1.6       +11 -2     
openejb/modules/core/src/java/org/openejb/server/axis/WSContainer.java
  
  Index: WSContainer.java
  ===================================================================
  RCS file: 
/scm/openejb/openejb/modules/core/src/java/org/openejb/server/axis/WSContainer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WSContainer.java  20 Mar 2005 21:36:25 -0000      1.5
  +++ WSContainer.java  26 Mar 2005 02:43:34 -0000      1.6
  @@ -49,8 +49,10 @@
   
   import org.apache.axis.description.JavaServiceDesc;
   import org.apache.axis.handlers.soap.SOAPService;
  +import org.apache.axis.handlers.HandlerInfoChainFactory;
   import org.apache.axis.providers.java.RPCProvider;
   import org.apache.geronimo.axis.server.AxisWebServiceContainer;
  +import org.apache.geronimo.axis.builder.ServiceInfo;
   import org.apache.geronimo.webservices.SoapHandler;
   import org.apache.geronimo.gbean.GBeanLifecycle;
   import org.openejb.EJBContainer;
  @@ -65,17 +67,24 @@
           location = null;
       }
   
  -    public WSContainer(EJBContainer ejbContainer, URI location, URI wsdlURI, 
SoapHandler soapHandler, JavaServiceDesc serviceDesc) throws Exception {
  +    public WSContainer(EJBContainer ejbContainer, URI location, URI wsdlURI, 
SoapHandler soapHandler, ServiceInfo serviceInfo) throws Exception {
           try {
  +
               this.soapHandler = soapHandler;
               this.location = location;
  +
               RPCProvider provider = new EJBContainerProvider(ejbContainer);
               SOAPService service = new SOAPService(null, provider, null);
  +
  +            JavaServiceDesc serviceDesc = serviceInfo.getServiceDesc();
               service.setServiceDescription(serviceDesc);
               Class serviceEndpointInterface = 
ejbContainer.getProxyInfo().getServiceEndpointInterface();
   
               service.setOption("className", 
serviceEndpointInterface.getName());
               serviceDesc.setImplClass(serviceEndpointInterface);
  +
  +            HandlerInfoChainFactory handlerInfoChainFactory = new 
HandlerInfoChainFactory(serviceInfo.getHanlderInfos());
  +            
service.setOption(org.apache.axis.Constants.ATTR_HANDLERINFOCHAIN, 
handlerInfoChainFactory);
   
               ClassLoader classLoader = ejbContainer.getClassLoader();
               String wsdlResource = wsdlURI.toString();
  
  
  
  1.3       +8 -7      
openejb/modules/core/src/java/org/openejb/server/axis/WSContainerGBean.java
  
  Index: WSContainerGBean.java
  ===================================================================
  RCS file: 
/scm/openejb/openejb/modules/core/src/java/org/openejb/server/axis/WSContainerGBean.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WSContainerGBean.java     18 Mar 2005 07:42:17 -0000      1.2
  +++ WSContainerGBean.java     26 Mar 2005 02:43:34 -0000      1.3
  @@ -58,6 +58,7 @@
   import org.apache.geronimo.kernel.jmx.JMXUtil;
   import org.apache.geronimo.webservices.SoapHandler;
   import org.apache.geronimo.webservices.WebServiceContainer;
  +import org.apache.geronimo.axis.builder.ServiceInfo;
   import org.apache.axis.description.JavaServiceDesc;
   import org.openejb.EJBContainer;
   
  @@ -74,14 +75,14 @@
           infoFactory.addAttribute("location", URI.class, true);
           infoFactory.addAttribute("wsdlURI", URI.class, true);
           infoFactory.addReference("WebServiceContainer", SoapHandler.class);
  -        infoFactory.addAttribute("serviceDesc", JavaServiceDesc.class, true);
  +        infoFactory.addAttribute("serviceInfo", ServiceInfo.class, true);
   
           infoFactory.setConstructor(new String[]{
               "EJBContainer",
               "location",
               "wsdlURI",
               "WebServiceContainer",
  -            "serviceDesc"
  +            "serviceInfo"
           });
   
           GBEAN_INFO = infoFactory.getBeanInfo();
  @@ -91,14 +92,14 @@
           return GBEAN_INFO;
       }
   
  -    public static ObjectName addGBean(Kernel kernel, String name, ObjectName 
ejbContainer, ObjectName listener, URI location, URI wsdlURI, JavaServiceDesc 
serviceDesc) throws GBeanAlreadyExistsException, GBeanNotFoundException {
  -        GBeanData gbean = createGBean(name, ejbContainer, listener, 
location, wsdlURI, serviceDesc);
  +    public static ObjectName addGBean(Kernel kernel, String name, ObjectName 
ejbContainer, ObjectName listener, URI location, URI wsdlURI, ServiceInfo 
serviceInfo) throws GBeanAlreadyExistsException, GBeanNotFoundException {
  +        GBeanData gbean = createGBean(name, ejbContainer, listener, 
location, wsdlURI, serviceInfo);
           kernel.loadGBean(gbean, WSContainer.class.getClassLoader());
           kernel.startGBean(gbean.getName());
           return gbean.getName();
       }
   
  -    public static GBeanData createGBean(String name, ObjectName 
ejbContainer, ObjectName listener, URI location, URI wsdlURI, JavaServiceDesc 
serviceDesc) {
  +    public static GBeanData createGBean(String name, ObjectName 
ejbContainer, ObjectName listener, URI location, URI wsdlURI, ServiceInfo 
serviceInfo) {
           assert ejbContainer != null : "EJBContainer objectname is null";
   
           ObjectName gbeanName = 
JMXUtil.getObjectName("openejb:type=WSContainer,name=" + name);
  @@ -107,7 +108,7 @@
           gbean.setReferencePattern("EJBContainer", ejbContainer);
           gbean.setAttribute("location", location);
           gbean.setAttribute("wsdlURI", wsdlURI);
  -        gbean.setAttribute("serviceDesc", serviceDesc);
  +        gbean.setAttribute("serviceInfo", serviceInfo);
   
           gbean.setReferencePattern("WebServiceContainer", listener);
   
  
  
  

Reply via email to