Author: rfeng
Date: Fri Mar 7 16:45:07 2008
New Revision: 634877
URL: http://svn.apache.org/viewvc?rev=634877&view=rev
Log:
Honor the operation name from @WebMethod where the java method name is
different from the WSDL operation name
Modified:
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
Modified:
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java?rev=634877&r1=634876&r2=634877&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
(original)
+++
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
Fri Mar 7 16:45:07 2008
@@ -34,6 +34,7 @@
import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
+import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
import
org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
import org.osoa.sca.annotations.Reference;
@@ -72,6 +73,10 @@
Map<String, Operation> opMap = new HashMap<String, Operation>();
for (Operation op : javaInterface.getOperations()) {
opMap.put(op.getName(), op);
+ // In the case of @WebMethod, the method name can be different
from the operation name
+ if (op instanceof JavaOperation) {
+ opMap.put(((JavaOperation)op).getJavaMethod().getName(), op);
+ }
if (dataBindingId != null) {
op.setDataBinding(dataBindingId);
op.setWrapperStyle(wrapperStyle);
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?rev=634877&r1=634876&r2=634877&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
Fri Mar 7 16:45:07 2008
@@ -190,21 +190,26 @@
// FIXME: Should it be in the InterfaceContractMapper?
@SuppressWarnings("unchecked")
private static boolean match(Operation operation, Method method) {
- if (!method.getName().equals(operation.getName())) {
- return false;
- }
if (operation instanceof JavaOperation) {
- Method m = ((JavaOperation)operation).getJavaMethod();
+ JavaOperation javaOp = (JavaOperation)operation;
+ Method m = javaOp.getJavaMethod();
+ if (!method.getName().equals(m.getName())) {
+ return false;
+ }
if (method.equals(m)) {
return true;
}
+ } else {
+ if (!method.getName().equals(operation.getName())) {
+ return false;
+ }
}
-
+
// For remotable interface, operation is not overloaded.
- if(operation.getInterface().isRemotable()) {
+ if (operation.getInterface().isRemotable()) {
return true;
}
-
+
Class<?>[] params = method.getParameterTypes();
DataType<List<DataType>> inputType = null;
Modified:
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java?rev=634877&r1=634876&r2=634877&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java
(original)
+++
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java
Fri Mar 7 16:45:07 2008
@@ -196,7 +196,7 @@
*/
private OMElement attachXSIType(ElementInfo childElement, OMElement
element) {
TypeInfo type = childElement.getType();
- if (type != null) {
+ if (type != null && type.getQName() != null) {
OMAttribute attr = element.getAttribute(XSI_TYPE_QNAME);
if (attr == null) {
String typeNS = type.getQName().getNamespaceURI();
Modified:
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java?rev=634877&r1=634876&r2=634877&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
(original)
+++
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
Fri Mar 7 16:45:07 2008
@@ -135,6 +135,7 @@
}
String operationName = getValue(webMethod.operationName(),
operation.getName());
+ operation.setName(operationName);
RequestWrapper requestWrapper =
method.getAnnotation(RequestWrapper.class);
ResponseWrapper responseWrapper =
method.getAnnotation(ResponseWrapper.class);
Modified:
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java?rev=634877&r1=634876&r2=634877&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
(original)
+++
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
Fri Mar 7 16:45:07 2008
@@ -26,6 +26,7 @@
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Interface;
import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
/**
* Contains methods for mapping between an operation in a
@@ -50,6 +51,9 @@
*/
public static Method findMethod(Class<?> implClass, Operation operation)
throws NoSuchMethodException {
String name = operation.getName();
+ if (operation instanceof JavaOperation) {
+ name = ((JavaOperation)operation).getJavaMethod().getName();
+ }
Interface interface1 = operation.getInterface();
if (interface1 != null && interface1.isRemotable()) {
for (Method m : implClass.getMethods()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]