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 2006/09/22 22:49:00 UTC

svn commit: r449084 - in /incubator/tuscany/java/sca: kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ kernel/spi/src/main/java/org/apache/tuscany/spi/model/ services/databinding/databinding-axiom/ services/databinding/databinding-axiom/src/main/ja...

Author: rfeng
Date: Fri Sep 22 13:48:58 2006
New Revision: 449084

URL: http://svn.apache.org/viewvc?view=rev&rev=449084
Log:
Refactor the IDL Wrapper/Element/Type into SPI to be IDL-independent 

Added:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java   (with props)
Modified:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
    incubator/tuscany/java/sca/services/databinding/databinding-axiom/pom.xml
    incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java
    incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElementWrapperHandler.java
    incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/test/java/org/apache/tuscany/databinding/axiom/OMElementWrapperTransformerTestCase.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/pom.xml
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/Java2SimpleTypeTransformer.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleType2JavaTransformer.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtension.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Input2InputTransformer.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Output2OutputTransformer.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/SimpleTypeMapper.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/WrapperHandler.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/impl/DataBindingInteceptor.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMWrapperHandler.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Object2Node.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtensionTestCase.java
    incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/idl/IDLTransformerTestCase.java
    incubator/tuscany/java/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandler.java
    incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOSimpleTypeMapper.java
    incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java
    incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java
    incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImplTestCase.java
    incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/WSDLOperationTestCase.java

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java?view=auto&rev=449084
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java Fri Sep 22 13:48:58 2006
@@ -0,0 +1,54 @@
+/*
+ * 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.spi.idl;
+
+import javax.xml.namespace.QName;
+
+/**
+ * An abstraction of XML schema elements
+ */
+public class ElementInfo {
+    private QName name;
+    private TypeInfo type;
+
+    /**
+     * @param name
+     * @param type
+     */
+    public ElementInfo(QName name, TypeInfo type) {
+        super();
+        this.name = name;
+        this.type = type;
+    }
+
+    /**
+     * @return the name
+     */
+    public QName getQName() {
+        return name;
+    }
+
+    /**
+     * @return the type
+     */
+    public TypeInfo getType() {
+        return type;
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java Fri Sep 22 13:48:58 2006
@@ -24,6 +24,8 @@
  * @version $Rev$ $Date$
  */
 public class OverloadedOperationException extends InvalidServiceContractException {
+    private static final long serialVersionUID = -4658711318608885638L;
+
     public OverloadedOperationException() {
     }
 

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java?view=auto&rev=449084
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java Fri Sep 22 13:48:58 2006
@@ -0,0 +1,66 @@
+/*
+ * 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.spi.idl;
+
+import javax.xml.namespace.QName;
+
+/**
+ * An abstraction of XML schema types
+ */
+public class TypeInfo {
+    private QName name;
+
+    private boolean isSimpleType;
+
+    private TypeInfo baseType;
+
+    /**
+     * @param name
+     * @param isSimpleType
+     */
+    public TypeInfo(QName name, boolean isSimpleType, TypeInfo baseType) {
+        super();
+        this.name = name;
+        this.isSimpleType = isSimpleType;
+        this.baseType = baseType;
+    }
+
+    /**
+     * @return the isSimpleType
+     */
+    public boolean isSimpleType() {
+        return isSimpleType;
+    }
+
+    /**
+     * @return the name
+     */
+    public QName getQName() {
+        return name;
+    }
+
+    /**
+     * @return the baseType
+     */
+    public TypeInfo getBaseType() {
+        return baseType;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java?view=auto&rev=449084
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java Fri Sep 22 13:48:58 2006
@@ -0,0 +1,117 @@
+/*
+ * 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.spi.idl;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.spi.model.DataType;
+
+/**
+ * The "Wrapper Style" WSDL operation is defined by The Java API for XML-Based Web Services (JAX-WS) 2.0
+ * specification, section 2.3.1.2 Wrapper Style.
+ * <p>
+ * A WSDL operation qualifies for wrapper style mapping only if the following criteria are met:
+ * <ul>
+ * <li>(i) The operation’s input and output messages (if present) each contain only a single part
+ * <li>(ii) The input message part refers to a global element declaration whose localname is equal to the operation
+ * name
+ * <li>(iii) The output message part refers to a global element declaration
+ * <li>(iv) The elements referred to by the input and output message parts (henceforth referred to as wrapper
+ * elements) are both complex types defined using the xsd:sequence compositor
+ * <li>(v) The wrapper elements only contain child elements, they must not contain other structures such as
+ * wildcards (element or attribute), xsd:choice, substitution groups (element references are not permitted) or
+ * attributes; furthermore, they must not be nillable.
+ * </ul>
+ */
+public class WrapperInfo {
+    private ElementInfo inputWrapperElement;
+
+    private ElementInfo outputWrapperElement;
+
+    private List<ElementInfo> inputChildElements;
+
+    private List<ElementInfo> outputChildElements;
+
+    private DataType<List<DataType<QName>>> unwrappedInputType;
+
+    private DataType<QName> unwrappedOutputType;
+
+    /**
+     * @param inputWrapperElement
+     * @param outputWrapperElement
+     * @param inputElements
+     * @param outputElements
+     * @param unwrappedInputType
+     * @param unwrappedOutputType
+     */
+    public WrapperInfo(ElementInfo inputWrapperElement, ElementInfo outputWrapperElement, List<ElementInfo> inputElements, List<ElementInfo> outputElements, DataType<List<DataType<QName>>> unwrappedInputType, DataType<QName> unwrappedOutputType) {
+        super();
+        this.inputWrapperElement = inputWrapperElement;
+        this.outputWrapperElement = outputWrapperElement;
+        this.inputChildElements = inputElements;
+        this.outputChildElements = outputElements;
+        this.unwrappedInputType = unwrappedInputType;
+        this.unwrappedOutputType = unwrappedOutputType;
+    }
+    
+    /**
+     * @return the inputElements
+     */
+    public List<ElementInfo> getInputChildElements() {
+        return inputChildElements;
+    }
+
+    /**
+     * @return the inputWrapperElement
+     */
+    public ElementInfo getInputWrapperElement() {
+        return inputWrapperElement;
+    }
+
+    /**
+     * @return the outputElements
+     */
+    public List<ElementInfo> getOutputChildElements() {
+        return outputChildElements;
+    }
+
+    /**
+     * @return the outputWrapperElement
+     */
+    public ElementInfo getOutputWrapperElement() {
+        return outputWrapperElement;
+    }
+
+    /**
+     * @return the unwrappedInputType
+     */
+    public DataType<List<DataType<QName>>> getUnwrappedInputType() {
+        return unwrappedInputType;
+    }
+
+    /**
+     * @return the unwrappedOutputType
+     */
+    public DataType<QName> getUnwrappedOutputType() {
+        return unwrappedOutputType;
+    }
+}
\ No newline at end of file

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java Fri Sep 22 13:48:58 2006
@@ -23,6 +23,8 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.tuscany.spi.idl.WrapperInfo;
+
 /**
  * Represents an operation that is part of a service contract. The type paramter of this operation identifies the
  * logical type system for all data types.
@@ -49,6 +51,9 @@
     private boolean callback;
 
     private String dataBinding;
+    
+    private boolean wrapperStyle;
+    private WrapperInfo wrapper;
 
     /**
      * Construct a minimally-specified operation
@@ -293,5 +298,38 @@
         }
     }
 
+    /**
+     * Returns true if the operation is wrapper style
+     * @return the wrapperStyle
+     */
+    public boolean isWrapperStyle() {
+        return wrapperStyle;
+    }
+    
+    /**
+     * Return the Wrapper information for this operation is it's wrapper style
+     * @return The Wrapper
+     */
+    public WrapperInfo getWrapper() {
+        if (!isWrapperStyle()) {
+            throw new IllegalStateException("The operation is not wrapper style.");
+        } else {
+            return wrapper;
+        }
+    }
+
+    /**
+     * @param wrapper the wrapper to set
+     */
+    public void setWrapper(WrapperInfo wrapper) {
+        this.wrapper = wrapper;
+    }
+
+    /**
+     * @param wrapperStyle the wrapperStyle to set
+     */
+    public void setWrapperStyle(boolean wrapperStyle) {
+        this.wrapperStyle = wrapperStyle;
+    }
 
 }

Modified: incubator/tuscany/java/sca/services/databinding/databinding-axiom/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/pom.xml?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-axiom/pom.xml (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-axiom/pom.xml Fri Sep 22 13:48:58 2006
@@ -47,7 +47,13 @@
             <version>${pom.version}</version>
             <scope>compile</scope>
         </dependency>
-		<dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca.services.idl</groupId>
+            <artifactId>wsdl</artifactId>
+            <version>${pom.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
 			<groupId>org.apache.ws.commons.axiom</groupId>
 			<artifactId>axiom-api</artifactId>
 		</dependency>

Modified: incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java Fri Sep 22 13:48:58 2006
@@ -24,7 +24,7 @@
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.Transformer;
 import org.apache.tuscany.databinding.extension.Java2SimpleTypeTransformer;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.idl.ElementInfo;
 import org.osoa.sca.annotations.Service;
 
 /**
@@ -40,7 +40,7 @@
         factory = OMAbstractFactory.getOMFactory();
     }
 
-    protected OMElement createElement(XmlSchemaElement element, String text, TransformationContext context) {
+    protected OMElement createElement(ElementInfo element, String text, TransformationContext context) {
         OMElement omElement = factory.createOMElement(element.getQName(), null);
         factory.createOMText(omElement, text);
         return omElement;

Modified: incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElementWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElementWrapperHandler.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElementWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElementWrapperHandler.java Fri Sep 22 13:48:58 2006
@@ -26,7 +26,7 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.idl.WrapperHandler;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.idl.ElementInfo;
 
 /**
  * OMElement wrapper handler implementation
@@ -40,12 +40,12 @@
         this.factory = OMAbstractFactory.getOMFactory();
     }
 
-    public OMElement create(XmlSchemaElement element, TransformationContext context) {
+    public OMElement create(ElementInfo element, TransformationContext context) {
         OMElement wrapper = factory.createOMElement(element.getQName(), null);
         return wrapper;
     }
 
-    public Object getChild(OMElement wrapper, int i, XmlSchemaElement element) {
+    public Object getChild(OMElement wrapper, int i, ElementInfo element) {
         int index = 0;
         for (Iterator e = wrapper.getChildElements(); e.hasNext();) {
             OMElement child = (OMElement) e.next();
@@ -59,7 +59,7 @@
         return null;
     }
 
-    public void setChild(OMElement wrapper, int i, XmlSchemaElement childElement, Object value) {
+    public void setChild(OMElement wrapper, int i, ElementInfo childElement, Object value) {
         wrapper.addChild((OMElement) value);
     }
 

Modified: incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/test/java/org/apache/tuscany/databinding/axiom/OMElementWrapperTransformerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/test/java/org/apache/tuscany/databinding/axiom/OMElementWrapperTransformerTestCase.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/test/java/org/apache/tuscany/databinding/axiom/OMElementWrapperTransformerTestCase.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/test/java/org/apache/tuscany/databinding/axiom/OMElementWrapperTransformerTestCase.java Fri Sep 22 13:48:58 2006
@@ -79,7 +79,8 @@
         Definition definition = registry.loadDefinition(null, url);
         PortType portType = definition.getPortType(PORTTYPE_NAME);
         Operation operation = portType.getOperation("checkOrderStatus", null, null);
-        WSDLOperation op = new WSDLOperation(operation, AxiomDataBinding.NAME, registry.getSchemaRegistry());
+        WSDLOperation wsdlOp = new WSDLOperation(operation, AxiomDataBinding.NAME, registry.getSchemaRegistry());
+        org.apache.tuscany.spi.model.Operation<?> op = wsdlOp.getOperation();
         Assert.assertTrue(op.isWrapperStyle());
 
         MediatorImpl m = new MediatorImpl();
@@ -115,8 +116,8 @@
 
         TransformationContext context1 = new TransformationContextImpl();
         DataType<DataType> sourceType = new DataType<DataType>("idl:output", Object.class, op.getOutputType());
-        sourceType.setMetadata(WSDLOperation.class.getName(), op.getOutputType().getMetadata(
-                WSDLOperation.class.getName()));
+        sourceType.setMetadata(org.apache.tuscany.spi.model.Operation.class.getName(), op.getOutputType().getMetadata(
+                org.apache.tuscany.spi.model.Operation.class.getName()));
         
         context1.setSourceDataType(sourceType);
         DataType<DataType> targetType =

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/pom.xml?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/pom.xml (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/pom.xml Fri Sep 22 13:48:58 2006
@@ -39,14 +39,8 @@
             <groupId>org.apache.tuscany.sca.services.idl</groupId>
             <artifactId>wsdl</artifactId>
             <version>${pom.version}</version>
-            <scope>compile</scope>
+            <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.ws.commons</groupId>
-            <artifactId>XmlSchema</artifactId>
-            <scope>compile</scope>
-        </dependency>
-
         <dependency>
             <groupId>woodstox</groupId>
             <artifactId>wstx-asl</artifactId>

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/Java2SimpleTypeTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/Java2SimpleTypeTransformer.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/Java2SimpleTypeTransformer.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/Java2SimpleTypeTransformer.java Fri Sep 22 13:48:58 2006
@@ -21,8 +21,8 @@
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.idl.SimpleTypeMapper;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
+import org.apache.tuscany.spi.idl.ElementInfo;
+import org.apache.tuscany.spi.idl.TypeInfo;
 
 /**
  * Transformer to convert data from a simple java object to a databinding's representation
@@ -41,9 +41,9 @@
     }
 
     public T transform(Object source, TransformationContext context) {
-        XmlSchemaElement element =
-                (XmlSchemaElement) context.getTargetDataType().getMetadata(XmlSchemaElement.class.getName());
-        XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType) element.getSchemaType();
+        ElementInfo element =
+                (ElementInfo) context.getTargetDataType().getMetadata(ElementInfo.class.getName());
+        TypeInfo simpleType = (TypeInfo) element.getType();
         String text = mapper.toXMLLiteral(simpleType, source, context);
         return createElement(element, text, context);
     }
@@ -56,6 +56,6 @@
         return 10;
     }
 
-    protected abstract T createElement(XmlSchemaElement element, String literal, TransformationContext context);
+    protected abstract T createElement(ElementInfo element, String literal, TransformationContext context);
 
 }

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleType2JavaTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleType2JavaTransformer.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleType2JavaTransformer.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleType2JavaTransformer.java Fri Sep 22 13:48:58 2006
@@ -21,8 +21,8 @@
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.idl.SimpleTypeMapper;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
+import org.apache.tuscany.spi.idl.ElementInfo;
+import org.apache.tuscany.spi.idl.TypeInfo;
 
 /**
  * Transformer to convert data from a databinding's representation of simple types to Java Objects
@@ -41,9 +41,9 @@
     }
 
     public Object transform(T source, TransformationContext context) {
-        XmlSchemaElement element =
-                (XmlSchemaElement) context.getSourceDataType().getMetadata(XmlSchemaElement.class.getName());
-        XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType) element.getSchemaType();
+        ElementInfo element =
+                (ElementInfo) context.getSourceDataType().getMetadata(ElementInfo.class.getName());
+        TypeInfo simpleType = (TypeInfo) element.getType();
         return mapper.toJavaObject(simpleType, getText(source), context);
     }
 

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtension.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtension.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtension.java Fri Sep 22 13:48:58 2006
@@ -19,34 +19,6 @@
 
 package org.apache.tuscany.databinding.extension;
 
-import static org.apache.ws.commons.schema.constants.Constants.XSD_BASE64;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_BOOLEAN;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_BYTE;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_DATE;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_DATETIME;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_DAY;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_DECIMAL;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_DOUBLE;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_DURATION;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_FLOAT;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_HEXBIN;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_INT;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_INTEGER;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_LONG;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_MONTH;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_MONTHDAY;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_NOTATION;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_QNAME;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_SHORT;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_STRING;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_TIME;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_UNSIGNEDBYTE;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_UNSIGNEDINT;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_UNSIGNEDLONG;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_UNSIGNEDSHORT;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_YEAR;
-import static org.apache.ws.commons.schema.constants.Constants.XSD_YEARMONTH;
-
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.HashMap;
@@ -61,14 +33,62 @@
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.idl.SimpleTypeMapper;
 import org.apache.tuscany.databinding.util.XSDDataTypeConverter;
-import org.apache.ws.commons.schema.XmlSchemaCollection;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
+import org.apache.tuscany.spi.idl.TypeInfo;
 
 public class SimpleTypeMapperExtension extends XSDDataTypeConverter implements SimpleTypeMapper {
     private DatatypeFactory factory;
 
     public static final String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
-
+    public static final QName XSD_STRING = new QName(URI_2001_SCHEMA_XSD, "string");
+    public static final QName XSD_BOOLEAN = new QName(URI_2001_SCHEMA_XSD, "boolean");
+    public static final QName XSD_DOUBLE = new QName(URI_2001_SCHEMA_XSD, "double");
+    public static final QName XSD_FLOAT = new QName(URI_2001_SCHEMA_XSD, "float");
+    public static final QName XSD_INT = new QName(URI_2001_SCHEMA_XSD, "int");
+    public static final QName XSD_INTEGER = new QName(URI_2001_SCHEMA_XSD, "integer");
+    public static final QName XSD_LONG = new QName(URI_2001_SCHEMA_XSD, "long");
+    public static final QName XSD_SHORT = new QName(URI_2001_SCHEMA_XSD, "short");
+    public static final QName XSD_BYTE = new QName(URI_2001_SCHEMA_XSD, "byte");
+    public static final QName XSD_DECIMAL = new QName(URI_2001_SCHEMA_XSD, "decimal");
+    public static final QName XSD_BASE64 = new QName(URI_2001_SCHEMA_XSD, "base64Binary");
+    public static final QName XSD_HEXBIN = new QName(URI_2001_SCHEMA_XSD, "hexBinary");
+    public static final QName XSD_ANYSIMPLETYPE = new QName(URI_2001_SCHEMA_XSD, "anySimpleType");
+    public static final QName XSD_ANYTYPE = new QName(URI_2001_SCHEMA_XSD, "anyType");
+    public static final QName XSD_ANY = new QName(URI_2001_SCHEMA_XSD, "any");
+    public static final QName XSD_QNAME = new QName(URI_2001_SCHEMA_XSD, "QName");
+    public static final QName XSD_DATETIME = new QName(URI_2001_SCHEMA_XSD, "dateTime");
+    public static final QName XSD_DATE = new QName(URI_2001_SCHEMA_XSD, "date");
+    public static final QName XSD_TIME = new QName(URI_2001_SCHEMA_XSD, "time");
+
+    public static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString");
+    public static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token");
+
+    public static final QName XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, "unsignedLong");
+    public static final QName XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, "unsignedInt");
+    public static final QName XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, "unsignedShort");
+    public static final QName XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, "unsignedByte");
+    public static final QName XSD_POSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "positiveInteger");
+    public static final QName XSD_NEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "negativeInteger");
+    public static final QName XSD_NONNEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonNegativeInteger");
+    public static final QName XSD_NONPOSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonPositiveInteger");
+
+    public static final QName XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, "gYearMonth");
+    public static final QName XSD_MONTHDAY = new QName(URI_2001_SCHEMA_XSD, "gMonthDay");
+    public static final QName XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, "gYear");
+    public static final QName XSD_MONTH = new QName(URI_2001_SCHEMA_XSD, "gMonth");
+    public static final QName XSD_DAY = new QName(URI_2001_SCHEMA_XSD, "gDay");
+    public static final QName XSD_DURATION = new QName(URI_2001_SCHEMA_XSD, "duration");
+
+    public static final QName XSD_NAME = new QName(URI_2001_SCHEMA_XSD, "Name");
+    public static final QName XSD_NCNAME = new QName(URI_2001_SCHEMA_XSD, "NCName");
+    public static final QName XSD_NMTOKEN = new QName(URI_2001_SCHEMA_XSD, "NMTOKEN");
+    public static final QName XSD_NMTOKENS = new QName(URI_2001_SCHEMA_XSD, "NMTOKENS");
+    public static final QName XSD_NOTATION = new QName(URI_2001_SCHEMA_XSD, "NOTATION");
+    public static final QName XSD_ENTITY = new QName(URI_2001_SCHEMA_XSD, "ENTITY");
+    public static final QName XSD_ENTITIES = new QName(URI_2001_SCHEMA_XSD, "ENTITIES");
+    public static final QName XSD_IDREF = new QName(URI_2001_SCHEMA_XSD, "IDREF");
+    public static final QName XSD_IDREFS = new QName(URI_2001_SCHEMA_XSD, "IDREFS");
+    public static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI");
+    
     private static final String[] typeNames =
             { "string", "boolean", "double", "float", "int", "integer", "long", "short", "byte", "decimal",
                     "base64Binary", "hexBinary", "anySimpleType", "anyType", "any", "QName", "dateTime", "date",
@@ -77,16 +97,12 @@
                     "gYearMonth", "gMonthDay", "gYear", "gMonth", "gDay", "duration", "Name", "NCName", "NMTOKEN",
                     "NMTOKENS", "NOTATION", "ENTITY", "ENTITIES", "IDREF", "IDREFS", "anyURI", "language", "ID" };
 
-    public static final Map<String, XmlSchemaSimpleType> XSD_SIMPLE_TYPES = new HashMap<String, XmlSchemaSimpleType>();
+    public static final Map<String, TypeInfo> XSD_SIMPLE_TYPES = new HashMap<String, TypeInfo>();
 
     static {
-        XmlSchemaCollection collection = new XmlSchemaCollection();
         for (String type : typeNames) {
-            XmlSchemaSimpleType simpleType =
-                    (XmlSchemaSimpleType) collection.getTypeByQName(new QName(URI_2001_SCHEMA_XSD, type));
-            if (simpleType != null) {
-                XSD_SIMPLE_TYPES.put(type, simpleType);
-            }
+            TypeInfo simpleType = new TypeInfo(new QName(URI_2001_SCHEMA_XSD, type), true, null);
+            XSD_SIMPLE_TYPES.put(type, simpleType);
         }
     }
 
@@ -99,7 +115,7 @@
         }
     }
 
-    public Object toJavaObject(XmlSchemaSimpleType simpleType, String value, TransformationContext context) {
+    public Object toJavaObject(TypeInfo simpleType, String value, TransformationContext context) {
         /**
          * <ul>
          * <li>xsd:string --- java.lang.String
@@ -129,9 +145,9 @@
          * </ul>
          */
 
-        XmlSchemaSimpleType baseType = simpleType;
-        while (baseType.getBaseSchemaType() != null) {
-            baseType = (XmlSchemaSimpleType) baseType.getBaseSchemaType();
+        TypeInfo baseType = simpleType;
+        while (baseType.getBaseType() != null) {
+            baseType = (TypeInfo) baseType.getBaseType();
         }
         QName type = baseType.getQName();
         if (type.equals(XSD_STRING)) {
@@ -178,11 +194,11 @@
             return parseBase64Binary(value);
         } else if (type.equals(XSD_QNAME)) {
             NamespaceContext namespaceContext =
-                (NamespaceContext) ((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
+                    (NamespaceContext) ((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
             return parseQName(value, namespaceContext);
         } else if (type.equals(XSD_NOTATION)) {
             NamespaceContext namespaceContext =
-                (NamespaceContext) ((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
+                    (NamespaceContext) ((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
             return parseQName(value, namespaceContext);
         } else if (type.equals(XSD_YEAR)) {
             return factory.newXMLGregorianCalendar(value);
@@ -199,7 +215,7 @@
         }
     }
 
-    public String toXMLLiteral(XmlSchemaSimpleType simpleType, Object obj, TransformationContext context) {
+    public String toXMLLiteral(TypeInfo simpleType, Object obj, TransformationContext context) {
         if (obj instanceof Float || obj instanceof Double) {
             if (obj instanceof Float) {
                 return printDouble(((Float) obj).floatValue());
@@ -220,10 +236,10 @@
             } else if (simpleType.getQName().equals(XSD_HEXBIN)) {
                 return printHexBinary((byte[]) obj);
             }
-        } else if(obj instanceof QName) {
+        } else if (obj instanceof QName) {
             NamespaceContext namespaceContext =
-                (NamespaceContext) ((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
-           return printQName((QName) obj, namespaceContext);
+                    (NamespaceContext) ((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
+            return printQName((QName) obj, namespaceContext);
         }
         return obj.toString();
     }

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Input2InputTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Input2InputTransformer.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Input2InputTransformer.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Input2InputTransformer.java Fri Sep 22 13:48:58 2006
@@ -31,10 +31,11 @@
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.Transformer;
 import org.apache.tuscany.databinding.extension.TransformerExtension;
-import org.apache.tuscany.idl.wsdl.WSDLOperation;
 import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.idl.ElementInfo;
+import org.apache.tuscany.spi.idl.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.model.Operation;
 import org.osoa.sca.annotations.Service;
 
 /**
@@ -106,7 +107,7 @@
     @SuppressWarnings("unchecked")
     public Object[] transform(Object[] source, TransformationContext context) {
         DataType<List<DataType<?>>> sourceType = context.getSourceDataType();
-        WSDLOperation sourceOp = (WSDLOperation) sourceType.getMetadata(WSDLOperation.class.getName());
+        Operation<?> sourceOp = (Operation<?>) sourceType.getMetadata(Operation.class.getName());
         boolean sourceWrapped = (sourceOp != null && sourceOp.isWrapperStyle());
 
         WrapperHandler sourceWrapperHandler = null;
@@ -115,7 +116,7 @@
         }
 
         DataType<List<DataType<QName>>> targetType = context.getTargetDataType();
-        WSDLOperation targetOp = (WSDLOperation) targetType.getMetadata(WSDLOperation.class.getName());
+        Operation<?> targetOp = (Operation<?>) targetType.getMetadata(Operation.class.getName());
         boolean targetWrapped = (targetOp != null && targetOp.isWrapperStyle());
         WrapperHandler targetWrapperHandler = null;
         if (targetWrapped) {
@@ -124,14 +125,14 @@
 
         if ((!sourceWrapped) && targetWrapped) {
             // Unwrapped --> Wrapped
-            WSDLOperation.Wrapper wrapper = targetOp.getWrapper();
-            XmlSchemaElement wrapperElement = wrapper.getInputWrapperElement();
+            WrapperInfo wrapper = targetOp.getWrapper();
+            ElementInfo wrapperElement = wrapper.getInputWrapperElement();
 
             // If the source can be wrapped, wrapped it first
             if (sourceWrapperHandler != null) {
                 Object sourceWrapper = sourceWrapperHandler.create(wrapperElement, context);
                 for (int i = 0; i < source.length; i++) {
-                    XmlSchemaElement argElement = wrapper.getInputChildElements().get(i);
+                    ElementInfo argElement = wrapper.getInputChildElements().get(i);
                     sourceWrapperHandler.setChild(sourceWrapper, i, argElement, source[0]);
                 }
             }
@@ -142,7 +143,7 @@
             List<DataType<QName>> argTypes = wrapper.getUnwrappedInputType().getLogical();
 
             for (int i = 0; i < source.length; i++) {
-                XmlSchemaElement argElement = wrapper.getInputChildElements().get(i);
+                ElementInfo argElement = wrapper.getInputChildElements().get(i);
                 DataType<QName> argType = argTypes.get(i);
                 Object child = source[i];
                 child = mediator.mediate(source[i], sourceType.getLogical().get(i), argType, context.getMetadata());
@@ -152,12 +153,12 @@
         } else if (sourceWrapped && (!targetWrapped)) {
             // Wrapped to Unwrapped
             Object sourceWrapper = source[0];
-            List<XmlSchemaElement> childElements = sourceOp.getWrapper().getInputChildElements();
+            List<ElementInfo> childElements = sourceOp.getWrapper().getInputChildElements();
             Object[] target = new Object[childElements.size()];
 
             targetWrapperHandler = getWapperHandler(targetType.getLogical().get(0).getDataBinding(), false);
             if (targetWrapperHandler != null) {
-                XmlSchemaElement wrapperElement = sourceOp.getWrapper().getInputWrapperElement();
+                ElementInfo wrapperElement = sourceOp.getWrapper().getInputWrapperElement();
                 // Object targetWrapper = targetWrapperHandler.create(wrapperElement, context);
                 DataType<QName> targetWrapperType =
                         new DataType<QName>(targetType.getLogical().get(0).getDataBinding(), Object.class,
@@ -166,12 +167,12 @@
                         mediator.mediate(sourceWrapper, sourceType.getLogical().get(0), targetWrapperType, context
                                 .getMetadata());
                 for (int i = 0; i < childElements.size(); i++) {
-                    XmlSchemaElement childElement = childElements.get(i);
+                    ElementInfo childElement = childElements.get(i);
                     target[i] = targetWrapperHandler.getChild(targetWrapper, i, childElement);
                 }
             } else {
                 for (int i = 0; i < childElements.size(); i++) {
-                    XmlSchemaElement childElement = childElements.get(i);
+                    ElementInfo childElement = childElements.get(i);
                     Object child = sourceWrapperHandler.getChild(sourceWrapper, i, childElement);
                     DataType<QName> childType = sourceOp.getWrapper().getUnwrappedInputType().getLogical().get(i);
                     target[i] =

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Output2OutputTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Output2OutputTransformer.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Output2OutputTransformer.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/Output2OutputTransformer.java Fri Sep 22 13:48:58 2006
@@ -31,11 +31,11 @@
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.Transformer;
 import org.apache.tuscany.databinding.extension.TransformerExtension;
-import org.apache.tuscany.idl.wsdl.WSDLOperation;
 import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.idl.InvalidServiceContractException;
+import org.apache.tuscany.spi.idl.ElementInfo;
+import org.apache.tuscany.spi.idl.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.model.Operation;
 import org.osoa.sca.annotations.Service;
 
 /**
@@ -106,13 +106,9 @@
         return 10;
     }
 
-    private WrapperHandler getWapperHandler(WSDLOperation sourceOp) {
+    private WrapperHandler getWapperHandler(Operation<?> operation) {
         String dataBindingId;
-        try {
-            dataBindingId = sourceOp.getOperation().getDataBinding();
-        } catch (InvalidServiceContractException e) {
-            throw new TransformationException(e);
-        }
+        dataBindingId = operation.getDataBinding();
         DataBinding dataBinding = dataBindingRegistry.getDataBinding(dataBindingId);
         WrapperHandler wrapperHandler = dataBinding == null ? null : dataBinding.getWrapperHandler();
         if (wrapperHandler == null) {
@@ -130,7 +126,7 @@
     public Object transform(Object response, TransformationContext context) {
         try {
             DataType<DataType> sourceType = context.getSourceDataType();
-            WSDLOperation sourceOp = (WSDLOperation) sourceType.getMetadata(WSDLOperation.class.getName());
+            Operation<?> sourceOp = (Operation<?>) sourceType.getMetadata(Operation.class.getName());
             boolean sourceWrapped = (sourceOp != null && sourceOp.isWrapperStyle());
             WrapperHandler sourceWrapperHandler = null;
             if (sourceWrapped) {
@@ -138,7 +134,7 @@
             }
 
             DataType<DataType> targetType = context.getTargetDataType();
-            WSDLOperation targetOp = (WSDLOperation) targetType.getMetadata(WSDLOperation.class.getName());
+            Operation<?> targetOp = (Operation<?>) targetType.getMetadata(Operation.class.getName());
             boolean targetWrapped = (targetOp != null && targetOp.isWrapperStyle());
             WrapperHandler targetWrapperHandler = null;
             if (targetWrapped) {
@@ -147,13 +143,13 @@
 
             if ((!sourceWrapped) && targetWrapped) {
                 // Unwrapped --> Wrapped
-                WSDLOperation.Wrapper wrapper = targetOp.getWrapper();
+                WrapperInfo wrapper = targetOp.getWrapper();
                 Object targetWrapper = targetWrapperHandler.create(wrapper.getOutputWrapperElement(), context);
                 if (response == null) {
                     return targetWrapper;
                 }
 
-                XmlSchemaElement argElement = wrapper.getOutputChildElements().get(0);
+                ElementInfo argElement = wrapper.getOutputChildElements().get(0);
                 DataType<QName> argType = wrapper.getUnwrappedOutputType();
                 Object child = response;
                 child = mediator.mediate(response, sourceType.getLogical(), argType, context.getMetadata());
@@ -162,12 +158,12 @@
             } else if (sourceWrapped && (!targetWrapped)) {
                 // Wrapped to Unwrapped
                 Object sourceWrapper = response;
-                List<XmlSchemaElement> childElements = sourceOp.getWrapper().getOutputChildElements();
-                XmlSchemaElement childElement = childElements.get(0);
+                List<ElementInfo> childElements = sourceOp.getWrapper().getOutputChildElements();
+                ElementInfo childElement = childElements.get(0);
 
                 targetWrapperHandler = getWapperHandler(targetType.getLogical().getDataBinding());
                 if (targetWrapperHandler != null) {
-                    XmlSchemaElement wrapperElement = sourceOp.getWrapper().getInputWrapperElement();
+                    ElementInfo wrapperElement = sourceOp.getWrapper().getInputWrapperElement();
                     // Object targetWrapper = targetWrapperHandler.create(wrapperElement, context);
                     DataType<QName> targetWrapperType =
                             new DataType<QName>(targetType.getLogical().getDataBinding(), Object.class, wrapperElement

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/SimpleTypeMapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/SimpleTypeMapper.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/SimpleTypeMapper.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/SimpleTypeMapper.java Fri Sep 22 13:48:58 2006
@@ -20,7 +20,7 @@
 package org.apache.tuscany.databinding.idl;
 
 import org.apache.tuscany.databinding.TransformationContext;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
+import org.apache.tuscany.spi.idl.TypeInfo;
 
 /**
  * Type Mapper between XML schema simple data types and java objects
@@ -33,7 +33,7 @@
      * @param context The context of the transformation
      * @return A java object for the XML value
      */
-    Object toJavaObject(XmlSchemaSimpleType simpleType, String value, TransformationContext context);
+    Object toJavaObject(TypeInfo simpleType, String value, TransformationContext context);
     /**
      * Create the XML lexical representation for a java object
      * @param simpleType The XSD simple type
@@ -41,5 +41,5 @@
      * @param context The context of the transformation
      * @return The XML lexical representation
      */
-    String toXMLLiteral(XmlSchemaSimpleType simpleType, Object obj, TransformationContext context);
+    String toXMLLiteral(TypeInfo simpleType, Object obj, TransformationContext context);
 }

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/WrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/WrapperHandler.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/WrapperHandler.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/idl/WrapperHandler.java Fri Sep 22 13:48:58 2006
@@ -20,7 +20,7 @@
 package org.apache.tuscany.databinding.idl;
 
 import org.apache.tuscany.databinding.TransformationContext;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.idl.ElementInfo;
 
 /**
  * A contract for transformers to deal with wrapping/unwrapping for WSDL wrapper style operations
@@ -33,7 +33,7 @@
      * @param context The transformation context
      * @return An object representing the wrapper element
      */
-    T create(XmlSchemaElement element, TransformationContext context);
+    T create(ElementInfo element, TransformationContext context);
 
     /**
      * Set child element for the wrapper
@@ -43,7 +43,7 @@
      * @param childElement The XSD element
      * @param value The value of the child
      */
-    void setChild(T wrapper, int i, XmlSchemaElement childElement, Object value);
+    void setChild(T wrapper, int i, ElementInfo childElement, Object value);
 
     /**
      * Get child element from the wrapper
@@ -53,5 +53,5 @@
      * @param element The XSD element
      * @return The value of the child
      */
-    Object getChild(T wrapper, int i, XmlSchemaElement element);
+    Object getChild(T wrapper, int i, ElementInfo element);
 }

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/impl/DataBindingInteceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/impl/DataBindingInteceptor.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/impl/DataBindingInteceptor.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/impl/DataBindingInteceptor.java Fri Sep 22 13:48:58 2006
@@ -23,7 +23,6 @@
 import java.util.Map;
 
 import org.apache.tuscany.databinding.Mediator;
-import org.apache.tuscany.idl.wsdl.WSDLOperation;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.tuscany.spi.model.Operation;
@@ -79,12 +78,13 @@
             // FIXME: Should we fix the Operation model so that getOutputType returns DataType<DataType<T>>?
             DataType<DataType> targetType =
                     new DataType<DataType>("idl:output", Object.class, targetOperation.getOutputType());
-            targetType.setMetadata(WSDLOperation.class.getName(), targetOperation.getOutputType().getMetadata(
-                    WSDLOperation.class.getName()));
+            
+            targetType.setMetadata(Operation.class.getName(), targetOperation.getOutputType().getMetadata(
+                    Operation.class.getName()));
             DataType<DataType> sourceType =
                     new DataType<DataType>("idl:output", Object.class, sourceOperation.getOutputType());
-            sourceType.setMetadata(WSDLOperation.class.getName(), sourceOperation.getOutputType().getMetadata(
-                    WSDLOperation.class.getName()));
+            sourceType.setMetadata(Operation.class.getName(), sourceOperation.getOutputType().getMetadata(
+                    Operation.class.getName()));
 
             result = transform(result, targetType, sourceType);
             resultMsg.setBody(result);

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMWrapperHandler.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMWrapperHandler.java Fri Sep 22 13:48:58 2006
@@ -25,7 +25,7 @@
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.idl.WrapperHandler;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.idl.ElementInfo;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -43,12 +43,12 @@
         }
     }
 
-    public Node create(XmlSchemaElement element, TransformationContext context) {
+    public Node create(ElementInfo element, TransformationContext context) {
         QName name = element.getQName();
         return DOMHelper.createElement(document, name);
     }
 
-    public Object getChild(Node wrapper, int i, XmlSchemaElement element) {
+    public Object getChild(Node wrapper, int i, ElementInfo element) {
         int index = 0;
         NodeList nodes = wrapper.getChildNodes();
         for (int j = 0; j < nodes.getLength(); j++) {
@@ -68,7 +68,7 @@
         return null;
     }
 
-    public void setChild(Node wrapper, int i, XmlSchemaElement childElement, Object value) {
+    public void setChild(Node wrapper, int i, ElementInfo childElement, Object value) {
         Node node = (Node) value;
         if (node.getNodeType() == Node.DOCUMENT_NODE) {
             node = ((Document) node).getDocumentElement();

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Object2Node.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Object2Node.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Object2Node.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Object2Node.java Fri Sep 22 13:48:58 2006
@@ -25,7 +25,7 @@
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.Transformer;
 import org.apache.tuscany.databinding.extension.Java2SimpleTypeTransformer;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.idl.ElementInfo;
 import org.osoa.sca.annotations.Service;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -47,7 +47,7 @@
         }
     }
 
-    protected Node createElement(XmlSchemaElement element, String text, TransformationContext context) {
+    protected Node createElement(ElementInfo element, String text, TransformationContext context) {
         QName name = element.getQName();
         Node root = DOMHelper.createElement(factory, name);
         root.appendChild(factory.createTextNode(text));

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtensionTestCase.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/extension/SimpleTypeMapperExtensionTestCase.java Fri Sep 22 13:48:58 2006
@@ -28,7 +28,7 @@
 
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.impl.TransformationContextImpl;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
+import org.apache.tuscany.spi.idl.TypeInfo;
 import org.easymock.EasyMock;
 
 /**
@@ -87,8 +87,8 @@
         EasyMock.expect(namespaceContext.getPrefix(EasyMock.eq("http://foo"))).andReturn("f").anyTimes();
         EasyMock.replay(namespaceContext);
         context.getMetadata().put(NamespaceContext.class, namespaceContext);
-        for (XmlSchemaSimpleType simpleType : SimpleTypeMapperExtension.XSD_SIMPLE_TYPES.values()) {
-            String name = simpleType.getName();
+        for (TypeInfo simpleType : SimpleTypeMapperExtension.XSD_SIMPLE_TYPES.values()) {
+            String name = simpleType.getQName().getLocalPart();
             Object value = sampleValues.get(name);
             if (value instanceof String[]) {
                 for (String s : (String[]) value) {

Modified: incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/idl/IDLTransformerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/idl/IDLTransformerTestCase.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/idl/IDLTransformerTestCase.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/idl/IDLTransformerTestCase.java Fri Sep 22 13:48:58 2006
@@ -82,7 +82,8 @@
         Definition definition = registry.loadDefinition(null, url);
         PortType portType = definition.getPortType(PORTTYPE_NAME);
         Operation operation = portType.getOperation("checkOrderStatus", null, null);
-        WSDLOperation op = new WSDLOperation(operation, Node.class.getName(), registry.getSchemaRegistry());
+        WSDLOperation wsdlOp = new WSDLOperation(operation, Node.class.getName(), registry.getSchemaRegistry());
+        org.apache.tuscany.spi.model.Operation<?> op = wsdlOp.getOperation();
         assertTrue(op.isWrapperStyle());
 
         MediatorImpl m = new MediatorImpl();
@@ -119,8 +120,8 @@
 
         TransformationContext context1 = new TransformationContextImpl();
         DataType<DataType> sourceType = new DataType<DataType>("idl:output", Object.class, op.getOutputType());
-        sourceType.setMetadata(WSDLOperation.class.getName(), op.getOutputType().getMetadata(
-                WSDLOperation.class.getName()));
+        sourceType.setMetadata(org.apache.tuscany.spi.model.Operation.class.getName(), op.getOutputType().getMetadata(
+                org.apache.tuscany.spi.model.Operation.class.getName()));
         
         context1.setSourceDataType(sourceType);
         DataType<DataType> targetType =

Modified: incubator/tuscany/java/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandler.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandler.java Fri Sep 22 13:48:58 2006
@@ -31,14 +31,14 @@
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.idl.WrapperHandler;
-import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.tuscany.spi.idl.ElementInfo;
 
 /**
  * JAXB WrapperHandler implementation
  */
 public class JAXBWrapperHandler implements WrapperHandler<JAXBElement<?>> {
 
-    public JAXBElement<?> create(XmlSchemaElement element, TransformationContext context) {
+    public JAXBElement<?> create(ElementInfo element, TransformationContext context) {
         try {
             String packageName = null;
             String factoryClassName = packageName + ".ObjectFactory";
@@ -67,7 +67,7 @@
         }
     }
 
-    public Object getChild(JAXBElement<?> wrapper, int i, XmlSchemaElement element) {
+    public Object getChild(JAXBElement<?> wrapper, int i, ElementInfo element) {
         try {
             Object value = wrapper.getValue();
             PropertyDescriptor descriptors[] =
@@ -83,7 +83,7 @@
         }
     }
 
-    public void setChild(JAXBElement<?> wrapper, int i, XmlSchemaElement childElement, Object value) {
+    public void setChild(JAXBElement<?> wrapper, int i, ElementInfo childElement, Object value) {
         try {
             Object wrapperValue = wrapper.getValue();
             PropertyDescriptor descriptors[] =

Modified: incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOSimpleTypeMapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOSimpleTypeMapper.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOSimpleTypeMapper.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOSimpleTypeMapper.java Fri Sep 22 13:48:58 2006
@@ -24,7 +24,7 @@
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.idl.SimpleTypeMapper;
 import org.apache.tuscany.sdo.util.SDOUtil;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
+import org.apache.tuscany.spi.idl.TypeInfo;
 
 import commonj.sdo.Type;
 import commonj.sdo.helper.TypeHelper;
@@ -39,7 +39,7 @@
         super();
     }
 
-    public Object toJavaObject(XmlSchemaSimpleType simpleType, String value, TransformationContext context) {
+    public Object toJavaObject(TypeInfo simpleType, String value, TransformationContext context) {
         QName typeName = simpleType.getQName();
         Type type = null;
         if (URI_2001_SCHEMA_XSD.equals(typeName.getNamespaceURI())) {
@@ -51,7 +51,7 @@
         return SDOUtil.createFromString(type, value);
     }
 
-    public String toXMLLiteral(XmlSchemaSimpleType simpleType, Object obj, TransformationContext context) {
+    public String toXMLLiteral(TypeInfo simpleType, Object obj, TransformationContext context) {
         QName typeName = simpleType.getQName();
         Type type = null;
         if (URI_2001_SCHEMA_XSD.equals(typeName.getNamespaceURI())) {

Modified: incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java Fri Sep 22 13:48:58 2006
@@ -24,8 +24,8 @@
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.idl.WrapperHandler;
 import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.tuscany.spi.idl.ElementInfo;
 import org.apache.tuscany.spi.model.DataType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
 
 import commonj.sdo.DataObject;
 import commonj.sdo.helper.DataFactory;
@@ -39,10 +39,10 @@
 public class SDOWrapperHandler implements WrapperHandler<Object> {
 
     /**
-     * @see org.apache.tuscany.databinding.idl.WrapperHandler#create(org.apache.ws.commons.schema.XmlSchemaElement,
+     * @see org.apache.tuscany.databinding.idl.WrapperHandler#create(ElementInfo,
      *      TransformationContext)
      */
-    public Object create(XmlSchemaElement element, TransformationContext context) {
+    public Object create(ElementInfo element, TransformationContext context) {
         TypeHelper typeHelper = TypeHelper.INSTANCE;
         if (context != null) {
             DataType targetType = context.getTargetDataType();
@@ -53,7 +53,7 @@
                 }
             }
         }
-        QName typeName = element.getSchemaTypeName();
+        QName typeName = element.getType().getQName();
         DataFactory dataFactory = SDOUtil.createDataFactory(typeHelper);
         DataObject root = dataFactory.create(typeName.getNamespaceURI(), typeName.getLocalPart());
         XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
@@ -62,22 +62,22 @@
 
     /**
      * @see org.apache.tuscany.databinding.idl.WrapperHandler#getChild(java.lang.Object, int,
-     *      org.apache.ws.commons.schema.XmlSchemaElement)
+     *      ElementInfo)
      */
-    public Object getChild(Object wrapper, int i, XmlSchemaElement element) {
+    public Object getChild(Object wrapper, int i, ElementInfo element) {
         DataObject wrapperDO =
                 (wrapper instanceof XMLDocument) ? ((XMLDocument) wrapper).getRootObject() : (DataObject) wrapper;
-        return wrapperDO.get(element.getName());
+        return wrapperDO.get(element.getQName().getLocalPart());
     }
 
     /**
      * @see org.apache.tuscany.databinding.idl.WrapperHandler#setChild(java.lang.Object, int,
-     *      org.apache.ws.commons.schema.XmlSchemaElement, java.lang.Object)
+     *      ElementInfo, java.lang.Object)
      */
-    public void setChild(Object wrapper, int i, XmlSchemaElement childElement, Object value) {
+    public void setChild(Object wrapper, int i, ElementInfo childElement, Object value) {
         DataObject wrapperDO =
                 (wrapper instanceof XMLDocument) ? ((XMLDocument) wrapper).getRootObject() : (DataObject) wrapper;
-        wrapperDO.set(childElement.getName(), value);
+        wrapperDO.set(childElement.getQName().getLocalPart(), value);
     }
 
 }

Modified: incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java (original)
+++ incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java Fri Sep 22 13:48:58 2006
@@ -32,7 +32,10 @@
 import javax.wsdl.Part;
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.spi.idl.ElementInfo;
 import org.apache.tuscany.spi.idl.InvalidServiceContractException;
+import org.apache.tuscany.spi.idl.TypeInfo;
+import org.apache.tuscany.spi.idl.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.ws.commons.schema.XmlSchemaComplexType;
 import org.apache.ws.commons.schema.XmlSchemaElement;
@@ -40,12 +43,15 @@
 import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
 import org.apache.ws.commons.schema.XmlSchemaParticle;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaSimpleType;
 import org.apache.ws.commons.schema.XmlSchemaType;
 
 /**
  * Metadata for a WSDL operation
  */
 public class WSDLOperation {
+    private static final String OPERATION_KEY = org.apache.tuscany.spi.model.Operation.class.getName();
+
     protected XMLSchemaRegistry schemaRegistry;
 
     protected Operation operation;
@@ -108,7 +114,7 @@
             Input input = operation.getInput();
             Message message = (input == null) ? null : input.getMessage();
             inputType = getMessageType(message);
-            inputType.setMetadata(WSDLOperation.class.getName(), this);
+            // inputType.setMetadata(WSDLOperation.class.getName(), this);
             inputType.setDataBinding("idl:input");
         }
         return inputType;
@@ -131,7 +137,7 @@
                 }
                 Part part = (Part) outputParts.get(0);
                 outputType = new WSDLPart(part).getDataType();
-                outputType.setMetadata(WSDLOperation.class.getName(), this);
+                // outputType.setMetadata(WSDLOperation.class.getName(), this);
             }
         }
         return outputType;
@@ -183,16 +189,20 @@
             operationModel =
                     new org.apache.tuscany.spi.model.Operation<QName>(operation.getName(), getInputType(),
                             getOutputType(), getFaultTypes(), oneway, dataBinding);
-            operationModel.setMetaData(WSDLOperation.class.getName(), this);
+            operationModel.setWrapperStyle(isWrapperStyle());
+            // operationModel.setMetaData(WSDLOperation.class.getName(), this);
             if (isWrapperStyle()) {
+                operationModel.setWrapper(getWrapper().getWrapperInfo());
                 // Register the operation with the types
                 for (DataType<?> d : wrapper.getUnwrappedInputType().getLogical()) {
-                    d.setMetadata(org.apache.tuscany.spi.model.Operation.class.getName(), operationModel);
+                    d.setMetadata(OPERATION_KEY, operationModel);
                 }
-                wrapper.getUnwrappedOutputType().setMetadata(org.apache.tuscany.spi.model.Operation.class.getName(),
+                wrapper.getUnwrappedOutputType().setMetadata(OPERATION_KEY,
                         operationModel);
             }
         }
+        inputType.setMetadata(OPERATION_KEY, operationModel);
+        outputType.setMetadata(OPERATION_KEY, operationModel);
         return operationModel;
     }
 
@@ -230,7 +240,8 @@
                 }
             }
             dataType = new DataType<QName>(dataBinding, Object.class, element.getQName());
-            dataType.setMetadata(WSDLPart.class.getName(), this);
+            // dataType.setMetadata(WSDLPart.class.getName(), this);
+            dataType.setMetadata(ElementInfo.class.getName(), getElementInfo(element));
         }
 
         /**
@@ -284,6 +295,8 @@
         private DataType<List<DataType<QName>>> unwrappedInputType;
 
         private DataType<QName> unwrappedOutputType;
+        
+        private transient WrapperInfo wrapperInfo;
 
         private List<XmlSchemaElement> getChildElements(XmlSchemaElement element) {
             if (element == null) {
@@ -415,7 +428,7 @@
                 List<DataType<QName>> childTypes = new ArrayList<DataType<QName>>();
                 for (XmlSchemaElement element : getInputChildElements()) {
                     DataType<QName> type = new DataType<QName>(dataBinding, Object.class, element.getQName());
-                    type.setMetadata(XmlSchemaElement.class.getName(), element);
+                    type.setMetadata(ElementInfo.class.getName(), getElementInfo(element));
                     childTypes.add(type);
                 }
                 unwrappedInputType =
@@ -434,10 +447,50 @@
                     }
                     XmlSchemaElement element = elements.get(0);
                     unwrappedOutputType = new DataType<QName>(dataBinding, Object.class, element.getQName());
-                    unwrappedOutputType.setMetadata(XmlSchemaElement.class.getName(), element);
+                    unwrappedOutputType.setMetadata(ElementInfo.class.getName(), getElementInfo(element));
                 }
             }
             return unwrappedOutputType;
         }
+
+        public WrapperInfo getWrapperInfo() throws InvalidServiceContractException {
+            if (wrapperInfo == null) {
+                ElementInfo in = getElementInfo(getInputWrapperElement());
+                ElementInfo out = getElementInfo(getOutputWrapperElement());
+                List<ElementInfo> inChildren = new ArrayList<ElementInfo>();
+                for (XmlSchemaElement e : getInputChildElements()) {
+                    inChildren.add(getElementInfo(e));
+                }
+                List<ElementInfo> outChildren = new ArrayList<ElementInfo>();
+                for (XmlSchemaElement e : getOutputChildElements()) {
+                    outChildren.add(getElementInfo(e));
+                }
+                wrapperInfo =
+                        new WrapperInfo(in, out, inChildren, outChildren, getUnwrappedInputType(), getUnwrappedOutputType());
+            }
+            return wrapperInfo;
+        }
     }
+
+    private static ElementInfo getElementInfo(XmlSchemaElement element) {
+        if (element == null) {
+            return null;
+        }
+        return new ElementInfo(element.getQName(), getTypeInfo(element.getSchemaType()));
+    }
+
+    private static TypeInfo getTypeInfo(XmlSchemaType type) {
+        if (type == null) {
+            return null;
+        }
+        XmlSchemaType baseType = (XmlSchemaType) type.getBaseSchemaType();
+        QName name = type.getQName();
+        boolean simple = (type instanceof XmlSchemaSimpleType);
+        if (baseType == null) {
+            return new TypeInfo(name, simple, null);
+        } else {
+            return new TypeInfo(name, simple, getTypeInfo(baseType));
+        }
+    }
+
 }

Modified: incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImplTestCase.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImplTestCase.java (original)
+++ incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImplTestCase.java Fri Sep 22 13:48:58 2006
@@ -68,11 +68,8 @@
         DataType<QName> returnType = operation.getOutputType();
         Assert.assertNotNull(returnType);
         Assert.assertEquals(0, operation.getFaultTypes().size());
-        WSDLOperation op = 
-            (WSDLOperation) operation.getMetaData().get(WSDLOperation.class.getName());
-        Assert.assertNotNull(op);
-        Assert.assertEquals(1, op.getWrapper().getInputChildElements().size());
-        Assert.assertEquals(1, op.getWrapper().getOutputChildElements().size());
+        Assert.assertEquals(1, operation.getWrapper().getInputChildElements().size());
+        Assert.assertEquals(1, operation.getWrapper().getOutputChildElements().size());
     }
 
     public final void testIntrospectPortTypePortType() throws InvalidServiceContractException {

Modified: incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/WSDLOperationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/WSDLOperationTestCase.java?view=diff&rev=449084&r1=449083&r2=449084
==============================================================================
--- incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/WSDLOperationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/idl/wsdl/src/test/java/org/apache/tuscany/idl/wsdl/WSDLOperationTestCase.java Fri Sep 22 13:48:58 2006
@@ -27,12 +27,12 @@
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.spi.model.DataType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import org.apache.tuscany.spi.idl.ElementInfo;
+import org.apache.tuscany.spi.model.DataType;
+
 /**
  * Test case for WSDLOperation
  */
@@ -59,7 +59,6 @@
         WSDLOperation op = new WSDLOperation(operation, "org.w3c.dom.Node", registry.getSchemaRegistry());
         
         DataType<List<DataType<QName>>> inputType = op.getInputType();
-        Assert.assertSame(op, inputType.getMetadata(WSDLOperation.class.getName()));
         Assert.assertEquals(1, inputType.getLogical().size());
         Assert.assertEquals(new QName("http://example.com/stockquote.xsd", "getLastTradePrice"), inputType.getLogical()
                 .get(0).getLogical());
@@ -74,12 +73,12 @@
         Assert.assertEquals(1, childTypes.size());
         DataType<QName> childType = childTypes.get(0);
         Assert.assertEquals(new QName(null, "tickerSymbol"), childType.getLogical());
-        XmlSchemaElement element = (XmlSchemaElement) childType.getMetadata(XmlSchemaElement.class.getName());
+        ElementInfo element = (ElementInfo) childType.getMetadata(ElementInfo.class.getName());
         Assert.assertNotNull(element);
         
         childType = op.getWrapper().getUnwrappedOutputType();
         Assert.assertEquals(new QName(null, "price"), childType.getLogical());
-        element = (XmlSchemaElement) childType.getMetadata(XmlSchemaElement.class.getName());
+        element = (ElementInfo) childType.getMetadata(ElementInfo.class.getName());
         Assert.assertNotNull(element);
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org