You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2008/03/08 01:45:13 UTC

svn commit: r634877 - in /incubator/tuscany/java/sca/modules: core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/ core/src/main/java/org/apache/tuscany/sca/core/invocation/ databinding-axiom/src/main/java/org/apache/tuscan...

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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org