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