You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2012/05/28 13:51:57 UTC

svn commit: r1343210 - in /cxf/trunk/tools/wadlto/jaxrs/src: main/java/org/apache/cxf/tools/wadlto/jaxrs/ test/resources/wadl/

Author: sergeyb
Date: Mon May 28 11:51:57 2012
New Revision: 1343210

URL: http://svn.apache.org/viewvc?rev=1343210&view=rev
Log:
Trying to read XMLSchema for WADL generator not to fail with the low memory available, JIRA to be updated when it's available

Modified:
    cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
    cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreInlinedSchemaWithImport.xml
    cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreMultipleSchemas.xml
    cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/resourceWithEPR.xml

Modified: cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java?rev=1343210&r1=1343209&r2=1343210&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java Mon May 28 11:51:57 2012
@@ -80,6 +80,7 @@ import org.apache.cxf.common.logging.Log
 import org.apache.cxf.common.util.PackageUtils;
 import org.apache.cxf.common.util.ReflectionInvokationHandler;
 import org.apache.cxf.common.util.SystemPropertyAction;
+import org.apache.cxf.common.xmlschema.SchemaCollection;
 import org.apache.cxf.common.xmlschema.XmlSchemaConstants;
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.helpers.DOMUtils;
@@ -88,6 +89,7 @@ import org.apache.cxf.jaxrs.utils.JAXRSU
 import org.apache.cxf.jaxrs.utils.ResourceUtils;
 import org.apache.cxf.service.model.SchemaInfo;
 import org.apache.cxf.staxutils.StaxUtils;
+import org.apache.ws.commons.schema.XmlSchema;
 
 /**
  * TODO: This will need to be moved into a separate module
@@ -169,6 +171,8 @@ public class SourceGenerator {
     private Bus bus;
     private boolean supportMultipleXmlReps;
     
+    private SchemaCollection schemaCollection = new SchemaCollection();
+    
     public SourceGenerator() {
         this(Collections.<String, String>emptyMap());
     }
@@ -1223,10 +1227,22 @@ public class SourceGenerator {
         return lastSep != -1 ? docPath.substring(0, lastSep + 1) : docPath;
     }
     
-    private SchemaInfo createSchemaInfo(Element schemaEl, String systemId) { 
+    private SchemaInfo createSchemaInfo(Element schemaEl, String systemId) {
         SchemaInfo info = new SchemaInfo(schemaEl.getAttribute("targetNamespace"));
+        
         info.setElement(schemaEl);
         info.setSystemId(systemId);
+        // Lets try to read the schema to deal with the possible
+        // eviction of the DOM element from the memory 
+        try {
+            XmlSchema xmlSchema = schemaCollection.read(schemaEl, systemId);
+            info.setSchema(xmlSchema);
+        } catch (Exception ex) {
+            // may be due to unsupported resolvers for protocols like
+            // classpath: or not the valid schema definition, may not be critical
+            // for the purpose of the schema compilation.
+        }
+
         return info;
     }
     
@@ -1304,7 +1320,9 @@ public class SourceGenerator {
                 // when addressing the issue of retrieving WADLs with included schemas  
                 if (key.startsWith("classpath:")) {
                     String resource = key.substring(10);
-                    URL url = getClass().getResource(resource);
+                    URL url = ResourceUtils.getClasspathResourceURL(resource, 
+                                                                    SourceGenerator.class,
+                                                                    bus);
                     if (url != null) {
                         try {
                             key = url.toURI().toString();

Modified: cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreInlinedSchemaWithImport.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreInlinedSchemaWithImport.xml?rev=1343210&r1=1343209&r2=1343210&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreInlinedSchemaWithImport.xml (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreInlinedSchemaWithImport.xml Mon May 28 11:51:57 2012
@@ -32,7 +32,7 @@
         <xs:sequence>
             <xs:element name="name" type="xs:string"/>
             <xs:element name="id" type="xs:int"/>
-            <xs:element name="chapter" ref="ch:thechapter"/>
+            <xs:element ref="ch:thechapter"/>
         </xs:sequence>
       </xs:complexType>
     </xs:schema>

Modified: cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreMultipleSchemas.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreMultipleSchemas.xml?rev=1343210&r1=1343209&r2=1343210&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreMultipleSchemas.xml (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/bookstoreMultipleSchemas.xml Mon May 28 11:51:57 2012
@@ -41,7 +41,7 @@
         <xs:sequence>
             <xs:element name="name" type="xs:string"/>
             <xs:element name="id" type="xs:int"/>
-            <xs:element name="chapter" ref="ch:thechapter"/>
+            <xs:element ref="ch:thechapter"/>
         </xs:sequence>
       </xs:complexType>
     </xs:schema>

Modified: cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/resourceWithEPR.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/resourceWithEPR.xml?rev=1343210&r1=1343209&r2=1343210&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/resourceWithEPR.xml (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/resourceWithEPR.xml Mon May 28 11:51:57 2012
@@ -31,7 +31,7 @@
 	     <xs:complexType>
 	       <xs:sequence>
 	         <xs:element name="name" type="xs:string"/>
-	         <xs:element name="ref" ref="wsa:EndpointReference"/>
+	         <xs:element ref="wsa:EndpointReference"/>
 	       </xs:sequence>  
 	     </xs:complexType>    
 	 </xs:element>