You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2024/03/17 18:27:25 UTC

svn commit: r1916370 - in /xmlbeans/trunk/src: main/java/org/apache/xmlbeans/impl/common/ main/java/org/apache/xmlbeans/impl/schema/ main/java9/ test/java/xmlobject/detailed/

Author: fanningpj
Date: Sun Mar 17 18:27:24 2024
New Revision: 1916370

URL: http://svn.apache.org/viewvc?rev=1916370&view=rev
Log:
[XMLBEANS-648] issue with compiling XSDs when using modularized runtimes. Thanks to Rodrigo Merino. This closes #13

Modified:
    xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/DefaultClassLoaderResourceLoader.java
    xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
    xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java
    xmlbeans/trunk/src/main/java9/module-info.class
    xmlbeans/trunk/src/test/java/xmlobject/detailed/TestsFromBugs.java

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/DefaultClassLoaderResourceLoader.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/DefaultClassLoaderResourceLoader.java?rev=1916370&r1=1916369&r2=1916370&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/DefaultClassLoaderResourceLoader.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/common/DefaultClassLoaderResourceLoader.java Sun Mar 17 18:27:24 2024
@@ -30,7 +30,7 @@ public class DefaultClassLoaderResourceL
             in = getResourceAsStream(DefaultClassLoaderResourceLoader.class.getClassLoader(), resourceName);
         }
         if (in == null) {
-            in = DefaultClassLoaderResourceLoader.class.getResourceAsStream(resourceName);
+            in = DefaultClassLoaderResourceLoader.class.getResourceAsStream("/" + resourceName);
         }
         return in;
     }

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java?rev=1916370&r1=1916369&r2=1916370&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java Sun Mar 17 18:27:24 2024
@@ -265,7 +265,7 @@ public class SchemaTypeLoaderImpl extend
             tsname = crackEntry(_resourceLoader, searchfor);
         }
 
-        if (_classLoader != null) {
+        if (tsname == null && _classLoader != null) {
             tsname = crackEntry(_classLoader, searchfor);
         }
 

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java?rev=1916370&r1=1916369&r2=1916370&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java Sun Mar 17 18:27:24 2024
@@ -16,6 +16,7 @@
 package org.apache.xmlbeans.impl.schema;
 
 import org.apache.xmlbeans.*;
+import org.apache.xmlbeans.impl.common.DefaultClassLoaderResourceLoader;
 import org.apache.xmlbeans.impl.common.QNameHelper;
 import org.apache.xmlbeans.impl.common.XBeanDebug;
 import org.apache.xmlbeans.impl.util.ExceptionUtil;
@@ -196,7 +197,7 @@ public class SchemaTypeSystemImpl extend
         _name = fullname.substring(0, fullname.lastIndexOf('.'));
         XBeanDebug.LOG.atTrace().log("Loading type system {}", _name);
         _classloader = indexclass.getClassLoader();
-        _linker = SchemaTypeLoaderImpl.build(null, null, _classloader, getMetadataPath());
+        _linker = SchemaTypeLoaderImpl.build(null, new DefaultClassLoaderResourceLoader(), _classloader, getMetadataPath());
         _resourceLoader = new ClassLoaderResourceLoader(_classloader);
         try {
             initFromHeader();

Modified: xmlbeans/trunk/src/main/java9/module-info.class
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java9/module-info.class?rev=1916370&r1=1916369&r2=1916370&view=diff
==============================================================================
Binary files - no diff available.

Modified: xmlbeans/trunk/src/test/java/xmlobject/detailed/TestsFromBugs.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlobject/detailed/TestsFromBugs.java?rev=1916370&r1=1916369&r2=1916370&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/xmlobject/detailed/TestsFromBugs.java (original)
+++ xmlbeans/trunk/src/test/java/xmlobject/detailed/TestsFromBugs.java Sun Mar 17 18:27:24 2024
@@ -20,9 +20,13 @@ import com.mytest.Foo;
 import com.mytest.Info;
 import com.mytest.TestDocument;
 import org.apache.xmlbeans.*;
+import org.apache.xmlbeans.impl.schema.BuiltinSchemaTypeSystem;
+import org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl;
+
 import org.junit.jupiter.api.Test;
 import test.xmlobject.test36510.Test36510AppDocument;
 
+import static org.apache.xmlbeans.XmlBeans.compileXmlBeans;
 import static org.junit.jupiter.api.Assertions.*;
 
 /**
@@ -152,4 +156,49 @@ public class TestsFromBugs {
         assertEquals(1, ats.length);
         assertDoesNotThrow(ats[0]::getSourceName);
     }
+    
+    /**
+     * https://issues.apache.org/jira/browse/XMLBEANS-648
+     */
+    @Test
+    void test648() throws Exception {
+        final XmlOptions options = new XmlOptions();
+        options.setCompileNoUpaRule();
+        options.setCompileNoValidation();
+        options.setCompileDownloadUrls();
+    
+        /* Load the schema */
+        final SchemaTypeLoader contextTypeLoader =
+            SchemaTypeLoaderImpl.build(new SchemaTypeLoader[] {BuiltinSchemaTypeSystem.get()}, null,
+                                       Object.class.getClassLoader());
+    
+        String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"http://validationnamespace.raml.org\" attributeFormDefault=\"unqualified\" elementFormDefault=\"qualified\" targetNamespace=\"http://validationnamespace.raml.org\">\n"
+            + "    <element name=\"__DataType_Fragment__\">\n"
+            + "        <complexType>\n"
+            + "            <sequence>\n"
+            + "                <element name=\"firstname\">\n"
+            + "                    <simpleType>\n"
+            + "                        <restriction base=\"string\"/>\n"
+            + "                    </simpleType>\n"
+            + "                </element>\n"
+            + "                <element name=\"lastname\">\n"
+            + "                    <simpleType>\n"
+            + "                        <restriction base=\"string\"/>\n"
+            + "                    </simpleType>\n"
+            + "                </element>\n"
+            + "                <element name=\"age\">\n"
+            + "                    <simpleType>\n"
+            + "                        <restriction base=\"double\"/>\n"
+            + "                    </simpleType>\n"
+            + "                </element>\n"
+            + "                <any maxOccurs=\"unbounded\" minOccurs=\"0\" processContents=\"skip\"/>\n"
+            + "            </sequence>\n"
+            + "        </complexType>\n"
+            + "    </element>\n"
+            + "</schema>\n"
+            + "";
+        final XmlObject[] schemaRepresentation = new XmlObject[] {contextTypeLoader.parse(schemaString, null, null)};
+    
+        XmlBeans.compileXmlBeans(null, null, schemaRepresentation, null, contextTypeLoader, null, options);
+    }
 }



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