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 2010/02/11 18:45:13 UTC

svn commit: r909092 - in /tuscany/sca-java-2.x/trunk/modules/databinding-sdo: ./ META-INF/ src/main/java/org/apache/tuscany/sca/databinding/sdo/ src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/ src/main/resources/META-INF/services/ src/test/ja...

Author: rfeng
Date: Thu Feb 11 17:44:00 2010
New Revision: 909092

URL: http://svn.apache.org/viewvc?rev=909092&view=rev
Log:
Port databinding-sdo into 2.x based on the patch provided by Malisetti, Ramanjaneyulu. Thanks for the contribution.
I'll leave it outside the main build for now.

Added:
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/
      - copied from r836081, tuscany/sca-java-1.x/trunk/modules/databinding-sdo/
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/META-INF/
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/META-INF/MANIFEST.MF
Modified:
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/pom.xml
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDO.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessor.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOSimpleTypeMapper.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypes.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesProcessor.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandlerTestCase.java
    tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/TestModelResolver.java

Added: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/META-INF/MANIFEST.MF?rev=909092&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/META-INF/MANIFEST.MF (added)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/META-INF/MANIFEST.MF Thu Feb 11 17:44:00 2010
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.tuscany.sca.databinding.sdo;version="2.0.0"
+SCA-Version: 1.1
+Bundle-Name: Apache Tuscany SCA Data Binding for SDO
+Bundle-Vendor: The Apache Software Foundation
+Bundle-Version: 2.0.0
+Bundle-ManifestVersion: 2
+Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
+Bundle-Description: Apache Tuscany SCA Data Binding for SDO
+Import-Package: javax.xml.namespace,
+ javax.xml.stream,
+ org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.assembly.impl;version="2.0.0",
+ org.apache.tuscany.sca.common.java.collection;version="2.0.0",
+ org.apache.tuscany.sca.common.xml.dom;version="2.0.0",
+ org.apache.tuscany.sca.common.xml.stax;version="2.0.0",
+ org.apache.tuscany.sca.core;version="2.0.0",
+ org.apache.tuscany.sca.databinding;version="2.0.0",
+ org.apache.tuscany.sca.databinding.impl;version="2.0.0",
+ org.apache.tuscany.sca.databinding.util;version="2.0.0",
+ org.apache.tuscany.sca.databinding.xml;version="2.0.0";resolution:=optional,
+ org.apache.tuscany.sca.extensibility;version="2.0.0";resolution:=optional,
+ org.apache.tuscany.sca.interfacedef;version="2.0.0",
+ org.apache.tuscany.sca.interfacedef.impl;version="2.0.0";resolution:=optional,
+ org.apache.tuscany.sca.interfacedef.util;version="2.0.0",
+ org.oasisopen.sca;version="2.0.0",
+ org.oasisopen.sca.annotation;version="2.0.0"
+Bundle-SymbolicName: org.apache.tuscany.sca.databinding.sdo
+Bundle-DocURL: http://www.apache.org/
+

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/pom.xml?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/pom.xml Thu Feb 11 17:44:00 2010
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.tuscany.sca</groupId>
         <artifactId>tuscany-modules</artifactId>
-        <version>1.6-SNAPSHOT</version>
+        <version>2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>tuscany-databinding-sdo</artifactId>
@@ -32,19 +32,22 @@
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-core-spi</artifactId>
-            <version>1.6-SNAPSHOT</version>
-        </dependency>    
+            <version>2.0-SNAPSHOT</version>
+        </dependency>  
+
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-databinding</artifactId>
-            <version>1.6-SNAPSHOT</version>
+            <artifactId>tuscany-common-xml</artifactId>
+            <version>2.0-SNAPSHOT</version>
         </dependency>
-        <!-- FIXME: We might want to create a separate module to host the processor -->
+		
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-implementation-java-xml</artifactId>
-            <version>1.6-SNAPSHOT</version>
+            <artifactId>tuscany-databinding</artifactId>
+            <version>2.0-SNAPSHOT</version>
         </dependency>
+        <!-- FIXME: We might want to create a separate module to host the processor -->
+   
         <dependency>
             <groupId>org.apache.tuscany.sdo</groupId>
             <artifactId>tuscany-sdo-lib</artifactId>
@@ -126,19 +129,6 @@
                 </executions>
             </plugin>
 
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-
-                <configuration>
-                    <instructions>
-                        <Bundle-Version>${tuscany.version}</Bundle-Version>
-                        <Bundle-SymbolicName>org.apache.tuscany.sca.databinding.sdo</Bundle-SymbolicName>
-                        <Bundle-Description>${pom.name}</Bundle-Description>
-                        <Export-Package>org.apache.tuscany.sca.databinding.sdo*</Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 </project>

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java Thu Feb 11 17:44:00 2010
@@ -20,12 +20,13 @@
 
 import javax.xml.namespace.QName;
 import javax.xml.transform.dom.DOMResult;
-
+import javax.xml.parsers.DocumentBuilderFactory;
 import org.apache.tuscany.sca.databinding.PullTransformer;
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sca.databinding.TransformationException;
 import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
+
+
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
@@ -45,7 +46,7 @@
             HelperContext helperContext = SDOContextHelper.getHelperContext(context, true);
             XMLHelper xmlHelper = helperContext.getXMLHelper();
             QName elementName = SDOContextHelper.getElement(context);
-            Document doc = DOMHelper.newDocument();
+            Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
             DOMResult result = new DOMResult(doc);
             XMLDocument xmlDoc = xmlHelper.createDocument(source, elementName.getNamespaceURI(), elementName.getLocalPart());
             xmlHelper.save(xmlDoc, result, null);

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDO.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDO.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDO.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDO.java Thu Feb 11 17:44:00 2010
@@ -21,6 +21,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.sca.assembly.Base;
 import org.apache.tuscany.sca.assembly.impl.BaseImpl;
 
 import commonj.sdo.helper.HelperContext;
@@ -32,7 +33,7 @@
  */
 public class ImportSDO extends BaseImpl {
     public static final QName IMPORT_SDO =
-        new QName("http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0", "import.sdo");
+        new QName(Base.SCA11_TUSCANY_NS, "import.sdo");
 
     private HelperContext helperContext;
     private String factoryClassName;

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessor.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessor.java Thu Feb 11 17:44:00 2010
@@ -35,13 +35,14 @@
 
 import org.apache.tuscany.sca.contribution.Artifact;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ClassReference;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -62,7 +63,7 @@
     private ContributionFactory contributionFactory;
     private Monitor monitor;
 
-    public ImportSDOProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public ImportSDOProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
         this.monitor = monitor;
     }
@@ -76,7 +77,7 @@
      */
     private void error(String message, Object model, Object... messageParameters) {
 		 if (monitor != null) {
-		    Problem problem = new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
+		    Problem problem = new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,message, model, message, (Object[])messageParameters);
 		    monitor.problem(problem);
 		 }
     }
@@ -90,7 +91,7 @@
       */
     private void error(String message, Object model, Exception ex) {
      	 if (monitor != null) {
-     		 Problem problem = new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR, model, message, ex);
+     		 Problem problem = new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR, message,model, message, ex);
      	     monitor.problem(problem);
      	 }        
     }
@@ -99,7 +100,7 @@
         return IMPORT_SDO;
     }
 
-    public ImportSDO read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+    public ImportSDO read(XMLStreamReader reader,ProcessorContext context) throws ContributionReadException, XMLStreamException {
         assert IMPORT_SDO.equals(reader.getName());
 
         // FIXME: How do we associate the application HelperContext with the one
@@ -123,11 +124,11 @@
         return importSDO;
     }
 
-    private void importFactory(ImportSDO importSDO, ModelResolver resolver) throws ContributionResolveException {
+    private void importFactory(ImportSDO importSDO, ModelResolver resolver,ProcessorContext context) throws ContributionResolveException {
         String factoryName = importSDO.getFactoryClassName();
         if (factoryName != null) {
             ClassReference reference = new ClassReference(factoryName);
-            ClassReference resolved = resolver.resolveModel(ClassReference.class, reference);
+            ClassReference resolved = resolver.resolveModel(ClassReference.class, reference,context);
             if (resolved != null && !resolved.isUnresolved()) {
             	try {
                     Class<?> factoryClass = resolved.getJavaClass();
@@ -157,13 +158,13 @@
         //        method.invoke(factory, new Object[] {defaultContext});
     }
 
-    private void importWSDL(ImportSDO importSDO, ModelResolver resolver) throws ContributionResolveException {
+    private void importWSDL(ImportSDO importSDO, ModelResolver resolver,ProcessorContext context) throws ContributionResolveException {
         String location = importSDO.getSchemaLocation();
         if (location != null) {
             try {
                 Artifact artifact = contributionFactory.createArtifact();
                 artifact.setURI(location);
-                artifact = resolver.resolveModel(Artifact.class, artifact);
+                artifact = resolver.resolveModel(Artifact.class, artifact,context);
                 if (artifact.getLocation() != null) {
                 	String wsdlURL = artifact.getLocation();
                     URLConnection connection = new URL(wsdlURL).openConnection();
@@ -193,7 +194,7 @@
         return ImportSDO.IMPORT_SDO;
     }
 
-    public void write(ImportSDO model, XMLStreamWriter outputSource) throws ContributionWriteException {
+    public void write(ImportSDO model, XMLStreamWriter outputSource,ProcessorContext context) throws ContributionWriteException {
         // Not implemented as <import.sdo> is deprecated
     }
 
@@ -201,11 +202,11 @@
         return ImportSDO.class;
     }
 
-    public void resolve(ImportSDO importSDO, ModelResolver resolver) throws ContributionResolveException {
-        importFactory(importSDO, resolver);
-        importWSDL(importSDO, resolver);
+    public void resolve(ImportSDO importSDO, ModelResolver resolver,ProcessorContext context) throws ContributionResolveException {
+        importFactory(importSDO, resolver,context);
+        importWSDL(importSDO, resolver,context);
         if (!importSDO.isUnresolved()) {
-            resolver.addModel(importSDO);
+            resolver.addModel(importSDO,context);
         }
     }
 

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java Thu Feb 11 17:44:00 2010
@@ -24,7 +24,8 @@
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sca.databinding.TransformationException;
 import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
@@ -35,6 +36,12 @@
 
 public class Node2DataObject extends BaseTransformer<Node, DataObject> implements PullTransformer<Node, DataObject> {
 
+private DOMHelper helper;
+
+public Node2DataObject(ExtensionPointRegistry registry) {
+        super();
+        helper = DOMHelper.getInstance(registry);
+}
     public DataObject transform(Node source, TransformationContext context) {
         if (source == null) {
             return null;
@@ -42,7 +49,7 @@
         try {
             HelperContext helperContext = SDOContextHelper.getHelperContext(context, false);
             XMLHelper xmlHelper = helperContext.getXMLHelper();
-            Document doc = DOMHelper.promote(source);
+            Document doc = helper.promote(source);
             DOMSource domSource = new DOMSource(doc);
             XMLDocument xmlDoc = xmlHelper.load(domSource, doc.getDocumentURI(), null);
             return xmlDoc.getRootObject();

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java Thu Feb 11 17:44:00 2010
@@ -26,10 +26,10 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.sca.common.java.collection.LRUCache;
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sca.databinding.TransformationException;
 import org.apache.tuscany.sca.databinding.util.DataTypeHelper;
-import org.apache.tuscany.sca.databinding.util.LRUCache;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.util.XMLType;

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOSimpleTypeMapper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOSimpleTypeMapper.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOSimpleTypeMapper.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOSimpleTypeMapper.java Thu Feb 11 17:44:00 2010
@@ -24,6 +24,7 @@
 import org.apache.tuscany.sca.databinding.SimpleTypeMapper;
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sdo.api.SDOUtil;
+import org.apache.tuscany.sca.interfacedef.util.TypeInfo;
 
 import commonj.sdo.Type;
 import commonj.sdo.helper.HelperContext;
@@ -64,5 +65,18 @@
         }
         return SDOUtil.convertToString(type, obj);
     }
+	
+	public Class<?> getJavaType(QName xmlType) {
+	   
+	   return null;
+	}
+	   
+	public TypeInfo getXMLType(Class<?> javaType) {
+	    return null;
+	  }
+	  
+	public boolean isSimpleXSDType(QName xmlType) {
+	  return false;
+	  }
 
 }

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java Thu Feb 11 17:44:00 2010
@@ -28,6 +28,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.databinding.XMLTypeHelper;
 import org.apache.tuscany.sca.interfacedef.DataType;
@@ -39,7 +40,7 @@
 import org.apache.tuscany.sca.interfacedef.util.XMLType;
 import org.apache.tuscany.sca.xsd.XSDFactory;
 import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.osoa.sca.ServiceRuntimeException;
+import org.oasisopen.sca.ServiceRuntimeException;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
 import org.w3c.dom.bootstrap.DOMImplementationRegistry;
@@ -56,15 +57,26 @@
 
     private TypeHelper typeHelper;
     private XSDHelper xsdHelper;
+	
+	private ProcessorContext context;
     // private Map<String, List<Type>> xsdTypesMap = new HashMap<String, List<Type>>();
     // private Map<String, List<Type>> typesMap = new HashMap<String, List<Type>>();
 
+    public SDOTypeHelper(ProcessorContext context) {
+        super();
+		this.context=context;
+		//Should we use this.context to get helper objects ???
+        typeHelper = SDOContextHelper.getDefaultHelperContext().getTypeHelper();
+        xsdHelper = SDOContextHelper.getDefaultHelperContext().getXSDHelper();
+    }
+	//Should we remove this constructor???? otherwise we context gets created
     public SDOTypeHelper() {
         super();
+		this.context=null;
+		//Should we use this.context to get helper objects ???
         typeHelper = SDOContextHelper.getDefaultHelperContext().getTypeHelper();
         xsdHelper = SDOContextHelper.getDefaultHelperContext().getXSDHelper();
     }
-
     public TypeInfo getTypeInfo(Class javaType, Object logical) {
         QName xmlType = JavaXMLMapper.getXMLType(javaType);
         if (xmlType != null) {
@@ -152,7 +164,8 @@
             definition.setUnresolved(true);
             definition.setNamespace(entry.getKey());
             //FIXME: set location URI
-            XSDefinition resolved = resolver.resolveModel(XSDefinition.class, definition);
+			
+            XSDefinition resolved = resolver.resolveModel(XSDefinition.class, definition,context);
             if (resolved.getSchema() == null) {
                 //FIXME: create a checked exception and propagate it back up to the activator
                 throw new RuntimeException("No XSD found for namespace " + entry.getKey());
@@ -185,14 +198,14 @@
     private static List<DataType> getDataTypes(Interface intf) {
         List<DataType> dataTypes = new ArrayList<DataType>();
         for (Operation op : intf.getOperations()) {
-            WrapperInfo inputWrapperInfo = op.getInputWrapper();
-            WrapperInfo outputWrapperInfo = op.getOutputWrapper();
-            if (inputWrapperInfo != null && outputWrapperInfo != null) {
-                DataType dt1 = inputWrapperInfo.getWrapperType();
+            WrapperInfo wrapperInfo = op.getWrapper();
+            
+            if (wrapperInfo != null ) {
+                DataType dt1 = wrapperInfo.getInputWrapperType();
                 if (dt1 != null) {
                     dataTypes.add(dt1);
                 }
-                DataType dt2 = outputWrapperInfo.getWrapperType();
+                DataType dt2 = wrapperInfo.getOutputWrapperType();
                 if (dt2 != null) {
                     dataTypes.add(dt2);
                 }

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypes.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypes.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypes.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypes.java Thu Feb 11 17:44:00 2010
@@ -24,6 +24,8 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.sca.assembly.Base;
+
 import commonj.sdo.Type;
 
 /**
@@ -33,14 +35,14 @@
  *
  * This extends the META-INF/sca-contribution.xml to register SDO types from static factory classes or WSDL/XSD files
  *
- * &lt;contribution xmlns=&quot;http://www.osoa.org/xmlns/sca/1.0&quot;<br>
+ * &lt;contribution xmlns=&quot;http://tuscany.apache.org/xmlns/sca/1.1&quot;<br>
  * &nbsp;&nbsp;&nbsp;&nbsp;xmlns:tuscany=&quot;http://tuscany.apache.org/xmlns/sca/1.0&quot;&gt;<br>
  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;tuscany:sdo.types namespace=&quot;http://helloworld&quot; location=&quot;wsdl/helloworld.wsdl&quot;/&gt;<br>
  * &lt;/contribution&gt;
  *
  */
 public class SDOTypes {
-    public static final QName SDO_TYPES = new QName("http://tuscany.apache.org/xmlns/sca/1.0", "sdo.types");
+    public static final QName SDO_TYPES = new QName(Base.SCA11_TUSCANY_NS, "sdo.types");
 
     private String factory;
     private String schemaLocation;

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java Thu Feb 11 17:44:00 2010
@@ -51,11 +51,11 @@
 public class SDOWrapperHandler implements WrapperHandler<Object> {
 
     public Object create(Operation operation, boolean input) {
-        WrapperInfo inputWrapperInfo = operation.getInputWrapper();
-        WrapperInfo outputWrapperInfo = operation.getOutputWrapper();
+        WrapperInfo wrapperInfo = operation.getWrapper();
+        
 
-        ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : 
-            outputWrapperInfo.getWrapperElement();
+        ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : 
+            wrapperInfo.getOutputWrapperElement();
         
         HelperContext helperContext = SDOContextHelper.getHelperContext(operation);
         Type sdoType = getSDOType(helperContext, element);
@@ -67,11 +67,11 @@
     }
 
     public void setChildren(Object wrapper, Object[] childObjects, Operation operation, boolean input) {
-        WrapperInfo inputWrapperInfo = operation.getInputWrapper();
-        WrapperInfo outputWrapperInfo = operation.getOutputWrapper();
+        WrapperInfo wrapperInfo = operation.getWrapper();
+       
         
-        List<ElementInfo> childElements = input? inputWrapperInfo.getChildElements():
-            outputWrapperInfo.getChildElements();
+        List<ElementInfo> childElements = input? wrapperInfo.getInputChildElements():
+            wrapperInfo.getOutputChildElements();
 
         for (int i = 0; i < childElements.size(); i++) {
             setChild(wrapper, i, childElements.get(i), childObjects[i]);
@@ -129,11 +129,11 @@
      * @see org.apache.tuscany.sca.databinding.WrapperHandler#getWrapperType(Operation, boolean)
      */
     public DataType getWrapperType(Operation operation, boolean input) {
-        WrapperInfo inputWrapperInfo = operation.getInputWrapper();
-        WrapperInfo outputWrapperInfo = operation.getOutputWrapper();
+        WrapperInfo wrapperInfo = operation.getWrapper();
+       
 
-        ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : 
-            outputWrapperInfo.getWrapperElement();
+        ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : 
+            wrapperInfo.getOutputWrapperElement();
         
         HelperContext helperContext = SDOContextHelper.getHelperContext(operation);
         Type sdoType = getSDOType(helperContext, element);
@@ -174,11 +174,11 @@
      * @see org.apache.tuscany.sca.databinding.WrapperHandler#isInstance(java.lang.Object, Operation, boolean)
      */
     public boolean isInstance(Object wrapper, Operation operation, boolean input) {
-        WrapperInfo inputWrapperInfo = operation.getInputWrapper();
-        WrapperInfo outputWrapperInfo = operation.getOutputWrapper();
+        WrapperInfo wrapperInfo = operation.getWrapper();
+        
 
-        ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : 
-            outputWrapperInfo.getWrapperElement();
+        ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : 
+            wrapperInfo.getOutputWrapperElement();
         
         //        List<ElementInfo> childElements =
         //            input ? wrapperInfo.getInputChildElements() : wrapperInfo.getOutputChildElements();

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java Thu Feb 11 17:44:00 2010
@@ -1,246 +1,252 @@
-/*
- * 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.databinding.sdo.xml;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.contribution.Artifact;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.databinding.sdo.SDOTypes;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.MonitorFactory;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.tuscany.sdo.api.SDOUtil;
-
-import commonj.sdo.Type;
-import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.XSDHelper;
-
-/**
- * SDO types model resolver that aggregates the SDO type registration for an SCA contribution
- */
-public class SDOTypesModelResolver implements ModelResolver {
-    private Contribution contribution;
-    private HelperContext helperContext;
-    private List<SDOTypes> sdoTypes = new ArrayList<SDOTypes>();
-    private ContributionFactory contributionFactory;
-    private XSDFactory xsdFactory;
-    private Monitor monitor;
-
-    public SDOTypesModelResolver(Contribution contribution, ExtensionPointRegistry registry) {
-        super();
-        ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
-        this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
-        this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
-        this.monitor = createMonitor(registry);
-        this.contribution = contribution;
-    }
-
-    private static Monitor createMonitor(ExtensionPointRegistry extensionPoints) {
-        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
-        if (utilities != null) {
-            MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
-            if (monitorFactory != null) {
-                return monitorFactory.createMonitor();
-            }
-        }
-        return null;
-    }
-
-    public void addModel(Object resolved) {
-        if (helperContext == null) {
-            helperContext = SDOUtil.createHelperContext();
-        }
-        SDOTypes types = (SDOTypes)resolved;
-        try {
-            loadSDOTypes(types, contribution.getModelResolver());
-        } catch (ContributionResolveException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        sdoTypes.add(types);
-    }
-
-    public Object removeModel(Object resolved) {
-        SDOTypes types = (SDOTypes)resolved;
-        return sdoTypes.remove(types);
-    }
-
-    public <T> T resolveModel(Class<T> modelClass, T unresolved) {
-        SDOTypes types = (SDOTypes)unresolved;
-        String ns = types.getNamespace();
-        for (SDOTypes t : sdoTypes) {
-            if (t.getNamespace().equals(types.getNamespace())) {
-                try {
-                    loadSDOTypes(types, contribution.getModelResolver());
-                } catch (ContributionResolveException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-                return (T)t;
-            }
-        }
-        return (T)types;
-    }
-
-    private static void register(Class<?> factoryClass, HelperContext helperContext) throws Exception {
-        Field field = factoryClass.getField("INSTANCE");
-        Object factory = field.get(null);
-        Method method = factory.getClass().getMethod("register", new Class[] {HelperContext.class});
-        method.invoke(factory, new Object[] {helperContext});
-    }
-
-    private void defineFromFactory(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
-        String factoryName = importSDO.getFactory();
-        if (factoryName != null) {
-            ClassReference reference = new ClassReference(factoryName);
-            ClassReference resolved = resolver.resolveModel(ClassReference.class, reference);
-            if (resolved != null && !resolved.isUnresolved()) {
-                try {
-                    Class<?> factoryClass = resolved.getJavaClass();
-                    // Get the namespace
-                    Field field = factoryClass.getField("NAMESPACE_URI");
-                    importSDO.setNamespace((String)field.get(null));
-                    register(factoryClass, helperContext);
-                    importSDO.setUnresolved(false);
-                } catch (Exception e) {
-                    ContributionResolveException ce = new ContributionResolveException(e);
-                    error("ContributionResolveException", resolver, ce);
-                    //throw ce;
-                }
-            } else {
-                error("FailToResolveClass", resolver, factoryName);
-                //ContributionResolveException loaderException =
-                //new ContributionResolveException("Fail to resolve class: " + factoryName);
-                //throw loaderException;
-            }
-        }
-    }
-
-    private void defineFromXSD(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
-        String location = importSDO.getSchemaLocation();
-        if (location != null) {
-            try {
-                Artifact artifact = contributionFactory.createArtifact();
-                artifact.setURI(location);
-                artifact = resolver.resolveModel(Artifact.class, artifact);
-                if (artifact.getLocation() != null) {
-                    String wsdlURL = artifact.getLocation();
-                    URLConnection connection = new URL(wsdlURL).openConnection();
-                    connection.setUseCaches(false);
-                    InputStream xsdInputStream = connection.getInputStream();
-                    try {
-                        XSDHelper xsdHelper = helperContext.getXSDHelper();
-                        List<Type> sdoTypes = xsdHelper.define(xsdInputStream, wsdlURL);
-                        for (Type t : sdoTypes) {
-                            importSDO.setNamespace(t.getURI());
-                            break;
-                        }
-                        importSDO.getTypes().addAll(sdoTypes);
-                    } finally {
-                        xsdInputStream.close();
-                    }
-                    importSDO.setUnresolved(false);
-                } else {
-                    error("FailToResolveLocation", resolver, location);
-                    //ContributionResolveException loaderException = new ContributionResolveException("Fail to resolve location: " + location);
-                    //throw loaderException;
-                }
-            } catch (IOException e) {
-                ContributionResolveException ce = new ContributionResolveException(e);
-                error("ContributionResolveException", resolver, ce);
-                //throw ce;
-            }
-        } else {
-            String ns = importSDO.getNamespace();
-            if (ns != null) {
-                XSDefinition xsd = xsdFactory.createXSDefinition();
-                xsd.setUnresolved(true);
-                xsd.setNamespace(ns);
-                xsd = resolver.resolveModel(XSDefinition.class, xsd);
-                if (!xsd.isUnresolved()) {
-                    XSDHelper xsdHelper = helperContext.getXSDHelper();
-                    xsdHelper.define(xsd.getLocation().toString());
-                }
-            }
-        }
-    }
-
-    private void loadSDOTypes(SDOTypes types, ModelResolver resolver) throws ContributionResolveException {
-        synchronized (types) {
-            if (types.isUnresolved()) {
-                defineFromFactory(types, resolver);
-                defineFromXSD(types, resolver);
-                types.setUnresolved(false);
-            }
-        }
-    }
-
-    /**
-     * Report a exception.
-     *
-     * @param problems
-     * @param message
-     * @param model
-     */
-    private void error(String message, Object model, Exception ex) {
-        if (monitor != null) {
-            Problem problem =
-                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
-                                model, message, ex);
-            monitor.problem(problem);
-        }
-    }
-
-    /**
-     * Report a error.
-     *
-     * @param problems
-     * @param message
-     * @param model
-     */
-    private void error(String message, Object model, Object... messageParameters) {
-        if (monitor != null) {
-            Problem problem =
-                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
-                                model, message, (Object[])messageParameters);
-            monitor.problem(problem);
-        }
-    }
-
-}
+/*
+ * 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.databinding.sdo.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.sca.contribution.Artifact;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.resolver.ClassReference;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.databinding.sdo.SDOTypes;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
+import org.apache.tuscany.sca.xsd.XSDFactory;
+import org.apache.tuscany.sca.xsd.XSDefinition;
+import org.apache.tuscany.sdo.api.SDOUtil;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
+import commonj.sdo.Type;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * SDO types model resolver that aggregates the SDO type registration for an SCA contribution
+ */
+public class SDOTypesModelResolver implements ModelResolver {
+    private Contribution contribution;
+    private HelperContext helperContext;
+    private List<SDOTypes> sdoTypes = new ArrayList<SDOTypes>();
+    private ContributionFactory contributionFactory;
+    private XSDFactory xsdFactory;
+    private Monitor monitor;
+	private ProcessorContext context;
+
+    public SDOTypesModelResolver(Contribution contribution, ExtensionPointRegistry registry) {
+        super();
+        DefaultFactoryExtensionPoint modelFactories = registry.getExtensionPoint(DefaultFactoryExtensionPoint.class);
+        this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
+        this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
+        this.monitor = createMonitor(registry);
+        this.contribution = contribution;
+    }
+
+    private static Monitor createMonitor(ExtensionPointRegistry extensionPoints) {
+        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        if (utilities != null) {
+            MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
+            if (monitorFactory != null) {
+                return monitorFactory.createMonitor();
+            }
+        }
+        return null;
+    }
+
+    public void addModel(Object resolved,ProcessorContext context) {
+        if (helperContext == null) {
+            helperContext = SDOUtil.createHelperContext();
+        }
+		this.context=context;
+        SDOTypes types = (SDOTypes)resolved;
+        try {
+            loadSDOTypes(types, contribution.getModelResolver());
+        } catch (ContributionResolveException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        sdoTypes.add(types);
+    }
+
+    public Object removeModel(Object resolved,ProcessorContext context) {
+        SDOTypes types = (SDOTypes)resolved;
+		
+        return sdoTypes.remove(types);
+    }
+
+    public <T> T resolveModel(Class<T> modelClass, T unresolved,ProcessorContext context) {
+        SDOTypes types = (SDOTypes)unresolved;
+        String ns = types.getNamespace();
+		this.context=context;
+        for (SDOTypes t : sdoTypes) {
+            if (t.getNamespace().equals(types.getNamespace())) {
+                try {
+                    loadSDOTypes(types, contribution.getModelResolver());
+                } catch (ContributionResolveException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+                return (T)t;
+            }
+        }
+        return (T)types;
+    }
+
+    private static void register(Class<?> factoryClass, HelperContext helperContext) throws Exception {
+        Field field = factoryClass.getField("INSTANCE");
+        Object factory = field.get(null);
+        Method method = factory.getClass().getMethod("register", new Class[] {HelperContext.class});
+        method.invoke(factory, new Object[] {helperContext});
+    }
+
+    private void defineFromFactory(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
+        String factoryName = importSDO.getFactory();
+        if (factoryName != null) {
+            ClassReference reference = new ClassReference(factoryName);
+            ClassReference resolved = resolver.resolveModel(ClassReference.class, reference,context);
+            if (resolved != null && !resolved.isUnresolved()) {
+                try {
+                    Class<?> factoryClass = resolved.getJavaClass();
+                    // Get the namespace
+                    Field field = factoryClass.getField("NAMESPACE_URI");
+                    importSDO.setNamespace((String)field.get(null));
+                    register(factoryClass, helperContext);
+                    importSDO.setUnresolved(false);
+                } catch (Exception e) {
+                    ContributionResolveException ce = new ContributionResolveException(e);
+                    error("ContributionResolveException", resolver, ce);
+                    //throw ce;
+                }
+            } else {
+                error("FailToResolveClass", resolver, factoryName);
+                //ContributionResolveException loaderException =
+                //new ContributionResolveException("Fail to resolve class: " + factoryName);
+                //throw loaderException;
+            }
+        }
+    }
+
+    private void defineFromXSD(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
+        String location = importSDO.getSchemaLocation();
+        if (location != null) {
+            try {
+                Artifact artifact = contributionFactory.createArtifact();
+                artifact.setURI(location);
+                artifact = resolver.resolveModel(Artifact.class, artifact,context);
+                if (artifact.getLocation() != null) {
+                    String wsdlURL = artifact.getLocation();
+                    URLConnection connection = new URL(wsdlURL).openConnection();
+                    connection.setUseCaches(false);
+                    InputStream xsdInputStream = connection.getInputStream();
+                    try {
+                        XSDHelper xsdHelper = helperContext.getXSDHelper();
+                        List<Type> sdoTypes = xsdHelper.define(xsdInputStream, wsdlURL);
+                        for (Type t : sdoTypes) {
+                            importSDO.setNamespace(t.getURI());
+                            break;
+                        }
+                        importSDO.getTypes().addAll(sdoTypes);
+                    } finally {
+                        xsdInputStream.close();
+                    }
+                    importSDO.setUnresolved(false);
+                } else {
+                    error("FailToResolveLocation", resolver, location);
+                    //ContributionResolveException loaderException = new ContributionResolveException("Fail to resolve location: " + location);
+                    //throw loaderException;
+                }
+            } catch (IOException e) {
+                ContributionResolveException ce = new ContributionResolveException(e);
+                error("ContributionResolveException", resolver, ce);
+                //throw ce;
+            }
+        } else {
+            String ns = importSDO.getNamespace();
+            if (ns != null) {
+                XSDefinition xsd = xsdFactory.createXSDefinition();
+                xsd.setUnresolved(true);
+                xsd.setNamespace(ns);
+                xsd = resolver.resolveModel(XSDefinition.class, xsd,context);
+                if (!xsd.isUnresolved()) {
+                    XSDHelper xsdHelper = helperContext.getXSDHelper();
+                    xsdHelper.define(xsd.getLocation().toString());
+                }
+            }
+        }
+    }
+
+    private void loadSDOTypes(SDOTypes types, ModelResolver resolver) throws ContributionResolveException {
+        synchronized (types) {
+            if (types.isUnresolved()) {
+                defineFromFactory(types, resolver);
+                defineFromXSD(types, resolver);
+                types.setUnresolved(false);
+            }
+        }
+    }
+
+    /**
+     * Report a exception.
+     *
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Exception ex) {
+        if (monitor != null) {
+            Problem problem =
+                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
+                               message, model, message, ex);
+            monitor.problem(problem);
+        }
+    }
+
+    /**
+     * Report a error.
+     *
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Object... messageParameters) {
+        if (monitor != null) {
+            Problem problem =
+                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
+                                message,model, message, (Object[])messageParameters);
+            monitor.problem(problem);
+        }
+    }
+
+	
+					   
+}

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesProcessor.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesProcessor.java Thu Feb 11 17:44:00 2010
@@ -25,14 +25,15 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
 import org.apache.tuscany.sca.databinding.sdo.SDOTypes;
 import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
 
 
 /**
@@ -42,14 +43,14 @@
  */
 public class SDOTypesProcessor implements StAXArtifactProcessor<SDOTypes> {
 
-    public SDOTypesProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public SDOTypesProcessor(DefaultFactoryExtensionPoint modelFactories, Monitor monitor) {
     }
 
     public QName getXMLType() {
         return SDOTypes.SDO_TYPES;
     }
 
-    public SDOTypes read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+    public SDOTypes read(XMLStreamReader reader,ProcessorContext context) throws ContributionReadException, XMLStreamException {
         assert SDOTypes.SDO_TYPES.equals(reader.getName());
 
         // FIXME: How do we associate the application HelperContext with the one
@@ -79,7 +80,7 @@
         return SDOTypes.SDO_TYPES;
     }
 
-    public void write(SDOTypes model, XMLStreamWriter writer) throws ContributionWriteException {
+    public void write(SDOTypes model, XMLStreamWriter writer,ProcessorContext context) throws ContributionWriteException {
         try {
             writer.writeStartElement(SDOTypes.SDO_TYPES.getNamespaceURI(), SDOTypes.SDO_TYPES.getLocalPart());
             if (model.getNamespace() != null) {
@@ -101,9 +102,9 @@
         return SDOTypes.class;
     }
 
-    public void resolve(SDOTypes types, ModelResolver resolver) throws ContributionResolveException {
+    public void resolve(SDOTypes types, ModelResolver resolver,ProcessorContext context) throws ContributionResolveException {
         // Defer the resolution to SDOTypesResolver which aggragates the type registrations into an instance of HelperContext
-        resolver.addModel(types);
+        resolver.addModel(types,context);
     }
 
 }

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor Thu Feb 11 17:44:00 2010
@@ -15,5 +15,5 @@
 # specific language governing permissions and limitations
 # under the License.
 
-org.apache.tuscany.sca.databinding.sdo.ImportSDOProcessor;qname=http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0#import.sdo,model=org.apache.tuscany.sca.databinding.sdo.ImportSDO
-org.apache.tuscany.sca.databinding.sdo.xml.SDOTypesProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.0#sdo.types,model=org.apache.tuscany.sca.databinding.sdo.SDOTypes
+org.apache.tuscany.sca.databinding.sdo.ImportSDOProcessor;qname=http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.1#import.sdo,model=org.apache.tuscany.sca.databinding.sdo.ImportSDO
+org.apache.tuscany.sca.databinding.sdo.xml.SDOTypesProcessor;qname=http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.1#sdo.types,model=org.apache.tuscany.sca.databinding.sdo.SDOTypes

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java Thu Feb 11 17:44:00 2010
@@ -21,6 +21,7 @@
 
 import junit.framework.Assert;
 
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
 import org.apache.tuscany.sca.interfacedef.util.XMLType;
@@ -51,7 +52,7 @@
         Element element = (Element) node;
         Assert.assertEquals(ORDER_QNAME.getNamespaceURI(), element.getNamespaceURI());
         Assert.assertEquals(ORDER_QNAME.getLocalPart(), element.getLocalName());
-        DataObject po = new Node2DataObject().transform(node, reversedContext);
+        DataObject po = new Node2DataObject(new DefaultExtensionPointRegistry()).transform(node, reversedContext);
         Assert.assertTrue(po instanceof PurchaseOrderType);
         PurchaseOrderType orderType = (PurchaseOrderType)po;
         Assert.assertEquals("San Jose", orderType.getBillTo().getCity());

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReaderTestCase.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReaderTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReaderTestCase.java Thu Feb 11 17:44:00 2010
@@ -23,6 +23,7 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.databinding.xml.Node2String;
 import org.apache.tuscany.sca.databinding.xml.XMLStreamReader2Node;
 import org.apache.tuscany.sca.interfacedef.DataType;
@@ -64,7 +65,7 @@
     
     public final void testTransform1() throws XMLStreamException {
         XMLStreamReader reader = new DataObject2XMLStreamReader().transform(dataObject, context);
-        XMLStreamReader2Node t2 = new XMLStreamReader2Node();
+        XMLStreamReader2Node t2 = new XMLStreamReader2Node(new DefaultExtensionPointRegistry());
         org.w3c.dom.Node node = t2.transform(reader, context);
         assertNotNull(node);
         Node2String t3 = new Node2String();

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java Thu Feb 11 17:44:00 2010
@@ -18,59 +18,73 @@
  */
 package org.apache.tuscany.sca.databinding.sdo;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.StringReader;
 
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
 import org.apache.tuscany.sca.contribution.resolver.ClassReference;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 import com.example.ipo.sdo.SdoFactory;
 
 /**
  * @version $Rev$ $Date$
  */
-public class ImportSDOProcessorTestCase extends TestCase {
+public class ImportSDOProcessorTestCase {
     private static boolean inited;
 
-    private ImportSDOProcessor loader;
-    private XMLInputFactory xmlFactory;
+    private static ExtensionPointRegistry registry;
+    private static ImportSDOProcessor loader;
+    private static XMLInputFactory xmlFactory;
 
+    @Test
     public void testMinimal() throws Exception {
-        String xml = "<import.sdo xmlns='http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0'/>";
+        String xml = "<import.sdo xmlns='http://tuscany.apache.org/xmlns/sca/1.1'/>";
         XMLStreamReader reader = getReader(xml);
-        assertTrue(loader.read(reader) instanceof ImportSDO);
+        assertTrue(loader.read(reader, new ProcessorContext(registry)) instanceof ImportSDO);
     }
 
+    @Test
     public void testLocation() throws Exception {
-        String xml = "<import.sdo xmlns='http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0' location='ipo.xsd'/>";
+        String xml = "<import.sdo xmlns='http://tuscany.apache.org/xmlns/sca/1.1' location='ipo.xsd'/>";
         XMLStreamReader reader = getReader(xml);
-        assertTrue(loader.read(reader) instanceof ImportSDO);
+        assertTrue(loader.read(reader, new ProcessorContext(registry)) instanceof ImportSDO);
     }
 
+    @Test
     public void testFactory() throws Exception {
-        String xml = "<import.sdo xmlns='http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0' " + "factory='"
+        String xml = "<import.sdo xmlns='http://tuscany.apache.org/xmlns/sca/1.1' " + "factory='"
                      + MockFactory.class.getName()
                      + "'/>";
         XMLStreamReader reader = getReader(xml);
         assertFalse(inited);
-        ImportSDO importSDO = loader.read(reader);
+        ProcessorContext context = new ProcessorContext(registry);
+        ImportSDO importSDO = loader.read(reader, context);
         assertNotNull(importSDO);
         ModelResolver resolver = new TestModelResolver();
-        resolver.addModel(new ClassReference(MockFactory.class));
-        loader.resolve(importSDO, resolver);
+        resolver.addModel(new ClassReference(MockFactory.class), context);
+        loader.resolve(importSDO, resolver, context);
         assertTrue(inited);
     }
 
-    @Override
-    protected void setUp() throws Exception {
-        loader = new ImportSDOProcessor(new DefaultModelFactoryExtensionPoint(), null);
-        xmlFactory = XMLInputFactory.newInstance();
+    @BeforeClass
+    public static void setUp() throws Exception {
+        registry = new DefaultExtensionPointRegistry();
+        FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class);
+        loader = new ImportSDOProcessor(factories, null);
+        xmlFactory = factories.getFactory(XMLInputFactory.class);
     }
 
     protected XMLStreamReader getReader(String xml) throws XMLStreamException {

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandlerTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandlerTestCase.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandlerTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandlerTestCase.java Thu Feb 11 17:44:00 2010
@@ -74,8 +74,8 @@
         xsdHelper.define(getClass().getResourceAsStream("/wrapper.xsd"), null);
         ElementInfo element = new ElementInfo(new QName("http://www.example.com/wrapper", "op"), null);
         Operation op = new OperationImpl();
-        WrapperInfo wrapperInfo = new WrapperInfo(SDODataBinding.NAME, element, null);
-        op.setInputWrapper(wrapperInfo);
+        WrapperInfo wrapperInfo = new WrapperInfo(SDODataBinding.NAME, element, null, null, null);
+        op.setWrapper(wrapperInfo);
         DataObject wrapper = (DataObject) handler.create(op, true);
         assertNotNull(wrapper);
     }

Modified: tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/TestModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/TestModelResolver.java?rev=909092&r1=836081&r2=909092&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/TestModelResolver.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/TestModelResolver.java Thu Feb 11 17:44:00 2010
@@ -22,6 +22,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 
 
@@ -38,7 +39,7 @@
     public TestModelResolver() {
     }
 
-    public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+    public <T> T resolveModel(Class<T> modelClass, T unresolved, ProcessorContext context) {
         Object resolved = map.get(unresolved);
         if (resolved != null) {
             
@@ -52,11 +53,11 @@
         }
     }
     
-    public void addModel(Object resolved) {
+    public void addModel(Object resolved, ProcessorContext context) {
         map.put(resolved, resolved);
     }
     
-    public Object removeModel(Object resolved) {
+    public Object removeModel(Object resolved, ProcessorContext context) {
         return map.remove(resolved);
     }