You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/03/18 21:45:43 UTC
svn commit: r1855791 - in /xmlbeans/branches/xmlbeans-536:
src/typeimpl/org/apache/xmlbeans/impl/schema/
src/xmlcomp/org/apache/xmlbeans/impl/tool/ test/src/compile/scomp/checkin/
test/src/compile/scomp/som/common/ test/src/misc/detailed/ test/src/sche...
Author: kiwiwings
Date: Mon Mar 18 21:45:43 2019
New Revision: 1855791
URL: http://svn.apache.org/viewvc?rev=1855791&view=rev
Log:
(XMLBEANS-536) - move generated sources/classes from schemaorg_apache_xmlbeans to org.apache.xmlbeans
Removed:
xmlbeans/branches/xmlbeans-536/test/src/schemas/
Modified:
xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java
xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/Diff.java
xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/SchemaCompiler.java
xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/checkin/XmlBeansCompCheckinTests.java
xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/som/common/SomTestBase.java
xmlbeans/branches/xmlbeans-536/test/src/misc/detailed/JiraRegressionSchemaCompilerTest.java
Modified: xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java (original)
+++ xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java Mon Mar 18 21:45:43 2019
@@ -15,18 +15,12 @@
package org.apache.xmlbeans.impl.schema;
-import org.apache.xmlbeans.SchemaTypeLoader;
-import org.apache.xmlbeans.SchemaType;
-import org.apache.xmlbeans.SchemaGlobalElement;
-import org.apache.xmlbeans.SchemaGlobalAttribute;
-import org.apache.xmlbeans.SchemaModelGroup;
-import org.apache.xmlbeans.SchemaAttributeGroup;
-import org.apache.xmlbeans.SchemaTypeSystem;
-import org.apache.xmlbeans.SchemaIdentityConstraint;
-import org.apache.xmlbeans.ResourceLoader;
+import org.apache.xmlbeans.*;
import org.apache.xmlbeans.impl.common.SystemCache;
import org.apache.xmlbeans.impl.common.QNameHelper;
import org.apache.xmlbeans.impl.common.XBeanDebug;
+import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
+
import javax.xml.namespace.QName;
import java.io.InputStream;
@@ -62,6 +56,12 @@ public class SchemaTypeLoaderImpl extend
public static String METADATA_PACKAGE_LOAD = METADATA_PACKAGE_GEN;
private static final Object CACHED_NOT_FOUND = new Object();
+ private static final String[] basePackage = { "org.apache.xmlbeans", "schemaorg_apache_xmlbeans" };
+ private static final String[] baseSchemas = { "sXMLCONFIG", "sXMLLANG", "sXMLSCHEMA", "sXMLTOOLS" };
+
+
+
+
private static class SchemaTypeLoaderCache extends SystemCache
{
// The following maintains a cache of SchemaTypeLoaders per ClassLoader per Thread.
@@ -168,44 +168,30 @@ public class SchemaTypeLoaderImpl extend
* @since XmlBeans 3.0.3
*/
public static SchemaTypeLoader build(final SchemaTypeLoader[] searchPath, ResourceLoader resourceLoader, ClassLoader classLoader, String metadataPath) {
- final SchemaTypeLoader[] sp;
+ // assemble a flattened search path with no duplicates
+ SubLoaderList list = new SubLoaderList();
- if (searchPath == null) {
- // if the metadata directory is customized, fallback to the xmlbeans typesystems
- final boolean isDefaultPath = (metadataPath == null || ("schema" + METADATA_PACKAGE_GEN).equals(metadataPath));
- if (isDefaultPath) {
- sp = null;
- } else {
- String[] baseHolder = {
- "schemaorg_apache_xmlbeans.system.sXMLCONFIG.TypeSystemHolder",
- "schemaorg_apache_xmlbeans.system.sXMLLANG.TypeSystemHolder",
- "schemaorg_apache_xmlbeans.system.sXMLSCHEMA.TypeSystemHolder",
- "schemaorg_apache_xmlbeans.system.sXMLTOOLS.TypeSystemHolder"
- };
-
- sp = new SchemaTypeLoader[baseHolder.length];
- for (int i=0; i<baseHolder.length; i++) {
- try {
- Class cls = Class.forName(baseHolder[i]);
- sp[i] = (SchemaTypeLoader)cls.getDeclaredField("typeSystem").get(null);
- } catch (Exception e) {
- System.out.println("throw runtime: "+e.toString());
- throw new RuntimeException(e);
- }
+ list.add(searchPath);
+
+ ClassLoader cl = (classLoader == null) ? SchemaDocument.class.getClassLoader() : classLoader;
+
+ for (String prefix : basePackage) {
+ for (String holder : baseSchemas) {
+ String clName = prefix + ".system." + holder + ".TypeSystemHolder";
+ if (cl.getResource(clName.replace(".","/")+".class") == null) {
+ // if the first class isn't found in the package, continue with the next package
+ break;
+ }
+ try {
+ Class cls = Class.forName(clName, true, cl);
+ list.add((SchemaTypeLoader)cls.getDeclaredField("typeSystem").get(null));
+ } catch (Exception e) {
+ throw new XmlRuntimeException(e);
}
}
- } else {
- // assemble a flattened search path with no duplicates
- SubLoaderList list = new SubLoaderList();
- list.add(searchPath);
- sp = list.toArray();
}
- if (sp != null && sp.length == 1 && resourceLoader == null && classLoader == null) {
- return sp[0];
- }
-
- return new SchemaTypeLoaderImpl(sp, resourceLoader, classLoader, metadataPath);
+ return new SchemaTypeLoaderImpl(list.toArray(), resourceLoader, classLoader, metadataPath);
}
/**
@@ -262,17 +248,26 @@ public class SchemaTypeLoaderImpl extend
*/
private SchemaTypeLoaderImpl(SchemaTypeLoader[] searchPath, ResourceLoader resourceLoader, ClassLoader classLoader, String metadataPath)
{
- if (searchPath == null)
- _searchPath = EMPTY_SCHEMATYPELOADER_ARRAY;
- else
- _searchPath = searchPath;
+ _searchPath = (searchPath == null) ? EMPTY_SCHEMATYPELOADER_ARRAY : searchPath;
_resourceLoader = resourceLoader;
_classLoader = classLoader;
- this._metadataPath = (metadataPath == null) ? "schema" + METADATA_PACKAGE_LOAD : metadataPath;
+
+ if (metadataPath != null) {
+ this._metadataPath = metadataPath;
+ } else {
+ final String path26 = "schema" + METADATA_PACKAGE_LOAD.replace("/","_");
+ this._metadataPath = (isPath30(_classLoader)) ? METADATA_PACKAGE_LOAD : path26;
+ }
initCaches();
}
+ private static boolean isPath30(ClassLoader loader) {
+ final String path30 = METADATA_PACKAGE_LOAD + "/system";
+ final ClassLoader cl = (loader != null) ? loader : SchemaDocument.class.getClassLoader();
+ return cl.getResource(path30) != null;
+ }
+
/**
* Initializes the caches.
*/
Modified: xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java (original)
+++ xmlbeans/branches/xmlbeans-536/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeSystemImpl.java Mon Mar 18 21:45:43 2019
@@ -74,6 +74,8 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -136,11 +138,16 @@ public class SchemaTypeSystemImpl extend
static final int FLAG_ATTRIBUTE_TYPE = 0x80000;
/**
+ * regex to identify the type system holder package namespace
+ */
+ private static final Pattern packPat = Pattern.compile("^(.+)(\\.[^.]+){3}$");
+
+ /**
* This is to support the feature of a separate/private XMLBeans
* distribution that will not colide with the public org apache
* xmlbeans one.
* METADATA_PACKAGE_GEN will be "" for the original and something like
- * com_mycompany_private_xmlbeans for a private distribution of XMLBeans.
+ * com.mycompany.private.xmlbeans for a private distribution of XMLBeans.
*
* There are two properties:
* METADATA_PACKAGE_GEN - used for generating metadata
@@ -158,7 +165,7 @@ public class SchemaTypeSystemImpl extend
SchemaTypeSystem.class.getName().substring(0, SchemaTypeSystem.class.getName().lastIndexOf(".")) :
stsPackage.getName();
- METADATA_PACKAGE_GEN = stsPackageName.replaceAll("\\.", "_");
+ METADATA_PACKAGE_GEN = stsPackageName.replace('.', '/');
}
private static String nameToPathString(String nameForSystem)
@@ -171,6 +178,31 @@ public class SchemaTypeSystemImpl extend
return nameForSystem;
}
+ protected SchemaTypeSystemImpl() {
+ String fullname = getClass().getName();
+ _name = fullname.substring(0, fullname.lastIndexOf('.'));
+ XBeanDebug.trace(XBeanDebug.TRACE_SCHEMA_LOADING, "Loading type system " + _name, 1);
+ _basePackage = nameToPathString(_name);
+ _classloader = getClass().getClassLoader();
+ _linker = this;
+ _resourceLoader = new ClassLoaderResourceLoader(_classloader);
+ try
+ {
+ initFromHeader();
+ }
+ catch (RuntimeException e)
+ {
+ XBeanDebug.logException(e);
+ throw e;
+ }
+ catch (Error e)
+ {
+ XBeanDebug.logException(e);
+ throw e;
+ }
+ XBeanDebug.trace(XBeanDebug.TRACE_SCHEMA_LOADING, "Finished loading type system " + _name, -1);
+ }
+
public SchemaTypeSystemImpl(Class indexclass)
{
String fullname = indexclass.getName();
@@ -235,7 +267,7 @@ public class SchemaTypeSystemImpl extend
Class c = Class.forName(name + "." + SchemaTypeCodePrinter.INDEX_CLASSNAME, true, loader);
return (SchemaTypeSystemImpl)c.getField("typeSystem").get(null);
}
- catch (Exception e)
+ catch (Throwable e)
{
return null;
}
@@ -3818,8 +3850,9 @@ public class SchemaTypeSystemImpl extend
*
* @since XmlBeans 3.0.3
*/
- protected String getMetadataPath() {
- return "schema" + METADATA_PACKAGE_GEN;
+ public String getMetadataPath() {
+ Matcher m = packPat.matcher(getClass().getName());
+ m.find();
+ return m.group(1).replace('.','/');
}
-
}
Modified: xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/Diff.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/Diff.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/Diff.java (original)
+++ xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/Diff.java Mon Mar 18 21:45:43 2019
@@ -99,14 +99,14 @@ public class Diff
{
ZipEntry ze = (ZipEntry) entries1.nextElement();
String name = ze.getName();
- if (name.startsWith("schema" + SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system/s") && name.endsWith(".xsb"))
+ if (name.startsWith(SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system/s") && name.endsWith(".xsb"))
list1.add(ze);
}
for (; entries2.hasMoreElements(); )
{
ZipEntry ze = (ZipEntry) entries2.nextElement();
String name = ze.getName();
- if (name.startsWith("schema" + SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system/s") && name.endsWith(".xsb"))
+ if (name.startsWith(SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system/s") && name.endsWith(".xsb"))
list2.add(ze);
}
ZipEntry[] files1 = (ZipEntry[]) list1.toArray(new ZipEntry[list1.size()]);
@@ -171,8 +171,8 @@ public class Diff
* Navigate three directories deep to get to the type system.
* Assume the schema[METADATA_PACKAGE_LOAD]/system/* structure
*/
- File temp1 = new File(dir1, "schema" + SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system");
- File temp2 = new File(dir2, "schema" + SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system");
+ File temp1 = new File(dir1, SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system");
+ File temp2 = new File(dir2, SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/system");
if (temp1.exists() && temp2.exists())
{
File[] files1 = temp1.listFiles();
Modified: xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/SchemaCompiler.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/SchemaCompiler.java (original)
+++ xmlbeans/branches/xmlbeans-536/src/xmlcomp/org/apache/xmlbeans/impl/tool/SchemaCompiler.java Mon Mar 18 21:45:43 2019
@@ -1057,7 +1057,7 @@ public class SchemaCompiler
boolean result = true;
- File schemasDir = IOUtil.createDir(classesDir, "schema" + SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/src");
+ File schemasDir = IOUtil.createDir(classesDir, SchemaTypeSystemImpl.METADATA_PACKAGE_GEN + "/src");
// build the in-memory type system
XmlErrorWatcher errorListener = new XmlErrorWatcher(outerErrorListener);
Modified: xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/checkin/XmlBeansCompCheckinTests.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/checkin/XmlBeansCompCheckinTests.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/checkin/XmlBeansCompCheckinTests.java (original)
+++ xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/checkin/XmlBeansCompCheckinTests.java Mon Mar 18 21:45:43 2019
@@ -37,16 +37,16 @@ public class XmlBeansCompCheckinTests ex
final Vector expSrcType = new Vector();
public XmlBeansCompCheckinTests() {
- expBinType.add("schemaorg_apache_xmlbeans/system/apiCompile/atypedb57type.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/system/apiCompile/elname429edoctype.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/system/apiCompile/elnameelement.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/system/apiCompile/index.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/element/http_3A_2F_2Fbaz/elName.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/type/http_3A_2F_2Fbaz/aType.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/namespace/http_3A_2F_2Fbaz/xmlns.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/javaname/baz/ElNameDocument.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/javaname/baz/AType.xsb");
- expBinType.add("schemaorg_apache_xmlbeans/system/apiCompile/TypeSystemHolder.class");
+ expBinType.add("org/apache/xmlbeans/system/apiCompile/atypedb57type.xsb");
+ expBinType.add("org/apache/xmlbeans/system/apiCompile/elname429edoctype.xsb");
+ expBinType.add("org/apache/xmlbeans/system/apiCompile/elnameelement.xsb");
+ expBinType.add("org/apache/xmlbeans/system/apiCompile/index.xsb");
+ expBinType.add("org/apache/xmlbeans/element/http_3A_2F_2Fbaz/elName.xsb");
+ expBinType.add("org/apache/xmlbeans/type/http_3A_2F_2Fbaz/aType.xsb");
+ expBinType.add("org/apache/xmlbeans/namespace/http_3A_2F_2Fbaz/xmlns.xsb");
+ expBinType.add("org/apache/xmlbeans/javaname/baz/ElNameDocument.xsb");
+ expBinType.add("org/apache/xmlbeans/javaname/baz/AType.xsb");
+ expBinType.add("org/apache/xmlbeans/system/apiCompile/TypeSystemHolder.class");
expSrcType.add("baz.AType");
expSrcType.add("baz.impl.ATypeImpl");
Modified: xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/som/common/SomTestBase.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/som/common/SomTestBase.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/som/common/SomTestBase.java (original)
+++ xmlbeans/branches/xmlbeans-536/test/src/compile/scomp/som/common/SomTestBase.java Mon Mar 18 21:45:43 2019
@@ -303,7 +303,7 @@ public class SomTestBase extends Compile
public boolean checkPSOMSave(SchemaTypeSystem tgtSTS)
{
- String outDirName = tgtSTS.getName().split("schemaorg_apache_xmlbeans.system.")[1];
+ String outDirName = tgtSTS.getName().split("org.apache.xmlbeans.system.")[1];
String outDirNameWithPath = somOutputRootDir + P + runid + P + outDirName;
// call the save
Modified: xmlbeans/branches/xmlbeans-536/test/src/misc/detailed/JiraRegressionSchemaCompilerTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/xmlbeans-536/test/src/misc/detailed/JiraRegressionSchemaCompilerTest.java?rev=1855791&r1=1855790&r2=1855791&view=diff
==============================================================================
--- xmlbeans/branches/xmlbeans-536/test/src/misc/detailed/JiraRegressionSchemaCompilerTest.java (original)
+++ xmlbeans/branches/xmlbeans-536/test/src/misc/detailed/JiraRegressionSchemaCompilerTest.java Mon Mar 18 21:45:43 2019
@@ -39,6 +39,7 @@ public class JiraRegressionSchemaCompile
params.setErrorListener(errors);
params.setSrcDir(new File(schemaCompOutputDirPath + outputDirName + P + "src"));
params.setClassesDir(new File(schemaCompOutputDirPath + outputDirName + P + "classes"));
+ params.setQuiet(true);
SchemaCompiler.compile(params);
return errors;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org