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

svn commit: r643485 - in /incubator/tuscany/java/sca/modules/databinding-jaxb/src: main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java test/java/org/apache/tuscany/databinding/jaxb/JAXBReflectionTestCase.java

Author: rfeng
Date: Tue Apr  1 10:52:03 2008
New Revision: 643485

URL: http://svn.apache.org/viewvc?rev=643485&view=rev
Log:
Refactor the xsd generation into JAXBContextHelper

Modified:
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBReflectionTestCase.java

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java?rev=643485&r1=643484&r2=643485&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java Tue Apr  1 10:52:03 2008
@@ -19,21 +19,26 @@
 package org.apache.tuscany.sca.databinding.jaxb;
 
 import java.beans.Introspector;
+import java.io.IOException;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
+import javax.xml.bind.SchemaOutputResolver;
 import javax.xml.bind.annotation.XmlEnum;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlSchema;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.namespace.QName;
+import javax.xml.transform.Result;
+import javax.xml.transform.dom.DOMResult;
 
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sca.databinding.TransformationException;
 import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.util.XMLType;
+import org.w3c.dom.Node;
 
 public class JAXBContextHelper {
     // TODO: Do we need to set them for source and target?
@@ -178,5 +183,27 @@
         }
         return new XMLType(elementQName, typeQName);
     }
+    
+    public static Node generateSchema(JAXBContext context) throws Exception {
+        SchemaOutputResolverImpl resolver = new SchemaOutputResolverImpl();
+        context.generateSchema(resolver);
+        return resolver.getSchema();
+    }
+
+    public static class SchemaOutputResolverImpl extends SchemaOutputResolver {
+        private DOMResult result = new DOMResult();
+
+        @Override
+        public Result createOutput(String ns, String file) throws IOException {
+            result.setSystemId("sca:dom");
+            return result;
+        }
+
+        public Node getSchema() {
+            return result != null ? result.getNode() : null;
+        }
+
+    }
+    
 
 }

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBReflectionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBReflectionTestCase.java?rev=643485&r1=643484&r2=643485&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBReflectionTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBReflectionTestCase.java Tue Apr  1 10:52:03 2008
@@ -19,19 +19,16 @@
 
 package org.apache.tuscany.databinding.jaxb;
 
-import java.io.IOException;
 import java.lang.reflect.Type;
 import java.util.Collections;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.SchemaOutputResolver;
 import javax.xml.namespace.QName;
-import javax.xml.transform.Result;
-import javax.xml.transform.dom.DOMResult;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
 import org.apache.tuscany.sca.databinding.xml.Node2String;
 import org.jvnet.jaxb.reflection.model.annotation.RuntimeInlineAnnotationReader;
 import org.jvnet.jaxb.reflection.model.core.Ref;
@@ -53,28 +50,10 @@
 
     public void testGenerateSchema() throws Exception {
         JAXBContext context = JAXBContext.newInstance("com.example.ipo.jaxb");
-        SchemaOutputResolverImpl resolver = new SchemaOutputResolverImpl();
-        context.generateSchema(resolver);
-        System.out.println(new Node2String().transform(resolver.getSchema(), null));
+        Node schema = JAXBContextHelper.generateSchema(context);
+        System.out.println(new Node2String().transform(schema, null));
     }
-
-    public static class SchemaOutputResolverImpl extends SchemaOutputResolver {
-        private DOMResult result = new DOMResult();
-
-        @Override
-        public Result createOutput(String ns, String file) throws IOException {
-            System.out.println(ns);
-            System.out.println(file);
-            result.setSystemId("sca:dom");
-            return result;
-        }
-
-        public Node getSchema() {
-            return result != null ? result.getNode() : null;
-        }
-
-    }
-    
+  
     /**
      * This is a workaround for the NPE bug in jaxb-reflection
      * @param classes



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