Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

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=629687&r1=629686&r2=629687&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
 Wed Feb 20 20:11:14 2008
@@ -36,6 +36,8 @@
 import javax.xml.ws.RequestWrapper;
 import javax.xml.ws.ResponseWrapper;
 
+import org.apache.tuscany.sca.interfacedef.DataType;
+import org.apache.tuscany.sca.interfacedef.FaultExceptionMapper;
 import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
@@ -51,6 +53,12 @@
  */
 public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor {
     private static final String JAXB_DATABINDING = 
"javax.xml.bind.JAXBElement";
+    private FaultExceptionMapper faultExceptionMapper;
+
+    public JAXWSJavaInterfaceProcessor(FaultExceptionMapper 
faultExceptionMapper) {
+        super();
+        this.faultExceptionMapper = faultExceptionMapper;
+    }
 
     public JAXWSJavaInterfaceProcessor() {
         super();
@@ -79,6 +87,7 @@
         }
         for (Method method : clazz.getMethods()) {
             Operation operation = operations.get(method.getName());
+            introspectFaultTypes(operation);
 
             // SOAP binding (doc/lit/wrapped|bare or rpc/lit)
             SOAPBinding methodSOAPBinding = 
method.getAnnotation(SOAPBinding.class);
@@ -92,7 +101,7 @@
             // WebMethod
             WebMethod webMethod = method.getAnnotation(WebMethod.class);
             if (webMethod == null) {
-                return;
+                continue;
             }
 
             // Is one way?
@@ -102,7 +111,7 @@
                 assert method.getReturnType() == void.class;
                 operation.setNonBlocking(true);
             }
-            
+
             // Handle BARE mapping
             if (!operation.isWrapperStyle()) {
                 for (int i = 0; i < method.getParameterTypes().length; i++) {
@@ -130,7 +139,7 @@
             RequestWrapper requestWrapper = 
method.getAnnotation(RequestWrapper.class);
             ResponseWrapper responseWrapper = 
method.getAnnotation(ResponseWrapper.class);
             if (requestWrapper == null) {
-                return;
+                continue;
             }
 
             String ns = getValue(requestWrapper.targetNamespace(), tns);
@@ -159,6 +168,14 @@
                                 inputElements, outputElements);
             operation.setWrapper(wrapperInfo);
             // operation.setDataBinding(JAXB_DATABINDING); // could be JAXB or 
SDO
+
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void introspectFaultTypes(Operation operation) {
+        for (DataType exceptionType : operation.getFaultTypes()) {
+            faultExceptionMapper.introspectFaultDataType(exceptionType);
         }
     }
 

Added: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java?rev=629687&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
 Wed Feb 20 20:11:14 2008
@@ -0,0 +1,5 @@
+package org.apache.tuscany.sca.interfacedef.java.jaxws;
+
+public interface Bean<T> {
+    public T getP1();
+}

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java?rev=629687&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
 Wed Feb 20 20:11:14 2008
@@ -0,0 +1,18 @@
+package org.apache.tuscany.sca.interfacedef.java.jaxws;
+
+public class Bean1 {
+    private String p1;
+    private int p2;
+    public String getP1() {
+        return p1;
+    }
+    public void setP1(String p1) {
+        this.p1 = p1;
+    }
+    public int getP2() {
+        return p2;
+    }
+    public void setP2(int p2) {
+        this.p2 = p2;
+    }
+}

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java?rev=629687&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
 Wed Feb 20 20:11:14 2008
@@ -0,0 +1,18 @@
+package org.apache.tuscany.sca.interfacedef.java.jaxws;
+
+public class Bean2 implements Bean<String>{
+    private String p1;
+    private int p2;
+    public String getP1() {
+        return p1;
+    }
+    public void setP1(String p1) {
+        this.p1 = p1;
+    }
+    public int getP2() {
+        return p2;
+    }
+    public void setP2(int p2) {
+        this.p2 = p2;
+    }
+}

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java?rev=629687&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
 Wed Feb 20 20:11:14 2008
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.tuscany.sca.interfacedef.java.jaxws;
+
+import java.util.List;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+
+/**
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED]
+public class MyServiceImpl {
+    
+    @WebMethod
+    public <T extends Bean1> T getBean(T b, Bean2 b2) {
+        return null;
+    }
+    
+    @WebMethod
+    public List<? extends Bean1> getBeans() {
+        return null;
+    }
+    
+}

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
 Wed Feb 20 20:11:14 2008
@@ -22,6 +22,7 @@
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
+import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -67,7 +68,7 @@
 
     public void introspectInterface(JavaInterface javaInterface, Class<?> 
clazz) throws InvalidInterfaceException {
         javaInterface.setJavaClass(clazz);
-        
+
         boolean remotable = clazz.isAnnotationPresent(Remotable.class);
         javaInterface.setRemotable(remotable);
 
@@ -90,7 +91,7 @@
             extension.visitInterface(javaInterface);
         }
     }
-    
+
     private Class<?>[] getActualTypes(Type[] types, Class<?>[] rawTypes, 
Map<String, Type> typeBindings) {
         Class<?>[] actualTypes = new Class<?>[types.length];
         for (int i = 0; i < actualTypes.length; i++) {
@@ -98,7 +99,7 @@
         }
         return actualTypes;
     }
-    
+
     private Class<?> getActualType(Type type, Class<?> rawType, Map<String, 
Type> typeBindings) {
         if (type instanceof TypeVariable<?>) {
             TypeVariable<?> typeVariable = (TypeVariable<?>)type;
@@ -112,10 +113,10 @@
 
     private <T> List<Operation> getOperations(Class<T> clazz, boolean 
remotable, boolean conversational, String ns)
         throws InvalidInterfaceException {
-        
+
         Type[] genericInterfaces = clazz.getGenericInterfaces();
         Map<String, Type> typeBindings = new HashMap<String, Type>();
-        for (Type genericInterface: genericInterfaces) {
+        for (Type genericInterface : genericInterfaces) {
             if (genericInterface instanceof ParameterizedType) {
                 ParameterizedType parameterizedType = 
(ParameterizedType)genericInterface;
                 TypeVariable<?>[] typeVariables = 
((Class<?>)parameterizedType.getRawType()).getTypeParameters();
@@ -125,7 +126,7 @@
                 }
             }
         }
-        
+
         Method[] methods = clazz.getMethods();
         List<Operation> operations = new ArrayList<Operation>(methods.length);
         Set<String> names = remotable ? new HashSet<String>() : null;
@@ -143,9 +144,11 @@
             }
 
             Class<?> returnType = getActualType(method.getGenericReturnType(), 
method.getReturnType(), typeBindings);
-            Class<?>[] parameterTypes = 
getActualTypes(method.getGenericParameterTypes(), method.getParameterTypes(), 
typeBindings);
-            Class<?>[] faultTypes = 
getActualTypes(method.getGenericExceptionTypes(), method.getExceptionTypes(), 
typeBindings);
-            
+            Class<?>[] parameterTypes =
+                getActualTypes(method.getGenericParameterTypes(), 
method.getParameterTypes(), typeBindings);
+            Class<?>[] faultTypes =
+                getActualTypes(method.getGenericExceptionTypes(), 
method.getExceptionTypes(), typeBindings);
+
             boolean nonBlocking = method.isAnnotationPresent(OneWay.class);
             ConversationSequence conversationSequence = 
ConversationSequence.CONVERSATION_NONE;
             if (method.isAnnotationPresent(EndsConversation.class)) {
@@ -173,9 +176,12 @@
             List<DataType> faultDataTypes = new 
ArrayList<DataType>(faultTypes.length);
             for (Class<?> faultType : faultTypes) {
                 // Only add checked exceptions
-                if (Exception.class.isAssignableFrom(faultType) && 
(!RuntimeException.class.isAssignableFrom(faultType))) {
+                // JAXWS Spec v2.1 section 3.7 says RemoteException should not 
be mapped
+                if (Exception.class.isAssignableFrom(faultType) && 
(!RuntimeException.class.isAssignableFrom(faultType))
+                    && (!RemoteException.class.isAssignableFrom(faultType))) {
                     XMLType xmlFaultType = new XMLType(new QName(ns, 
faultType.getSimpleName()), null);
-                    faultDataTypes.add(new 
DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, faultType, xmlFaultType));
+                    DataType<XMLType> faultDataType = new 
DataTypeImpl<XMLType>(faultType, xmlFaultType);
+                    faultDataTypes.add(new 
DataTypeImpl<DataType>(UNKNOWN_DATABINDING, faultType, faultDataType));
                 }
             }
 

Modified: 
incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java
 Wed Feb 20 20:11:14 2008
@@ -72,10 +72,10 @@
 
         List<DataType> faultTypes = baseInt.getFaultTypes();
         assertEquals(1, faultTypes.size());
-        DataType<XMLType> fault0 = faultTypes.get(0);
+        DataType<DataType<XMLType>> fault0 = faultTypes.get(0);
         assertEquals(IOException.class, fault0.getPhysical());
         element = new 
QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/";, 
"IOException");
-        assertEquals(element, fault0.getLogical().getElementName());
+        assertEquals(element, 
fault0.getLogical().getLogical().getElementName());
     }
 
     public void testUnregister() throws Exception {

Modified: 
incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
 Wed Feb 20 20:11:14 2008
@@ -180,8 +180,8 @@
                     throw new InvalidWSDLException("The fault message MUST 
have a single part");
                 }
                 Part part = (Part)faultParts.get(0);
-                WSDLPart wsdlPart = new WSDLPart(part, FaultException.class);
-                faultTypes.add(wsdlPart.getDataType());
+                WSDLPart wsdlPart = new WSDLPart(part, Object.class);
+                faultTypes.add(new 
DataTypeImpl<DataType>(FaultException.class, wsdlPart.getDataType()));
             }
         }
         return faultTypes;

Added: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java?rev=629687&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
 Wed Feb 20 20:11:14 2008
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.tuscany.sca.interfacedef;
+
+/**
+ * This interface represents the mapping between WSDL faults and Java 
exceptions
+ * 
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED]("unchecked")
+public interface FaultExceptionMapper {
+    /**
+     * Introspect an exception class to find out the fault data type following 
the WSDL2Java
+     * mapping rules. The result will be populated into the logical type of 
the exception data
+     * type
+     * 
+     * @param exceptionDataType The data type representing a java exception 
class
+     * @return true if the introspection can recoganize the exception data 
type 
+     */
+    boolean introspectFaultDataType(DataType<DataType> exceptionDataType);
+    
+    /**
+     * Create a java exception to wrap the fault data
+     * 
+     * @param exceptionType The DataType for the exception
+     * @param message message for the exception
+     * @param faultInfo The fault data
+     * @param cause of the exception
+     * @return An instance of java exception to represent the fault
+     */
+    Throwable wrapFaultInfo(DataType<DataType> exceptionType, String message, 
Object faultInfo, Throwable cause);
+
+    /**
+     * Retrieve the fault info from a java exception
+     * 
+     * @param exception The java exception that represents the fault data
+     * @param faultBeanClass
+     * 
+     * @return The fault data
+     */
+    Object getFaultInfo(Throwable exception, Class<?> faultBeanClass);
+}

Propchange: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
 Wed Feb 20 20:11:14 2008
@@ -135,6 +135,11 @@
                         if (d.getDataBinding() == null) {
                             d.setDataBinding(dataBinding);
                         }
+                        DataType ft = (DataType) d.getLogical();
+                        if (ft.getDataBinding() == null) {
+                            ft.setDataBinding(dataBinding);
+                        }
+
                     }
                 }
                 if (op.isWrapperStyle()) {
@@ -183,6 +188,7 @@
             if (faultTypes != null) {
                 for (DataType d : faultTypes) {
                     setDataBinding(d, dataBinding);
+                    setDataBinding((DataType) d.getLogical(), dataBinding);
                 }
             }
             if (op.isWrapperStyle()) {

Modified: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java
 Wed Feb 20 20:11:14 2008
@@ -29,7 +29,7 @@
 public class FaultException extends Exception {
     private static final long serialVersionUID = -8002583655240625792L;
     private Object faultInfo;
-    private QName logical;
+    private QName faultName;
 
     /**
      * @param message
@@ -57,23 +57,23 @@
         return faultInfo;
     }
 
-    public QName getLogical() {
-        return logical;
+    public QName getFaultName() {
+        return faultName;
     }
 
-    public void setLogical(QName logical) {
-        this.logical = logical;
+    public void setFaultName(QName logical) {
+        this.faultName = logical;
     }
 
     public boolean isMatchingType(Object type) {
-        if (logical == null) {
+        if (faultName == null) {
             return false;
         }
 
-        if ((type instanceof QName) && logical.equals(type)) {
+        if ((type instanceof QName) && faultName.equals(type)) {
             return true;
         }
-        if (type instanceof XMLType && 
logical.equals(((XMLType)type).getElementName())) {
+        if (type instanceof XMLType && 
faultName.equals(((XMLType)type).getElementName())) {
             return true;
         }
         return false;

Modified: incubator/tuscany/java/sca/modules/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/pom.xml?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/pom.xml Wed Feb 20 20:11:14 2008
@@ -92,6 +92,7 @@
                 <module>host-tomcat</module>
                 <module>interface</module>
                 <module>interface-java</module>
+                <module>interface-java-jaxws</module>
                 <module>interface-java-xml</module>
                 <module>interface-wsdl</module>
                 <module>interface-wsdl-java2wsdl</module>

Modified: incubator/tuscany/java/sca/tools/wsdl2java/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/wsdl2java/pom.xml?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/wsdl2java/pom.xml (original)
+++ incubator/tuscany/java/sca/tools/wsdl2java/pom.xml Wed Feb 20 20:11:14 2008
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you 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.
 -->
 <project>
     <modelVersion>4.0.0</modelVersion>
@@ -29,31 +29,31 @@
     <name>Apache Tuscany SCA WSDL2Java Tool</name>
 
     <dependencies>
-            <dependency>
+        <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-sca-api</artifactId>
             <version>1.2-incubating-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.tuscany.sdo</groupId>
             <artifactId>tuscany-sdo-impl</artifactId>
             <version>1.0-incubating-SNAPSHOT</version>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.tuscany.sdo</groupId>
             <artifactId>tuscany-sdo-tools</artifactId>
             <version>1.0-incubating-SNAPSHOT</version>
         </dependency>
-        
+
         <dependency>
             <groupId>com.sun.xml.bind</groupId>
             <artifactId>jaxb-xjc</artifactId>
             <version>2.1.4</version>
         </dependency>
-        
+
         <dependency>
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
@@ -191,6 +191,25 @@
     <build>
         <plugins>
             <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>1.0</version>
+                <executions>
+                    <execution>
+                        <id>add-test-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-test-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/sdo-source</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.tuscany.sdo</groupId>
                 <artifactId>tuscany-sdo-plugin</artifactId>
                 <version>1.0-incubating-SNAPSHOT</version>
@@ -223,12 +242,12 @@
             <name>java.net Maven 1.x Repository</name>
             <url>http://download.java.net/maven/1</url>
             <layout>legacy</layout>
-        </repository>    
+        </repository>
         <repository>
             <!-- <id>eclipse.emf</id>
-            <url>http://download.eclipse.org/tools/emf/maven2</url> -->
+                <url>http://download.eclipse.org/tools/emf/maven2</url> -->
             <!-- <id>osuosl.org</id>
-            <url>http://ftp.osuosl.org/pub/eclipse/tools/emf/maven2</url> -->
+                <url>http://ftp.osuosl.org/pub/eclipse/tools/emf/maven2</url> 
-->
             <!-- temporarily using indiana state univ as eclipse site diesnt 
have 2.2.2 at the moment -->
             <id>indiana</id>
             <url>http://ftp.ussg.iu.edu/eclipse/modeling/emf/emf/maven2/</url>

Modified: 
incubator/tuscany/java/sca/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java?rev=629687&r1=629686&r2=629687&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
 (original)
+++ 
incubator/tuscany/java/sca/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
 Wed Feb 20 20:11:14 2008
@@ -295,8 +295,12 @@
             stream.println();
             stream.println("package " + packageName + ";");
             stream.println();
-            stream.println("import javax.xml.namespace.QName; ");
+            stream.println("import javax.xml.ws.WebFault;");
             stream.println();
+            stream.println("@WebFault(name=\"" + 
faultMsgPartElementQName.getLocalPart()
+                + "\", targetNamespace=\""
+                + faultMsgPartElementQName.getNamespaceURI()
+                + "\")");
             stream.println("public class " + faultWrapperClassName  + " 
extends Exception {");
             stream.println();
             stream.println("    private " + faultClassName + " fault;");
@@ -310,9 +314,6 @@
             stream.println("        super(message, cause);");
             stream.println("        this.fault = fault;");
             stream.println("    }");
-            stream.println();
-            stream.println("    public static QName FAULT_ELEMENT = new 
QName(\"" + faultMsgPartElementQName.getNamespaceURI() + 
-                    "\",\"" + faultMsgPartElementQName.getLocalPart() + 
"\");");
             stream.println();
             stream.println("    public " + faultClassName + " getFaultInfo() 
{");
             stream.println("        return this.fault;");



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to