Author: dblevins Date: Thu Mar 17 20:36:36 2005 New Revision: 158021 URL: http://svn.apache.org/viewcvs?view=rev&rev=158021 Log: Pojo message flow
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java Modified: geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/ReadOnlyServiceDesc.java geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisWebServiceContainerTest.java Modified: geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java?view=diff&r1=158020&r2=158021 ============================================================================== --- geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java (original) +++ geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java Thu Mar 17 20:36:36 2005 @@ -32,6 +32,7 @@ import javax.wsdl.extensions.soap.SOAPBinding; import javax.xml.namespace.QName; import javax.xml.rpc.handler.HandlerInfo; +import javax.xml.rpc.holders.IntHolder; import net.sf.cglib.core.DefaultGeneratorStrategy; import net.sf.cglib.proxy.Callback; @@ -51,8 +52,11 @@ import org.apache.axis.soap.SOAPConstants; import org.apache.axis.providers.java.RPCProvider; import org.apache.axis.handlers.soap.SOAPService; +import org.apache.axis.MessageContext; +import org.apache.axis.Handler; import org.apache.geronimo.axis.client.*; import org.apache.geronimo.axis.server.AxisWebServiceContainer; +import org.apache.geronimo.axis.server.POJOProvider; import org.apache.geronimo.common.DeploymentException; import org.apache.geronimo.deployment.DeploymentContext; import org.apache.geronimo.gbean.GBeanData; @@ -87,7 +91,15 @@ PortInfo portInfo = (PortInfo) portInfoObject; JavaServiceDesc serviceDesc = AxisServiceBuilder.createServiceDesc(portInfo, classLoader); - RPCProvider provider = new RPCProvider(); + + Class pojoClass = null; + try { + pojoClass = classLoader.loadClass(seiClassName); + } catch (ClassNotFoundException e) { + throw new DeploymentException("Unable to load servlet class for pojo webservice: "+seiClassName, e); + } + + RPCProvider provider = new POJOProvider(pojoClass); SOAPService service = new SOAPService(null, provider, null); service.setServiceDescription(serviceDesc); service.setOption("className", seiClassName); Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java?view=auto&rev=158021 ============================================================================== --- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java (added) +++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java Thu Mar 17 20:36:36 2005 @@ -0,0 +1,38 @@ +/** + * + * Copyright 2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.geronimo.axis.server; + +import javax.xml.rpc.holders.IntHolder; + +import org.apache.axis.providers.java.RPCProvider; +import org.apache.axis.MessageContext; +import org.apache.axis.Handler; + +/** + * @version $Rev$ $Date$ + */ +public class POJOProvider extends RPCProvider { + private final Class pojoClass; + + public POJOProvider(Class pojoClass) { + this.pojoClass = pojoClass; + } + + public Object getServiceObject(MessageContext msgContext, Handler service, String clsName, IntHolder scopeHolder) throws Exception { + return pojoClass.newInstance(); + } +} Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/ReadOnlyServiceDesc.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/ReadOnlyServiceDesc.java?view=diff&r1=158020&r2=158021 ============================================================================== --- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/ReadOnlyServiceDesc.java (original) +++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/ReadOnlyServiceDesc.java Thu Mar 17 20:36:36 2005 @@ -18,15 +18,14 @@ import java.util.ArrayList; import java.util.List; - import javax.xml.namespace.QName; +import org.apache.axis.constants.Style; +import org.apache.axis.constants.Use; import org.apache.axis.description.JavaServiceDesc; import org.apache.axis.description.OperationDesc; import org.apache.axis.encoding.TypeMapping; import org.apache.axis.encoding.TypeMappingRegistry; -import org.apache.axis.constants.Style; -import org.apache.axis.constants.Use; /** * @version $Rev$ $Date$ @@ -50,10 +49,10 @@ return serviceDesc.getStopClasses(); } - public void setStopClasses(ArrayList stopClasses) { } + public void setStopClasses(ArrayList stopClasses) { + } - public void loadServiceDescByIntrospection() - { + public void loadServiceDescByIntrospection() { serviceDesc.loadServiceDescByIntrospection(); } @@ -61,8 +60,7 @@ serviceDesc.loadServiceDescByIntrospection(implClass); } - public void loadServiceDescByIntrospection(Class cls, TypeMapping tm) - { + public void loadServiceDescByIntrospection(Class cls, TypeMapping tm) { serviceDesc.loadServiceDescByIntrospection(cls, tm); } @@ -125,7 +123,7 @@ return serviceDesc.getOperations(); } - public OperationDesc [] getOperationsByName(String methodName) { + public OperationDesc[] getOperationsByName(String methodName) { return serviceDesc.getOperationsByName(methodName); } @@ -137,7 +135,7 @@ return serviceDesc.getOperationByElementQName(qname); } - public OperationDesc [] getOperationsByQName(QName qname) { + public OperationDesc[] getOperationsByQName(QName qname) { return serviceDesc.getOperationsByQName(qname); } @@ -187,4 +185,5 @@ public void setDisallowedMethods(List disallowedMethods) { } + } Modified: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisWebServiceContainerTest.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisWebServiceContainerTest.java?view=diff&r1=158020&r2=158021 ============================================================================== --- geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisWebServiceContainerTest.java (original) +++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisWebServiceContainerTest.java Thu Mar 17 20:36:36 2005 @@ -35,6 +35,7 @@ import org.apache.axis.providers.java.RPCProvider; import org.apache.geronimo.axis.server.AxisWebServiceContainer; import org.apache.geronimo.axis.server.ReadOnlyServiceDesc; +import org.apache.geronimo.axis.server.POJOProvider; import org.apache.geronimo.axis.testData.echosample.EchoBean; //import org.openejb.deployment.OpenEJBModuleBuilder; @@ -84,7 +85,8 @@ serviceDesc.getOperations(); ReadOnlyServiceDesc sd = new ReadOnlyServiceDesc(serviceDesc); - RPCProvider provider = new RPCProvider(); + Class pojoClass = cl.loadClass("org.apache.geronimo.axis.testData.echosample.EchoBean"); + RPCProvider provider = new POJOProvider(pojoClass); SOAPService service = new SOAPService(null, provider, null); service.setServiceDescription(serviceDesc); service.setOption("className","org.apache.geronimo.axis.testData.echosample.EchoBean");