Author: jboynes
Date: Mon Mar 20 07:06:36 2006
New Revision: 387217
URL: http://svn.apache.org/viewcvs?rev=387217&view=rev
Log:
cosmetic, remove dead code and get idea to shut up
Modified:
incubator/tuscany/java/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
Modified:
incubator/tuscany/java/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java?rev=387217&r1=387216&r2=387217&view=diff
==============================================================================
---
incubator/tuscany/java/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
(original)
+++
incubator/tuscany/java/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
Mon Mar 20 07:06:36 2006
@@ -2,29 +2,27 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
-
import javax.wsdl.Part;
import javax.xml.namespace.QName;
+import commonj.sdo.helper.TypeHelper;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
-import org.apache.tuscany.binding.axis2.util.AxiomHelper;
-import org.apache.tuscany.core.context.AggregateContext;
-import org.apache.tuscany.core.context.EntryPointContext;
-import org.apache.tuscany.model.assembly.EntryPoint;
import org.apache.ws.commons.om.OMElement;
import org.apache.ws.commons.soap.SOAPBody;
import org.apache.ws.commons.soap.SOAPEnvelope;
import org.apache.ws.commons.soap.SOAPFactory;
import org.apache.wsdl.WSDLConstants;
-import commonj.sdo.DataObject;
-import commonj.sdo.helper.TypeHelper;
+
+import org.apache.tuscany.binding.axis2.util.AxiomHelper;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EntryPointContext;
+import org.apache.tuscany.model.assembly.EntryPoint;
public class WebServiceEntryPointInOutSyncMessageReceiver extends
AbstractInOutSyncMessageReceiver {
- // public static final String MEP_URL =
"http://www.w3.org/2004/08/wsdl/tuscany/in-out";
public static final String MEP_URL = WSDLConstants.MEP_URI_IN_OUT;
protected final AggregateContext moduleContext;
@@ -33,133 +31,82 @@
protected final EntryPointContext entryPointContext;
private final WebServicePortMetaData wsdlPortInfo;
-
- /**
- * Field log
- */
+ private final TypeHelper typeHelper;
+ private final ClassLoader classLoader;
+ private final Class<?> serviceInterface;
/**
* Constructor WebServiceEntryPointInOutSyncMessageReceiver
- *
+ *
* @param entryPoint
* @param moduleContext
- * @param context
- * @param wsdlPortInfo
+ * @param context
+ * @param wsdlPortInfo
*/
public WebServiceEntryPointInOutSyncMessageReceiver(AggregateContext
moduleContext, EntryPoint entryPoint, EntryPointContext context,
WebServicePortMetaData wsdlPortInfo) {
this.moduleContext = moduleContext;
this.entryPoint = entryPoint;
- this.entryPointContext= context;
+ this.entryPointContext = context;
this.wsdlPortInfo = wsdlPortInfo;
+ typeHelper =
entryPoint.getAggregate().getAssemblyModelContext().getTypeHelper();
+ classLoader =
entryPoint.getAggregate().getAssemblyModelContext().getApplicationResourceLoader().getClassLoader();
+ serviceInterface =
entryPoint.getConfiguredService().getService().getServiceContract().getInterface();
}
public void invokeBusinessLogic(MessageContext msgContext, MessageContext
outMsgContext) throws AxisFault {
-
- ClassLoader ccl=Thread.currentThread().getContextClassLoader();
+ // set application classloader onto the thread
+ ClassLoader ccl = Thread.currentThread().getContextClassLoader();
try {
-
Thread.currentThread().setContextClassLoader(entryPoint.getAggregate().getAssemblyModelContext().getApplicationResourceLoader().getClassLoader());
-
+ Thread.currentThread().setContextClassLoader(classLoader);
+
+ // get operation name from request message
AxisOperation axisOperation = msgContext.getAxisOperation();
- String axisOperationName= axisOperation.getName().getLocalPart();
-
- TypeHelper
typeHelper=entryPoint.getAggregate().getAssemblyModelContext().getTypeHelper();
+ String axisOperationName = axisOperation.getName().getLocalPart();
+ // de-serialize request parameters to objects
OMElement requestOM =
msgContext.getEnvelope().getBody().getFirstElement();
- DataObject msgdo = AxiomHelper.toDataObject(typeHelper, requestOM);
- // Sequence parmSeq = msgdo.getSequence("mixed");
-
- requestOM = msgContext.getEnvelope().getBody().getFirstElement();
Object[] args = AxiomHelper.toObjects(typeHelper, requestOM);
-
-
-
-
-// ArrayList parms = new ArrayList(parmSeq.size());
-// for (int i = 0; i < parmSeq.size(); ++i) {
-// Object parmDO = (Object) parmSeq.getValue(i);// parm element
-// if (parmDO instanceof DataObject) {
-//
-// Sequence nn = ((DataObject) parmDO).getSequence("mixed");
-//
-// for (int j = 0; j < nn.size(); j++) {
-//
-// Object valueDO = (Object) nn.getValue(j); // data
array s
-// if (valueDO instanceof DataObject) {
-//
-// Sequence seqVal = ((DataObject)
valueDO).getSequence("mixed");
-// Object seqDO = seqVal.getValue(0);
-// if (seqDO instanceof String) {
-// parms.add(seqDO);
-// } else {
-// parms.add(valueDO); // no sure if this is
right?
-//
-// }
-// }
-// }
-// }
-// }
-// Object[] args= parms.toArray(new Object[parms.size()]);
- Class[] argsClazz= new Class[args.length];
- for(int i= args.length -1; i> -1; --i){
- argsClazz[i]= args[i].getClass();
-
+
+ // map the operation and arguments to the service method
+ Class<?>[] argsClazz = new Class[args.length];
+ for (int i = args.length - 1; i > -1; --i) {
+ argsClazz[i] = args[i].getClass();
+
}
- Class clazz =
entryPoint.getConfiguredService().getService().getServiceContract().getInterface();
- Method operationMethod= clazz.getMethod(axisOperationName,
argsClazz);
-
-
+ Method operationMethod =
serviceInterface.getMethod(axisOperationName, argsClazz);
+
+ // invoke the proxy's InvocationHandler
+ // FIXME we should be invoking the Tuscany pipeline rather than
the proxy
InvocationHandler handler = (InvocationHandler)
entryPointContext.getImplementationInstance();
-
-
- Object response = handler.invoke(null, operationMethod, args);
-
-
+ Object response = handler.invoke(null, operationMethod, args);
+
+ // construct the response message
SOAPFactory fac = getSOAPFactory(msgContext);
- SOAPEnvelope soapenv = fac.getDefaultEnvelope();
+ SOAPEnvelope soapenv = fac.getDefaultEnvelope();
SOAPBody soapbody = soapenv.getBody();
- //new SDO way....
+
+ // serialize the invocation respose into the message
QName responseTypeQN =
getResponseTypeName(operationMethod.getName());
- OMElement responseOM = AxiomHelper.toOMElement(typeHelper, new
Object[] {response}, responseTypeQN);
+ OMElement responseOM = AxiomHelper.toOMElement(typeHelper, new
Object[]{response}, responseTypeQN);
soapbody.addChild(responseOM);
-
-
- //Endof new SDO way
-
-
-
-
-
- // se.addChild(sf.createText(response, true));
outMsgContext.setEnvelope(soapenv);
- // outMsgContext.setAxisOperation(axisOperation);
- // outMsgContext.setAxisService(msgContext.getAxisService());
-
-
-
outMsgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
- Constants.VALUE_TRUE);
-
-
-
-
+
outMsgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
Constants.VALUE_TRUE);
} catch (Exception e) {
e.printStackTrace();
- throw new AxisFault("Error creating DataObject from Soapenvelope.
" + e.getClass() + " " + e.getMessage(), e);
-
+ throw new AxisFault("Error creating DataObject from Soapenvelope.
" + e.getClass() + ' ' + e.getMessage(), e);
} catch (Throwable e) {
-
e.printStackTrace();
- throw new AxisFault("Error creating DataObject from Soapenvelope.
" + e.getClass() + " " + e.getMessage(), e);
+ throw new AxisFault("Error creating DataObject from Soapenvelope.
" + e.getClass() + ' ' + e.getMessage(), e);
} finally {
Thread.currentThread().setContextClassLoader(ccl);
}
-
}
+
protected QName getResponseTypeName(String operationName) {
WebServiceOperationMetaData op =
wsdlPortInfo.getOperationMetaData(operationName);
- Part part = op.getOutputPart(0);
- QName elementName = part.getElementName();
- return elementName;
+ Part part = op.getOutputPart(0);
+ return part.getElementName();
}