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 2021/02/28 02:04:20 UTC

svn commit: r1886991 [2/2] - in /xmlbeans: site/build/site/ site/build/site/community/ site/build/site/documentation/ site/build/site/download/ site/build/site/guide/ site/build/site/samples/ site/src/documentation/content/xdocs/ site/src/documentation...

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java?rev=1886991&r1=1886990&r2=1886991&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java Sun Feb 28 02:04:20 2021
@@ -1560,7 +1560,9 @@ public final class SchemaTypeCodePrinter
         String arrayName = propertyName + "Array";
 
         printJavaDoc("Gets " + (xget ? "(as xml) " : "") + "a List of " + propdesc + "s");
-        emit("@Override");
+        if (!opt.isCompileNoAnnotations()) {
+            emit("@Override");
+        }
         emit("public java.util.List<" + wrappedType + "> " + (xget ? "xget" : "get") + propertyName + "List() {");
         startBlock();
 
@@ -1624,7 +1626,9 @@ public final class SchemaTypeCodePrinter
             if (bmList == null || bmList.contains(BeanMethod.GET)) {
                 // Value getProp()
                 printJavaDoc((several ? "Gets first " : "Gets the ") + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + type + " get" + propertyName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1653,7 +1657,9 @@ public final class SchemaTypeCodePrinter
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.XGET))) {
                 // Value xgetProp()
                 printJavaDoc((several ? "Gets (as xml) first " : "Gets (as xml) the ") + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + xtype + " xget" + propertyName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1675,7 +1681,9 @@ public final class SchemaTypeCodePrinter
             if (nillable && (bmList == null || bmList.contains(BeanMethod.IS_NIL))) {
                 // boolean isNilProp()
                 printJavaDoc((several ? "Tests for nil first " : "Tests for nil ") + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public boolean isNil" + propertyName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1691,7 +1699,9 @@ public final class SchemaTypeCodePrinter
         if (prop.extendsJavaOption() && (bmList == null || bmList.contains(BeanMethod.IS_SET))) {
             // boolean isSetProp()
             printJavaDoc((several ? "True if has at least one " : "True if has ") + propdesc);
-            emit("@Override");
+            if (!opt.isCompileNoAnnotations()) {
+                emit("@Override");
+            }
             emit("public boolean isSet" + propertyName + "() {");
 
             startBlock();
@@ -1722,7 +1732,9 @@ public final class SchemaTypeCodePrinter
             if (bmList == null || bmList.contains(BeanMethod.GET_ARRAY)) {
                 // Value[] getProp()
                 printJavaDoc("Gets array of all " + propdesc + "s");
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + type + "[] get" + arrayName + "() {");
                 startBlock();
 
@@ -1734,7 +1746,9 @@ public final class SchemaTypeCodePrinter
             if (bmList == null || bmList.contains(BeanMethod.GET_IDX)) {
                 // Value getProp(int i)
                 printJavaDoc("Gets ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + type + " get" + arrayName + "(int i) {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1753,7 +1767,9 @@ public final class SchemaTypeCodePrinter
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.XGET_ARRAY))) {
                 // Value[] xgetProp()
                 printJavaDoc("Gets (as xml) array of all " + propdesc + "s");
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + xtype + "[] xget" + arrayName + "() {");
                 startBlock();
                 emit("return xgetArray(" + setIdentifier + ", " + xtype + "[]::new);");
@@ -1763,7 +1779,9 @@ public final class SchemaTypeCodePrinter
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.XGET_IDX))) {
                 // Value xgetProp(int i)
                 printJavaDoc("Gets (as xml) ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + xtype + " xget" + arrayName + "(int i) {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1776,7 +1794,9 @@ public final class SchemaTypeCodePrinter
             if (nillable && (bmList == null || bmList.contains(BeanMethod.IS_NIL_IDX))) {
                 // boolean isNil(int i);
                 printJavaDoc("Tests for nil ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public boolean isNil" + arrayName + "(int i) {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1789,7 +1809,9 @@ public final class SchemaTypeCodePrinter
             // int countProp();
             if (bmList == null || bmList.contains(BeanMethod.SIZE_OF_ARRAY)) {
                 printJavaDoc("Returns number of " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public int sizeOf" + arrayName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1828,7 +1850,9 @@ public final class SchemaTypeCodePrinter
             if (bmList == null || bmList.contains(BeanMethod.SET)) {
                 // void setProp(Value v);
                 printJavaDoc((several ? "Sets first " : "Sets the ") + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void set" + propertyName + "(" + type + " " + safeVarName + ") {");
                 startBlock();
                 if (xmltype && !isSubstGroup && !isAttr) {
@@ -1850,7 +1874,9 @@ public final class SchemaTypeCodePrinter
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.XSET))) {
                 // void xsetProp(Value v)
                 printJavaDoc((several ? "Sets (as xml) first " : "Sets (as xml) the ") + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void xset" + propertyName + "(" + xtype + " " + safeVarName + ") {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1866,7 +1892,9 @@ public final class SchemaTypeCodePrinter
             if (xmltype && !several && (bmList == null || bmList.contains(BeanMethod.ADD_NEW))) {
                 // Value addNewProp()
                 printJavaDoc("Appends and returns a new empty " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + xtype + " addNew" + propertyName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1881,7 +1909,9 @@ public final class SchemaTypeCodePrinter
 
             if (nillable && (bmList == null || bmList.contains(BeanMethod.SET_NIL))) {
                 printJavaDoc((several ? "Nils the first " : "Nils the ") + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void setNil" + propertyName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -1896,7 +1926,9 @@ public final class SchemaTypeCodePrinter
 
         if (prop.extendsJavaOption() && (bmList == null || bmList.contains(BeanMethod.UNSET))) {
             printJavaDoc((several ? "Removes first " : "Unsets the ") + propdesc);
-            emit("@Override");
+            if (!opt.isCompileNoAnnotations()) {
+                emit("@Override");
+            }
             emit("public void unset" + propertyName + "() {");
             startBlock();
             emitImplementationPreamble();
@@ -1917,7 +1949,9 @@ public final class SchemaTypeCodePrinter
             if (bmList == null || bmList.contains(BeanMethod.SET_ARRAY)) {
                 if (xmltype) {
                     printJavaDoc("Sets array of all " + propdesc + "  WARNING: This method is not atomicaly synchronized.");
-                    emit("@Override");
+                    if (!opt.isCompileNoAnnotations()) {
+                        emit("@Override");
+                    }
                     emit("public void set" + arrayName + "(" + type + "[] " + safeVarName + "Array) {");
                     startBlock();
                     // do not use synchronize (monitor()) {  and GlobalLock inside  } !!! deadlock
@@ -1944,7 +1978,9 @@ public final class SchemaTypeCodePrinter
                     endBlock();
                 } else {
                     printJavaDoc("Sets array of all " + propdesc);
-                    emit("@Override");
+                    if (!opt.isCompileNoAnnotations()) {
+                        emit("@Override");
+                    }
                     emit("public void set" + arrayName + "(" + type + "[] " + safeVarName + "Array) {");
                     startBlock();
                     emitImplementationPreamble();
@@ -1986,7 +2022,9 @@ public final class SchemaTypeCodePrinter
 
             if (bmList == null || bmList.contains(BeanMethod.SET_IDX)) {
                 printJavaDoc("Sets ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void set" + arrayName + "(int i, " + type + " " + safeVarName + ") {");
                 startBlock();
                 if (xmltype && !isSubstGroup) {
@@ -2007,7 +2045,9 @@ public final class SchemaTypeCodePrinter
 
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.XSET_ARRAY))) {
                 printJavaDoc("Sets (as xml) array of all " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void xset" + arrayName + "(" + xtype + "[]" + safeVarName + "Array) {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2020,7 +2060,9 @@ public final class SchemaTypeCodePrinter
 
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.XSET_IDX))) {
                 printJavaDoc("Sets (as xml) ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void xset" + arrayName + "(int i, " + xtype + " " + safeVarName + ") {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2034,7 +2076,9 @@ public final class SchemaTypeCodePrinter
 
             if (nillable && (bmList == null || bmList.contains(BeanMethod.SET_NIL_IDX))) {
                 printJavaDoc("Nils the ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void setNil" + arrayName + "(int i) {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2048,7 +2092,9 @@ public final class SchemaTypeCodePrinter
 
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.INSERT_IDX))) {
                 printJavaDoc("Inserts the value as the ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void insert" + propertyName + "(int i, " + type + " " + safeVarName + ") {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2071,7 +2117,9 @@ public final class SchemaTypeCodePrinter
 
             if (!xmltype && (bmList == null || bmList.contains(BeanMethod.ADD))) {
                 printJavaDoc("Appends the value as the last " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void add" + propertyName + "(" + type + " " + safeVarName + ") {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2086,7 +2134,9 @@ public final class SchemaTypeCodePrinter
 
             if (bmList == null || bmList.contains(BeanMethod.INSERT_NEW_IDX)) {
                 printJavaDoc("Inserts and returns a new empty value (as xml) as the ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + xtype + " insertNew" + propertyName + "(int i) {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2107,7 +2157,9 @@ public final class SchemaTypeCodePrinter
 
             if (bmList == null || bmList.contains(BeanMethod.ADD_NEW)) {
                 printJavaDoc("Appends and returns a new empty value (as xml) as the last " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public " + xtype + " addNew" + propertyName + "() {");
                 startBlock();
                 emitImplementationPreamble();
@@ -2122,7 +2174,9 @@ public final class SchemaTypeCodePrinter
 
             if (bmList == null || bmList.contains(BeanMethod.REMOVE_IDX)) {
                 printJavaDoc("Removes the ith " + propdesc);
-                emit("@Override");
+                if (!opt.isCompileNoAnnotations()) {
+                    emit("@Override");
+                }
                 emit("public void remove" + propertyName + "(int i) {");
                 startBlock();
                 emitImplementationPreamble();

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java?rev=1886991&r1=1886990&r2=1886991&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/schema/StscState.java Sun Feb 28 02:04:20 2021
@@ -502,7 +502,7 @@ public class StscState {
     }
 
     /**
-     * True if no particle valid (restriciton) option is set
+     * True if no particle valid (restriction) option is set
      */
     public boolean noPvr() {
         return _noPvr;

Added: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPlugin.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPlugin.java?rev=1886991&view=auto
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPlugin.java (added)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPlugin.java Sun Feb 28 02:04:20 2021
@@ -0,0 +1,407 @@
+/*   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.xmlbeans.impl.tool;
+
+import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.xmlbeans.XmlError;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.*;
+import java.util.*;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.apache.xmlbeans.impl.tool.SchemaCompiler.parsePartialMethods;
+
+@SuppressWarnings("unused")
+@Mojo(name = "compile", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
+public class MavenPlugin extends AbstractMojo {
+    // ******************************************************************************************
+    // As we don't use the maven plugin-plugin, the defaultValues and others need to be manually
+    // copied into resources/maven/plugin.xml
+    // ******************************************************************************************
+
+    /** The maven project */
+    @Parameter( readonly = true, defaultValue = "${project}" )
+    private MavenProject project;
+
+    /** sourceDir is a base directory for the list in sourceschema */
+    @Parameter( defaultValue = "${project.basedir}/src/main/schema" )
+    private String sourceDir;
+
+    /** sourceSchemas is a comma-delimited list of all the schemas you want to compile */
+    @Parameter( defaultValue = "*.xsd,*.wsdl" )
+    private String sourceSchemas;
+
+    /** xmlConfigs points to your xmlconfig.xml file */
+    @Parameter( defaultValue = "${project.basedir}/src/schema/xmlconfig.xml" )
+    private String xmlConfigs;
+
+    /** javaTargetdir is where you want generated java source to appear */
+    @Parameter( defaultValue = "${project.basedir}/target/generated-sources" )
+    private String javaTargetDir;
+
+    /** classTargetDir is where you want compiled class files to appear */
+    @Parameter( defaultValue = "${project.basedir}/target/generated-resources" )
+    private String classTargetDir;
+
+    /** catalogLocation is the location of an entity resolver catalog to use for resolving namespace to schema locations. */
+    @Parameter
+    private String catalogLocation;
+
+    @Parameter
+    private String classPath;
+
+    @Parameter
+    private List<Resource> resources;
+
+    /** buildSchemas sets build process of the generated sources */
+    @Parameter(defaultValue = "true")
+    private boolean buildSchemas;
+
+    /** destination directory of the copied xsd files - default: schemaorg_apache_xmlbeans/src */
+    @Parameter( defaultValue = "schemaorg_apache_xmlbeans/src" )
+    private String baseSchemaLocation;
+
+    /** schema system name - default: ${project.artifactId} */
+    @Parameter( defaultValue = "${project.artifactId}" )
+    private String name;
+
+    /** verbose output  - default: false */
+    @Parameter( defaultValue = "false" )
+    private boolean verbose;
+
+    /** no output  - default: true */
+    @Parameter( defaultValue = "true" )
+    private boolean quite;
+
+    /** deactivate unique particle attribution - default: false */
+    @Parameter( defaultValue = "false" )
+    private boolean noUpa;
+
+    /** deactivate particle valid (restriction) - default: false */
+    @Parameter( defaultValue = "false" )
+    private boolean noPvr;
+
+    /** deactivate annotation generation - default: false */
+    @Parameter( defaultValue = "false" )
+    private boolean noAnn;
+
+    /** do not validate contents of documentation-tags - default: false */
+    @Parameter( defaultValue = "false" )
+    private boolean noVDoc;
+
+    /** Metadata package name. If explicitly set empty, generates to org.apache.xmlbeans.metadata - default: ${project.groupId}.${project.artifactId}.metadata */
+    @Parameter( defaultValue = "${project.groupId}.${project.artifactId}.metadata" )
+    private String repackage;
+
+    /**
+     * If this option is set, then the schema compiler will permit and
+     * ignore multiple definitions of the same component (element, attribute,
+     * type, etc) names in the given namespaces.  If multiple definitions
+     * with the same name appear, the definitions that happen to be processed
+     * last will be ignored.
+     *
+     * a comma-seperated list of namespace URIs
+     */
+    @Parameter
+    private String mdefNamespaces;
+
+    /**
+     * Only generate a subset of the bean methods. Comma-seperated list of the following method types:
+     * GET, XGET, IS_SET, IS_NIL, IS_NIL_IDX, SET, SET_NIL, SET_NIL_IDX, XSET, UNSET,
+     * GET_ARRAY, XGET_ARRAY, GET_IDX, XGET_IDX, XSET_ARRAY, XSET_IDX,
+     * SIZE_OF_ARRAY, SET_ARRAY, SET_IDX,
+     * INSERT_IDX, INSERT_NEW_IDX,
+     * ADD, ADD_NEW, REMOVE_IDX,
+     * GET_LIST, XGET_LIST, SET_LIST,
+     * INSTANCE_TYPE
+     *
+     * Example: "ALL,-GET_LIST,-XGET_LIST" excludes GET_LIST and XGET_LIST methods
+     */
+    @Parameter
+    private String partialMethods;
+
+
+
+    /*
+    public String getSourceDir() {
+        return sourceDir;
+    }
+
+    public void setSourceDir(String sourceDir) {
+        this.sourceDir = sourceDir;
+    }
+
+    public String getSourceSchemas() {
+        return sourceSchemas;
+    }
+
+    public void setSourceSchemas(String sourceSchemas) {
+        this.sourceSchemas = sourceSchemas;
+    }
+
+    public String getXmlConfigs() {
+        return xmlConfigs;
+    }
+
+    public void setXmlConfigs(String xmlConfigs) {
+        this.xmlConfigs = xmlConfigs;
+    }
+
+    public String getJavaTargetDir() {
+        return javaTargetDir;
+    }
+
+    public void setJavaTargetDir(String javaTargetDir) {
+        this.javaTargetDir = javaTargetDir;
+    }
+
+    public String getClassTargetDir() {
+        return classTargetDir;
+    }
+
+    public void setClassTargetDir(String classTargetDir) {
+        this.classTargetDir = classTargetDir;
+    }
+
+    public String getCatalogLocation() {
+        return catalogLocation;
+    }
+
+    public void setCatalogLocation(String catalogLocation) {
+        this.catalogLocation = catalogLocation;
+    }
+
+    public String getClassPath() {
+        return classPath;
+    }
+
+    public void setClassPath(String classPath) {
+        this.classPath = classPath;
+    }
+
+    public List<Resource> getResources() {
+        return resources;
+    }
+
+    public void setResources(List<Resource> resources) {
+        this.resources = resources;
+    }
+
+    public boolean isBuildSchemas() {
+        return buildSchemas;
+    }
+
+    public void setBuildSchemas(boolean buildSchemas) {
+        this.buildSchemas = buildSchemas;
+    }
+
+    public String getBaseSchemaLocation() {
+        return baseSchemaLocation;
+    }
+
+    public void setBaseSchemaLocation(String baseSchemaLocation) {
+        if (baseSchemaLocation != null && !(baseSchemaLocation.length() == 0)) {
+            this.baseSchemaLocation = baseSchemaLocation;
+        }
+    }*/
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (sourceDir == null || sourceDir.isEmpty() || !new File(sourceDir).isDirectory()) {
+            throw new MojoFailureException("Set configuration <sourceDir> (='"+sourceDir+"') to a valid directory containing *.xsd,*.wsdl files.");
+        }
+
+        if (baseSchemaLocation == null || baseSchemaLocation.isEmpty()) {
+            throw new MojoFailureException("baseSchemaLocation is empty");
+        }
+
+        if (sourceSchemas == null) {
+            getLog().debug("sourceSchemas is null");
+        }
+
+        if (classPath == null) {
+            getLog().debug("classPath is null");
+        }
+
+        List<File> xsds = new ArrayList<>();
+        List<File> wsdls = new ArrayList<>();
+        File base = new File(sourceDir);
+        Resource resource = new Resource();
+        resource.setDirectory(sourceDir);
+        resource.setTargetPath(baseSchemaLocation);
+
+        // if sourceSchemas is not specified use all found schemas
+        // otherwise convert comma-separated string to regex including glob parameter
+        Pattern pat = Pattern.compile(sourceSchemas == null ? ".*" :
+            "(" + sourceSchemas
+                .replace(",","|")
+                .replace(".", "\\.")
+                .replace("*",".*") +
+            ")");
+
+        File[] schemaFiles = Objects.requireNonNull(base.listFiles((dir, name) ->
+            !name.endsWith(".xsdconfig") && pat.matcher(name).matches()));
+        for (File sf : schemaFiles) {
+            (sf.getName().endsWith(".wsdl") ? wsdls : xsds).add(sf);
+            resource.addInclude(sf.getName());
+        }
+
+        resources = Collections.singletonList(resource);
+
+        if (buildSchemas) {
+            List<File> configs = (xmlConfigs == null || xmlConfigs.isEmpty()) ? Collections.emptyList()
+                : Stream.of(xmlConfigs.split(",")).flatMap(s ->
+                    Stream.of(new File(s), new File(base, s)).filter(File::exists)
+                ).collect(Collectors.toList());
+
+            List<File> classPathList = new ArrayList<>();
+            List<URL> urls = new ArrayList<>();
+            if (classPath != null) {
+                for (String classpathElement : classPath.split(",")) {
+                    File file = new File(classpathElement);
+                    classPathList.add(file);
+                    try {
+                        urls.add(file.toURI().toURL());
+                    } catch (MalformedURLException e) {
+                        throw new MojoFailureException("invalid classpath: "+file, e);
+                    }
+                }
+            }
+            ClassLoader cl = new URLClassLoader(urls.toArray(new URL[0]));
+            EntityResolver entityResolver = MavenPluginResolver.getResolver(catalogLocation);
+            URI sourceDirURI = new File(sourceDir).toURI();
+            entityResolver = new PassThroughResolver(cl, entityResolver, sourceDirURI, baseSchemaLocation);
+
+            Parameters params = new Parameters();
+            if (!xsds.isEmpty()) {
+                params.setXsdFiles(xsds.toArray(new File[0]));
+            }
+            if (!wsdls.isEmpty()) {
+                params.setWsdlFiles(wsdls.toArray(new File[0]));
+            }
+            if (!configs.isEmpty()) {
+                params.setConfigFiles(configs.toArray(new File[0]));
+            }
+            if (!classPathList.isEmpty()) {
+                params.setClasspath(classPathList.toArray(new File[0]));
+            }
+            params.setName(name);
+            params.setSrcDir(new File(javaTargetDir));
+            params.setClassesDir(new File(classTargetDir));
+            params.setNojavac(true);
+            params.setVerbose(verbose);
+            params.setEntityResolver(entityResolver);
+            params.setQuiet(quite);
+            params.setNoUpa(noUpa);
+            params.setNoPvr(noPvr);
+            params.setNoAnn(noAnn);
+            params.setNoVDoc(noVDoc);
+            if (repackage != null && !repackage.isEmpty()) {
+                params.setRepackage("org.apache.xmlbeans.metadata:"+repackage);
+            }
+            if (mdefNamespaces != null && !mdefNamespaces.isEmpty()) {
+                params.setMdefNamespaces(new HashSet<>(Arrays.asList(mdefNamespaces.split(","))));
+            }
+            List<XmlError> errorList = new ArrayList<>();
+            params.setErrorListener(errorList);
+
+            if (partialMethods != null && !partialMethods.isEmpty()) {
+                params.setPartialMethods(parsePartialMethods(partialMethods));
+            }
+//            params.setBaseDir(null);
+//            params.setJavaFiles(new File[0]);
+//            params.setCompiler(null);
+//            params.setMemoryInitialSize(null);
+//            params.setMemoryMaximumSize(null);
+//            params.setOutputJar(null);
+//            params.setDownload(false);
+//            params.setDebug(debug);
+//            params.setExtensions(null);
+
+            boolean result = SchemaCompiler.compile(params);
+
+            if (!result) {
+                throw new MojoFailureException("Schema compilation failed!\n"+
+                    errorList.stream().map(XmlError::toString).collect(Collectors.joining("\n"))
+                );
+            }
+
+            Resource genResource = new Resource();
+            genResource.setDirectory(classTargetDir);
+            project.addResource(genResource);
+            project.addCompileSourceRoot(javaTargetDir);
+        }
+
+    }
+
+    private static class PassThroughResolver implements EntityResolver {
+        private final ClassLoader cl;
+        private final EntityResolver delegate;
+        private final URI sourceDir;
+        //this copy has an / appended
+        private final String baseSchemaLocation;
+
+        public PassThroughResolver(ClassLoader cl, EntityResolver delegate, URI sourceDir, String baseSchemaLocation) {
+            this.cl = cl;
+            this.delegate = delegate;
+            this.sourceDir = sourceDir;
+            this.baseSchemaLocation = baseSchemaLocation + "/";
+        }
+
+        public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
+            if (delegate != null) {
+                InputSource is = delegate.resolveEntity(publicId, systemId);
+                if (is != null) {
+                    return is;
+                }
+            }
+            System.out.println("Could not resolve publicId: " + publicId + ", systemId: " + systemId + " from catalog");
+            String localSystemId;
+            try {
+                localSystemId = sourceDir.relativize(new URI(systemId)).toString();
+            } catch (URISyntaxException e) {
+                throw new IOException("Could not relativeize systemId", e);
+            }
+            InputStream in = cl.getResourceAsStream(localSystemId);
+            if (in != null) {
+                System.out.println("found in classpath at: " + localSystemId);
+                return new InputSource(in);
+            }
+            in = cl.getResourceAsStream(baseSchemaLocation + localSystemId);
+            if (in != null) {
+                System.out.println("found in classpath at: META-INF/" + localSystemId);
+                return new InputSource(in);
+            }
+            System.out.println("Not found in classpath, looking in current directory: " + systemId);
+            return new InputSource(systemId);
+        }
+    }
+
+}

Added: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginHelp.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginHelp.java?rev=1886991&view=auto
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginHelp.java (added)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginHelp.java Sun Feb 28 02:04:20 2021
@@ -0,0 +1,378 @@
+/*   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.xmlbeans.impl.tool;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Display help information on xmlbeans-maven-plugin.<br>
+ * Call <code>mvn xmlbeans.plugin:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</code> to display parameter details.
+ */
+@Mojo(name = "help", requiresProject = false, threadSafe = true)
+public class MavenPluginHelp extends AbstractMojo {
+    // ******************************************************************************************
+    // As we don't use the maven plugin-plugin, the defaultValues and others need to be manually
+    // copied into resources/maven/plugin-help.xml
+    // ******************************************************************************************
+
+
+    /**
+     * If <code>true</code>, display all settable properties for each goal.
+     */
+    @Parameter(property = "detail", defaultValue = "false")
+    private boolean detail;
+
+    /**
+     * The name of the goal for which to show help. If unspecified, all goals will be displayed.
+     */
+    @Parameter(property = "goal")
+    private java.lang.String goal;
+
+    /**
+     * The maximum length of a display line, should be positive.
+     */
+    @Parameter(property = "lineLength", defaultValue = "80")
+    private int lineLength;
+
+    /**
+     * The number of spaces per indentation level, should be positive.
+     */
+    @Parameter(property = "indentSize", defaultValue = "2")
+    private int indentSize;
+
+    // groupId/artifactId/plugin-help.xml
+    private static final String PLUGIN_HELP_PATH = "/META-INF/maven/plugin.xml";
+
+    private static final int DEFAULT_LINE_LENGTH = 80;
+
+    private Document build() throws MojoExecutionException {
+        getLog().debug("load plugin-help.xml: " + PLUGIN_HELP_PATH);
+        try (InputStream is = getClass().getResourceAsStream(PLUGIN_HELP_PATH)) {
+            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+            return dBuilder.parse(is);
+        } catch (IOException | ParserConfigurationException | SAXException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void execute() throws MojoExecutionException {
+        if (lineLength <= 0) {
+            getLog().warn("The parameter 'lineLength' should be positive, using '80' as default.");
+            lineLength = DEFAULT_LINE_LENGTH;
+        }
+        if (indentSize <= 0) {
+            getLog().warn("The parameter 'indentSize' should be positive, using '2' as default.");
+            indentSize = 2;
+        }
+
+        Document doc = build();
+
+        StringBuilder sb = new StringBuilder();
+        Node plugin = getSingleChild(doc, "plugin");
+
+
+        String name = getValue(plugin, "name");
+        String version = getValue(plugin, "version");
+        String id = getValue(plugin, "groupId") + ":" + getValue(plugin, "artifactId") + ":" + version;
+        if (isNotEmpty(name) && !name.contains(id)) {
+            append(sb, name + " " + version, 0);
+        } else {
+            if (isNotEmpty(name)) {
+                append(sb, name, 0);
+            } else {
+                append(sb, id, 0);
+            }
+        }
+        append(sb, getValue(plugin, "description"), 1);
+        append(sb, "", 0);
+
+        //<goalPrefix>plugin</goalPrefix>
+        String goalPrefix = getValue(plugin, "goalPrefix");
+
+        Node mojos1 = getSingleChild(plugin, "mojos");
+
+        List<Node> mojos = findNamedChild(mojos1, "mojo");
+
+        if (goal == null || goal.length() <= 0) {
+            append(sb, "This plugin has " + mojos.size() + (mojos.size() > 1 ? " goals:" : " goal:"), 0);
+            append(sb, "", 0);
+        }
+
+        for (Node mojo : mojos) {
+            writeGoal(sb, goalPrefix, (Element) mojo);
+        }
+
+        if (getLog().isInfoEnabled()) {
+            getLog().info(sb.toString());
+        }
+    }
+
+
+    private static boolean isNotEmpty(String string) {
+        return string != null && string.length() > 0;
+    }
+
+    private String getValue(Node node, String elementName)
+        throws MojoExecutionException {
+        return getSingleChild(node, elementName).getTextContent();
+    }
+
+    private Node getSingleChild(Node node, String elementName)
+        throws MojoExecutionException {
+        List<Node> namedChild = findNamedChild(node, elementName);
+        if (namedChild.isEmpty()) {
+            throw new MojoExecutionException("Could not find " + elementName + " in plugin-help.xml");
+        }
+        if (namedChild.size() > 1) {
+            throw new MojoExecutionException("Multiple " + elementName + " in plugin-help.xml");
+        }
+        return namedChild.get(0);
+    }
+
+    private List<Node> findNamedChild(Node node, String elementName) {
+        List<Node> result = new ArrayList<>();
+        NodeList childNodes = node.getChildNodes();
+        for (int i = 0; i < childNodes.getLength(); i++) {
+            Node item = childNodes.item(i);
+            if (elementName.equals(item.getNodeName())) {
+                result.add(item);
+            }
+        }
+        return result;
+    }
+
+    private Node findSingleChild(Node node, String elementName)
+        throws MojoExecutionException {
+        List<Node> elementsByTagName = findNamedChild(node, elementName);
+        if (elementsByTagName.isEmpty()) {
+            return null;
+        }
+        if (elementsByTagName.size() > 1) {
+            throw new MojoExecutionException("Multiple " + elementName + "in plugin-help.xml");
+        }
+        return elementsByTagName.get(0);
+    }
+
+    private void writeGoal(StringBuilder sb, String goalPrefix, Element mojo)
+        throws MojoExecutionException {
+        String mojoGoal = getValue(mojo, "goal");
+        Node configurationElement = findSingleChild(mojo, "configuration");
+        Node description = findSingleChild(mojo, "description");
+        if (goal == null || goal.length() <= 0 || mojoGoal.equals(goal)) {
+            append(sb, goalPrefix + ":" + mojoGoal, 0);
+            Node deprecated = findSingleChild(mojo, "deprecated");
+            if ((deprecated != null) && isNotEmpty(deprecated.getTextContent())) {
+                append(sb, "Deprecated. " + deprecated.getTextContent(), 1);
+                if (detail && description != null) {
+                    append(sb, "", 0);
+                    append(sb, description.getTextContent(), 1);
+                }
+            } else if (description != null) {
+                append(sb, description.getTextContent(), 1);
+            }
+            append(sb, "", 0);
+
+            if (detail) {
+                Node parametersNode = getSingleChild(mojo, "parameters");
+                List<Node> parameters = findNamedChild(parametersNode, "parameter");
+                append(sb, "Available parameters:", 1);
+                append(sb, "", 0);
+
+                for (Node parameter : parameters) {
+                    writeParameter(sb, parameter, configurationElement);
+                }
+            }
+        }
+    }
+
+    private void writeParameter(StringBuilder sb, Node parameter, Node configurationElement)
+        throws MojoExecutionException {
+        String parameterName = getValue(parameter, "name");
+        String parameterDescription = getValue(parameter, "description");
+
+        Element fieldConfigurationElement = null;
+        if (configurationElement != null) {
+            fieldConfigurationElement = (Element) findSingleChild(configurationElement, parameterName);
+        }
+
+        String parameterDefaultValue = "";
+        if (fieldConfigurationElement != null && fieldConfigurationElement.hasAttribute("default-value")) {
+            parameterDefaultValue = " (Default: " + fieldConfigurationElement.getAttribute("default-value") + ")";
+        }
+        append(sb, parameterName + parameterDefaultValue, 2);
+        Node deprecated = findSingleChild(parameter, "deprecated");
+        if ((deprecated != null) && isNotEmpty(deprecated.getTextContent())) {
+            append(sb, "Deprecated. " + deprecated.getTextContent(), 3);
+            append(sb, "", 0);
+        }
+        append(sb, parameterDescription, 3);
+        if ("true".equals(getValue(parameter, "required"))) {
+            append(sb, "Required: Yes", 3);
+        }
+        if ((fieldConfigurationElement != null) && isNotEmpty(fieldConfigurationElement.getTextContent())) {
+            String property = getPropertyFromExpression(fieldConfigurationElement.getTextContent());
+            append(sb, "User property: " + property, 3);
+        }
+
+        append(sb, "", 0);
+    }
+
+    /**
+     * <p>Repeat a String <code>n</code> times to form a new string.</p>
+     *
+     * @param str    String to repeat
+     * @param repeat number of times to repeat str
+     * @return String with repeated String
+     * @throws NegativeArraySizeException if <code>repeat &lt; 0</code>
+     * @throws NullPointerException       if str is <code>null</code>
+     */
+    private static String repeat(String str, int repeat) {
+        StringBuilder buffer = new StringBuilder(repeat * str.length());
+
+        for (int i = 0; i < repeat; i++) {
+            buffer.append(str);
+        }
+
+        return buffer.toString();
+    }
+
+    /**
+     * Append a description to the buffer by respecting the indentSize and lineLength parameters.
+     * <b>Note</b>: The last character is always a new line.
+     *
+     * @param sb          The buffer to append the description, not <code>null</code>.
+     * @param description The description, not <code>null</code>.
+     * @param indent      The base indentation level of each line, must not be negative.
+     */
+    private void append(StringBuilder sb, String description, int indent) {
+        for (String line : toLines(description, indent, indentSize, lineLength)) {
+            sb.append(line).append('\n');
+        }
+    }
+
+    /**
+     * Splits the specified text into lines of convenient display length.
+     *
+     * @param text       The text to split into lines, must not be <code>null</code>.
+     * @param indent     The base indentation level of each line, must not be negative.
+     * @param indentSize The size of each indentation, must not be negative.
+     * @param lineLength The length of the line, must not be negative.
+     * @return The sequence of display lines, never <code>null</code>.
+     * @throws NegativeArraySizeException if <code>indent &lt; 0</code>
+     */
+    private static List<String> toLines(String text, int indent, int indentSize, int lineLength) {
+        List<String> lines = new ArrayList<>();
+
+        String ind = repeat("\t", indent);
+
+        String[] plainLines = text.split("(\r\n)|(\r)|(\n)");
+
+        for (String plainLine : plainLines) {
+            toLines(lines, ind + plainLine, indentSize, lineLength);
+        }
+
+        return lines;
+    }
+
+    /**
+     * Adds the specified line to the output sequence, performing line wrapping if necessary.
+     *
+     * @param lines      The sequence of display lines, must not be <code>null</code>.
+     * @param line       The line to add, must not be <code>null</code>.
+     * @param indentSize The size of each indentation, must not be negative.
+     * @param lineLength The length of the line, must not be negative.
+     */
+    private static void toLines(List<String> lines, String line, int indentSize, int lineLength) {
+        int lineIndent = getIndentLevel(line);
+        StringBuilder buf = new StringBuilder(256);
+
+        String[] tokens = line.split(" +");
+
+        for (String token : tokens) {
+            if (buf.length() > 0) {
+                if (buf.length() + token.length() >= lineLength) {
+                    lines.add(buf.toString());
+                    buf.setLength(0);
+                    buf.append(repeat(" ", lineIndent * indentSize));
+                } else {
+                    buf.append(' ');
+                }
+            }
+
+            for (int j = 0; j < token.length(); j++) {
+                char c = token.charAt(j);
+                if (c == '\t') {
+                    buf.append(repeat(" ", indentSize - buf.length() % indentSize));
+                } else if (c == '\u00A0') {
+                    buf.append(' ');
+                } else {
+                    buf.append(c);
+                }
+            }
+        }
+        lines.add(buf.toString());
+    }
+
+    /**
+     * Gets the indentation level of the specified line.
+     *
+     * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
+     * @return The indentation level of the line.
+     */
+    private static int getIndentLevel(String line) {
+        int level = 0;
+        for (int i = 0; i < line.length() && line.charAt(i) == '\t'; i++) {
+            level++;
+        }
+        for (int i = level + 1; i <= level + 4 && i < line.length(); i++) {
+            if (line.charAt(i) == '\t') {
+                level++;
+                break;
+            }
+        }
+        return level;
+    }
+
+    private String getPropertyFromExpression(String expression) {
+        if (expression != null && expression.startsWith("${") && expression.endsWith("}")
+            && !expression.substring(2).contains("${")) {
+            // expression="${xxx}" -> property="xxx"
+            return expression.substring(2, expression.length() - 1);
+        }
+        // no property can be extracted
+        return null;
+    }
+}

Added: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java?rev=1886991&view=auto
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java (added)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java Sun Feb 28 02:04:20 2021
@@ -0,0 +1,34 @@
+/*   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.xmlbeans.impl.tool;
+
+import com.sun.org.apache.xml.internal.resolver.CatalogManager;
+import com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver;
+import org.xml.sax.EntityResolver;
+
+/**
+ * Helper class for XML catalogs, which is provided as Java 8 and Java 9+ version (multi release)
+ */
+public class MavenPluginResolver {
+    public static EntityResolver getResolver(String catalogLocation) {
+        if (catalogLocation == null) {
+            return null;
+        }
+        CatalogManager catalogManager = CatalogManager.getStaticManager();
+        catalogManager.setCatalogFiles(catalogLocation);
+        return new CatalogResolver(catalogManager);
+    }
+}

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java?rev=1886991&r1=1886990&r2=1886991&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java Sun Feb 28 02:04:20 2021
@@ -639,7 +639,7 @@ public class SchemaCompiler {
 
         long start = System.currentTimeMillis();
 
-        // Calculate the usenames based on the relativized filenames on the filesystem
+        // Calculate the basenames based on the relativized filenames on the filesystem
         if (baseDir == null) {
             String userDir = SystemProperties.getProperty("user.dir");
             assert (userDir != null);
@@ -686,6 +686,7 @@ public class SchemaCompiler {
                 options.setSchemaCodePrinter(codePrinter);
             }
             options.setCompilePartialMethod(partialMethods);
+            options.setCompileNoAnnotations(noAnn);
 
             // save .xsb files
             system.save(filer);

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/XMLBean.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/XMLBean.java?rev=1886991&r1=1886990&r2=1886991&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/XMLBean.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/tool/XMLBean.java Sun Feb 28 02:04:20 2021
@@ -46,6 +46,7 @@ import java.util.*;
  * for instructions on FileSets if you are unfamiliar with their usage.
  */
 
+@SuppressWarnings("unused")
 public class XMLBean extends MatchingTask {
     private final List<FileSet> schemas = new ArrayList<>();
 
@@ -101,7 +102,7 @@ public class XMLBean extends MatchingTas
         //required
         if (schemas.size() == 0
             && schema == null
-            && fileset.getDir(project) == null) {
+            && fileset.getDir(getProject()) == null) {
             String msg = "The 'schema' or 'dir' attribute or a nested fileset is required.";
             if (failonerror) {
                 throw new BuildException(msg);
@@ -129,12 +130,12 @@ public class XMLBean extends MatchingTas
             }
         }
 
-        if (fileset.getDir(project) != null) {
+        if (fileset.getDir(getProject()) != null) {
             schemas.add(fileset);
         }
 
         for (FileSet fs : schemas) {
-            FileScanner scanner = fs.getDirectoryScanner(project);
+            FileScanner scanner = fs.getDirectoryScanner(getProject());
             File basedir = scanner.getBasedir();
             String[] paths = scanner.getIncludedFiles();
 
@@ -190,7 +191,7 @@ public class XMLBean extends MatchingTas
 
             // use the system classpath if user didn't provide any
             if (classpath == null) {
-                classpath = new Path(project);
+                classpath = new Path(getProject());
                 classpath.concatSystemClasspath();
             }
 
@@ -239,7 +240,7 @@ public class XMLBean extends MatchingTas
 
                 // compile the source
                 Javac javac = new Javac();
-                javac.setProject(project);
+                javac.setProject(getProject());
                 javac.setTaskName(getTaskName());
                 javac.setClasspath(classpath);
                 if (compiler != null) {
@@ -258,7 +259,7 @@ public class XMLBean extends MatchingTas
                 javac.setIncludeantruntime(includeAntRuntime);
                 javac.setIncludejavaruntime(includeJavaRuntime);
                 javac.setNowarn(nowarn);
-                javac.setSrcdir(new Path(project, srcgendir.getAbsolutePath()));
+                javac.setSrcdir(new Path(getProject(), srcgendir.getAbsolutePath()));
                 if (memoryInitialSize != null) {
                     javac.setMemoryInitialSize(memoryInitialSize);
                 }
@@ -277,7 +278,7 @@ public class XMLBean extends MatchingTas
                 if (destfile != null) {
                     // jar the compiled classes
                     Jar jar = new Jar();
-                    jar.setProject(project);
+                    jar.setProject(getProject());
                     jar.setTaskName(getTaskName());
                     jar.setBasedir(classgendir);
                     jar.setDestFile(destfile);
@@ -363,7 +364,7 @@ public class XMLBean extends MatchingTas
      */
     public Path createClasspath() {
         if (classpath == null) {
-            classpath = new Path(project);
+            classpath = new Path(getProject());
         }
         return classpath.createPath();
     }
@@ -375,7 +376,7 @@ public class XMLBean extends MatchingTas
      */
     public void setClasspathRef(Reference classpathref) {
         if (classpath == null) {
-            classpath = new Path(project);
+            classpath = new Path(getProject());
         }
 
         classpath.createPath().setRefid(classpathref);
@@ -803,7 +804,7 @@ public class XMLBean extends MatchingTas
 
         public ErrorLogger(boolean noisy) {
             _noisy = noisy;
-            _baseURI = uriFromFile(project.getBaseDir());
+            _baseURI = uriFromFile(getProject().getBaseDir());
         }
 
         public boolean add(XmlError err) {

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpath/saxon/SaxonXPathEngine.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpath/saxon/SaxonXPathEngine.java?rev=1886991&r1=1886990&r2=1886991&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpath/saxon/SaxonXPathEngine.java (original)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/xpath/saxon/SaxonXPathEngine.java Sun Feb 28 02:04:20 2021
@@ -32,7 +32,7 @@ import java.util.List;
 
 public class SaxonXPathEngine extends XPathExecutionContext implements XPathEngine {
     // full datetime format: yyyy-MM-dd'T'HH:mm:ss'Z'
-    private final DateFormat xmlDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+    private final DateFormat xmlDateFormat = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.ROOT);
 
     private Cur _cur;
     private SaxonXPath _engine;

Added: xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.class
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.class?rev=1886991&view=auto
==============================================================================
Binary file - no diff available.

Propchange: xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java?rev=1886991&view=auto
==============================================================================
--- xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java (added)
+++ xmlbeans/trunk/src/main/multimodule/java9/org/apache/xmlbeans/impl/tool/MavenPluginResolver.java Sun Feb 28 02:04:20 2021
@@ -0,0 +1,40 @@
+/*   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.xmlbeans.impl.tool;
+
+import org.xml.sax.EntityResolver;
+
+import javax.xml.catalog.Catalog;
+import javax.xml.catalog.CatalogFeatures;
+import javax.xml.catalog.CatalogManager;
+import java.io.File;
+
+/**
+ * Helper class for XML catalogs, which is provided as Java 8 and Java 9+ version (multi release)
+ */
+public class MavenPluginResolver {
+    public static EntityResolver getResolver(String catalogLocation) {
+        if (catalogLocation == null) {
+            return null;
+        }
+
+        CatalogFeatures features = CatalogFeatures.builder()
+            .with(CatalogFeatures.Feature.PREFER, "system")
+            .build();
+        Catalog catalog = CatalogManager.catalog(features, new File(catalogLocation).toURI());
+        return CatalogManager.catalogResolver(catalog);
+    }
+}

Copied: xmlbeans/trunk/src/main/resources/maven/org.apache.xmlbeans/xmlbeans/pom.xml (from r1886990, xmlbeans/trunk/src/main/resources/maven/pom.xml)
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/resources/maven/org.apache.xmlbeans/xmlbeans/pom.xml?p2=xmlbeans/trunk/src/main/resources/maven/org.apache.xmlbeans/xmlbeans/pom.xml&p1=xmlbeans/trunk/src/main/resources/maven/pom.xml&r1=1886990&r2=1886991&rev=1886991&view=diff
==============================================================================
--- xmlbeans/trunk/src/main/resources/maven/pom.xml (original)
+++ xmlbeans/trunk/src/main/resources/maven/org.apache.xmlbeans/xmlbeans/pom.xml Sun Feb 28 02:04:20 2021
@@ -100,6 +100,26 @@
             <version>3.18.0</version>
             <scope>provided</scope>
         </dependency>
+
+        <!-- dependencies for xmlbeans maven plugin -->
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-model</artifactId>
+            <version>3.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.4</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <profiles>

Added: xmlbeans/trunk/src/main/resources/maven/plugin.xml
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/main/resources/maven/plugin.xml?rev=1886991&view=auto
==============================================================================
--- xmlbeans/trunk/src/main/resources/maven/plugin.xml (added)
+++ xmlbeans/trunk/src/main/resources/maven/plugin.xml Sun Feb 28 02:04:20 2021
@@ -0,0 +1,484 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+-->
+
+<plugin>
+    <name>xmlbeans</name>
+    <description></description>
+    <groupId>org.apache.xmlbeans</groupId>
+    <artifactId>xmlbeans</artifactId>
+    <version>@VERSION@</version>
+    <goalPrefix>xmlbeans.plugin</goalPrefix>
+    <isolatedRealm>false</isolatedRealm>
+    <inheritedByDefault>true</inheritedByDefault>
+    <mojos>
+        <mojo>
+            <goal>help</goal>
+            <description>Display help information on xmlbeans-maven-plugin.&lt;br&gt;
+                Call &lt;code&gt;mvn xmlbeans.plugin:help -Ddetail=true -Dgoal=&amp;lt;goal-name&amp;gt;&lt;/code&gt; to display parameter details.</description>
+            <requiresDirectInvocation>false</requiresDirectInvocation>
+            <requiresProject>false</requiresProject>
+            <requiresReports>false</requiresReports>
+            <aggregator>false</aggregator>
+            <requiresOnline>false</requiresOnline>
+            <inheritedByDefault>true</inheritedByDefault>
+            <implementation>org.apache.xmlbeans.impl.tool.MavenPluginHelp</implementation>
+            <language>java</language>
+            <instantiationStrategy>per-lookup</instantiationStrategy>
+            <executionStrategy>once-per-session</executionStrategy>
+            <threadSafe>true</threadSafe>
+            <parameters>
+                <parameter>
+                    <name>detail</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>If &lt;code&gt;true&lt;/code&gt;, display all settable properties for each goal.</description>
+                </parameter>
+                <parameter>
+                    <name>goal</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>The name of the goal for which to show help. If unspecified, all goals will be displayed.</description>
+                </parameter>
+                <parameter>
+                    <name>indentSize</name>
+                    <type>int</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>The number of spaces per indentation level, should be positive.</description>
+                </parameter>
+                <parameter>
+                    <name>lineLength</name>
+                    <type>int</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>The maximum length of a display line, should be positive.</description>
+                </parameter>
+            </parameters>
+            <configuration>
+                <detail implementation="boolean" default-value="false">${detail}</detail>
+                <goal implementation="java.lang.String">${goal}</goal>
+                <indentSize implementation="int" default-value="2">${indentSize}</indentSize>
+                <lineLength implementation="int" default-value="80">${lineLength}</lineLength>
+            </configuration>
+        </mojo>
+        <mojo>
+            <goal>compile</goal>
+            <requiresDirectInvocation>false</requiresDirectInvocation>
+            <requiresProject>false</requiresProject>
+            <requiresReports>false</requiresReports>
+            <aggregator>false</aggregator>
+            <requiresOnline>false</requiresOnline>
+            <inheritedByDefault>true</inheritedByDefault>
+            <phase>generate-sources</phase>
+            <executePhase>generate-sources</executePhase>
+            <executeGoal>compile</executeGoal>
+            <implementation>org.apache.xmlbeans.impl.tool.MavenPlugin</implementation>
+            <language>java</language>
+            <instantiationStrategy>per-lookup</instantiationStrategy>
+            <executionStrategy>once-per-session</executionStrategy>
+            <threadSafe>false</threadSafe>
+            <parameters>
+                <parameter>
+                    <name>project</name>
+                    <type>org.apache.maven.project.MavenProject</type>
+                    <required>true</required>
+                    <editable>false</editable>
+                    <description>reference to the project</description>
+                </parameter>
+                <parameter>
+                    <name>baseSchemaLocation</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>destination directory of the copied xsd files</description>
+                </parameter>
+                <parameter>
+                    <name>buildSchemas</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>buildSchemas sets build process of the generated sources</description>
+                </parameter>
+                <parameter>
+                    <name>catalogLocation</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>catalogLocation is the location of an entity resolver catalog to use for resolving namespace to schema locations.</description>
+                </parameter>
+                <parameter>
+                    <name>classPath</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description></description>
+                </parameter>
+                <parameter>
+                    <name>classTargetDir</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>classTargetDir is where you want compiled class files to appear</description>
+                </parameter>
+                <parameter>
+                    <name>javaTargetDir</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>javaTargetdir is where you want generated java source to appear</description>
+                </parameter>
+                <parameter>
+                    <name>resources</name>
+                    <type>java.util.List</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description></description>
+                </parameter>
+                <parameter>
+                    <name>sourceDir</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>sourceDir is a base directory for the list in sourceschema</description>
+                </parameter>
+                <parameter>
+                    <name>sourceSchemas</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>sourceSchemas is a comma-delimited list of all the schemas you want to compile</description>
+                </parameter>
+                <parameter>
+                    <name>xmlConfigs</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>xmlConfigs points to your xmlconfig.xml file</description>
+                </parameter>
+                <parameter>
+                    <name>name</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>schema system name</description>
+                </parameter>
+                <parameter>
+                    <name>repackage</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>Metadata package name. If explicitly set empty, generates to org.apache.xmlbeans.metadata</description>
+                </parameter>
+                <parameter>
+                    <name>mdefNamespaces</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>
+                        If this option is set, then the schema compiler will permit and
+                        ignore multiple definitions of the same component (element, attribute,
+                        type, etc) names in the given namespaces.  If multiple definitions
+                        with the same name appear, the definitions that happen to be processed
+                        last will be ignored.
+
+                        a comma-seperated list of namespace URIs
+                    </description>
+                </parameter>
+                <parameter>
+                    <name>partialMethods</name>
+                    <type>java.lang.String</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>
+                        Only generate a subset of the bean methods. Comma-seperated list of the following method types:
+                        GET, XGET, IS_SET, IS_NIL, IS_NIL_IDX, SET, SET_NIL, SET_NIL_IDX, XSET, UNSET,
+                        GET_ARRAY, XGET_ARRAY, GET_IDX, XGET_IDX, XSET_ARRAY, XSET_IDX,
+                        SIZE_OF_ARRAY, SET_ARRAY, SET_IDX,
+                        INSERT_IDX, INSERT_NEW_IDX,
+                        ADD, ADD_NEW, REMOVE_IDX,
+                        GET_LIST, XGET_LIST, SET_LIST,
+                        INSTANCE_TYPE
+
+                        Example: "ALL,-GET_LIST,-XGET_LIST" excludes GET_LIST and XGET_LIST methods
+                    </description>
+                </parameter>
+                <parameter>
+                    <name>verbose</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>verbose output</description>
+                </parameter>
+                <parameter>
+                    <name>quite</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>no output</description>
+                </parameter>
+                <parameter>
+                    <name>noUpa</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>deactivate unique particle attribution</description>
+                </parameter>
+                <parameter>
+                    <name>noPvr</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>deactivate particle valid (restriction)</description>
+                </parameter>
+                <parameter>
+                    <name>noAnn</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>deactivate annotation generation</description>
+                </parameter>
+                <parameter>
+                    <name>noVDoc</name>
+                    <type>boolean</type>
+                    <required>false</required>
+                    <editable>true</editable>
+                    <description>do not validate contents of documentation-tags</description>
+                </parameter>
+            </parameters>
+            <configuration>
+                <project implementation="org.apache.maven.project.MavenProject" default-value="${project}"/>
+                <buildSchemas implementation="boolean" default-value="true"/>
+                <sourceDir implementation="java.lang.String" default-value="${project.basedir}/src/main/schema"/>
+                <sourceSchemas implementation="java.lang.String" default-value="*.xsd,*.wsdl"/>
+                <xmlConfigs implementation="java.lang.String" default-value="${project.basedir}/src/schema/xmlconfig.xml"/>
+                <javaTargetDir implementation="java.lang.String" default-value="${project.basedir}/target/generated-sources"/>
+                <classTargetDir implementation="java.lang.String" default-value="${project.basedir}/target/generated-resources"/>
+                <baseSchemaLocation implementation="java.lang.String" default-value="schemaorg_apache_xmlbeans/src"/>
+                <name implementation="java.lang.String" default-value="${project.artifactId}"/>
+                <repackage implementation="java.lang.String" default-value="${project.groupId}.${project.artifactId}.metadata"/>
+                <verbose implementation="boolean" default-value="false"/>
+                <quite implementation="boolean" default-value="true"/>
+                <noUpa implementation="boolean" default-value="false"/>
+                <noPvr implementation="boolean" default-value="false"/>
+                <noAnn implementation="boolean" default-value="false"/>
+                <noVDoc implementation="boolean" default-value="false"/>
+            </configuration>
+        </mojo>
+    </mojos>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.6.1</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-model</artifactId>-->
+<!--            <version>3.6.1</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-artifact</artifactId>-->
+<!--            <version>3.6.1</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.commons</groupId>-->
+<!--            <artifactId>commons-lang3</artifactId>-->
+<!--            <version>3.8.1</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.eclipse.sisu</groupId>-->
+<!--            <artifactId>org.eclipse.sisu.plexus</artifactId>-->
+<!--            <version>0.3.3</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>javax.enterprise</groupId>-->
+<!--            <artifactId>cdi-api</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>javax.annotation</groupId>-->
+<!--            <artifactId>jsr250-api</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>javax.inject</groupId>-->
+<!--            <artifactId>javax.inject</artifactId>-->
+<!--            <version>1</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.eclipse.sisu</groupId>-->
+<!--            <artifactId>org.eclipse.sisu.inject</artifactId>-->
+<!--            <version>0.3.3</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.codehaus.plexus</groupId>-->
+<!--            <artifactId>plexus-component-annotations</artifactId>-->
+<!--            <version>1.5.5</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.codehaus.plexus</groupId>-->
+<!--            <artifactId>plexus-utils</artifactId>-->
+<!--            <version>3.2.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.codehaus.plexus</groupId>-->
+<!--            <artifactId>plexus-classworlds</artifactId>-->
+<!--            <version>2.6.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven.shared</groupId>-->
+<!--            <artifactId>file-management</artifactId>-->
+<!--            <version>3.0.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven.shared</groupId>-->
+<!--            <artifactId>maven-shared-io</artifactId>-->
+<!--            <version>3.0.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-compat</artifactId>-->
+<!--            <version>3.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-model-builder</artifactId>-->
+<!--            <version>3.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-settings</artifactId>-->
+<!--            <version>3.0</version>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.0</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-settings-builder</artifactId>-->
+<!--            <version>3.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-repository-metadata</artifactId>-->
+<!--            <version>3.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven</groupId>-->
+<!--            <artifactId>maven-aether-provider</artifactId>-->
+<!--            <version>3.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.aether</groupId>-->
+<!--            <artifactId>aether-impl</artifactId>-->
+<!--            <version>1.7</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.aether</groupId>-->
+<!--            <artifactId>aether-spi</artifactId>-->
+<!--            <version>1.7</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.aether</groupId>-->
+<!--            <artifactId>aether-api</artifactId>-->
+<!--            <version>1.7</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.aether</groupId>-->
+<!--            <artifactId>aether-util</artifactId>-->
+<!--            <version>1.7</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.plexus</groupId>-->
+<!--            <artifactId>plexus-sec-dispatcher</artifactId>-->
+<!--            <version>1.3</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.plexus</groupId>-->
+<!--            <artifactId>plexus-cipher</artifactId>-->
+<!--            <version>1.4</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.codehaus.plexus</groupId>-->
+<!--            <artifactId>plexus-interpolation</artifactId>-->
+<!--            <version>1.14</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.sisu</groupId>-->
+<!--            <artifactId>sisu-inject-plexus</artifactId>-->
+<!--            <version>1.4.2</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.sisu</groupId>-->
+<!--            <artifactId>sisu-inject-bean</artifactId>-->
+<!--            <version>1.4.2</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.sonatype.sisu</groupId>-->
+<!--            <artifactId>sisu-guice</artifactId>-->
+<!--            <version>2.1.7</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven.wagon</groupId>-->
+<!--            <artifactId>wagon-provider-api</artifactId>-->
+<!--            <version>2.10</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.maven.shared</groupId>-->
+<!--            <artifactId>maven-shared-utils</artifactId>-->
+<!--            <version>3.0.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>commons-io</groupId>-->
+<!--            <artifactId>commons-io</artifactId>-->
+<!--            <version>2.4</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>com.google.code.findbugs</groupId>-->
+<!--            <artifactId>jsr305</artifactId>-->
+<!--            <version>2.0.1</version>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>2.14.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>2.14.0</version>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.saxon</groupId>
+            <artifactId>Saxon-HE</artifactId>
+            <version>10.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.javaparser</groupId>
+            <artifactId>javaparser-core</artifactId>
+            <version>3.18.0</version>
+        </dependency>
+    </dependencies>
+</plugin>
\ No newline at end of file



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