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/12/27 20:28:41 UTC

svn commit: r1896456 [2/14] - in /xmlbeans/branches/gradle-build: ./ gradle/ gradle/wrapper/ samples/ samples/AbstractTypes/ samples/Any/ samples/DateTime/ samples/MixedContent/ samples/OrderMatters/ samples/SampleTemplate/ samples/SchemaEnum/ samples/...

Modified: xmlbeans/branches/gradle-build/samples/build.xml
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/samples/build.xml?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/samples/build.xml (original)
+++ xmlbeans/branches/gradle-build/samples/build.xml Mon Dec 27 20:28:38 2021
@@ -26,7 +26,7 @@ limitations under the License.
         clean-AbstractTypes,
         clean-SubstitutionGroup,
         clean-DateTime,
-	clean-XsdConfig
+	    clean-XsdConfig
 	">
         <delete dir="build"/>
     </target>
@@ -73,49 +73,49 @@ limitations under the License.
         build-SampleTemplate,
         build-MixedContent,
         build-OrderMatters,
-        build-vxsdb,
         build-SchemaEnum,
         build-AbstractTypes,
         build-SubstitutionGroup,
         build-DateTime,
-	build-XsdConfig
+	    build-XsdConfig
 	">
+    <!-- build-vxsdb,-->
     </target>
 
     <target name="build-SampleTemplate">
-        <ant dir="SampleTemplate" target="build"/>
+        <ant dir="SampleTemplate" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-MixedContent">
-        <ant dir="MixedContent" target="build"/>
+        <ant dir="MixedContent" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-OrderMatters">
-        <ant dir="OrderMatters" target="build"/>
+        <ant dir="OrderMatters" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-vxsdb">
-        <ant dir="vxsdb" target="build"/>
+        <ant dir="vxsdb" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-SchemaEnum">
-        <ant dir="SchemaEnum" target="build"/>
+        <ant dir="SchemaEnum" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-AbstractTypes">
-        <ant dir="AbstractTypes" target="build"/>
+        <ant dir="AbstractTypes" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-SubstitutionGroup">
-        <ant dir="SubstitutionGroup" target="build"/>
+        <ant dir="SubstitutionGroup" target="build" inheritAll="true"/>
     </target>
 
     <target name="build-DateTime">
-        <ant dir="DateTime" target="build"/>
+        <ant dir="DateTime" target="build" inheritAll="true"/>
     </target>
-    
+
     <target name="build-XsdConfig">
-        <ant dir="XsdConfig" target="build"/>
+        <ant dir="XsdConfig" target="build" inheritAll="true"/>
     </target>
 
     <!-- ========================== test ==== -->
@@ -125,13 +125,13 @@ limitations under the License.
         test-SampleTemplate,
         test-MixedContent,
         test-OrderMatters,
-        test-vxsdb,
         test-SchemaEnum,
         test-AbstractTypes,
         test-SubstitutionGroup,
         test-DateTime,
-	test-XsdConfig
+	    test-XsdConfig
 	">
+    <!-- test-vxsdb,-->
     </target>
 
     <target name="test-SampleTemplate">
@@ -176,13 +176,14 @@ limitations under the License.
         dist-SampleTemplate,
         dist-MixedContent,
         dist-OrderMatters,
-        dist-vxsdb,
         dist-SchemaEnum,
         dist-AbstractTypes,
         dist-SubstitutionGroup,
         dist-DateTime,
 	dist-XsdConfig
 	">
+    <!-- dist-vxsdb,-->
+
         <zip destfile="build/samples.zip"
             basedir=".."
             includes="samples/**"

Propchange: xmlbeans/branches/gradle-build/samples/vxsdb/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Dec 27 20:28:38 2021
@@ -0,0 +1,2 @@
+build
+lib

Modified: xmlbeans/branches/gradle-build/samples/vxsdb/build.xml
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/samples/vxsdb/build.xml?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/samples/vxsdb/build.xml (original)
+++ xmlbeans/branches/gradle-build/samples/vxsdb/build.xml Mon Dec 27 20:28:38 2021
@@ -60,17 +60,16 @@
         <property name="xmlbeans.home" value="${env.XMLBEANS_HOME}" />
         <echo message="xmlbeans.home: ${xmlbeans.home}" />
 
-        <!-- check for xbean.jar from binary distribution -->
-        <available property="xmlbeans.lib" value="${xmlbeans.home}/lib" file="${xmlbeans.home}/lib/xbean.jar" />
+        <!-- check for xmlbeans-*.jar from binary distribution -->
+        <pathconvert property="xmlbeans.lib" setonempty="false" pathsep=" ">
+            <path><fileset dir="${xmlbeans.home}/libs" includes="xmlbeans-*.jar" /></path>
+        </pathconvert>
 
-        <!-- check for xbean.jar compiled from source -->
-        <available property="xmlbeans.lib" value="${xmlbeans.home}/build/lib" file="${xmlbeans.home}/build/lib/xbean.jar" />
-
-        <fail message="Set XMLBEANS_HOME in your enviornment." unless="xmlbeans.lib" />
+        <fail message="Set XMLBEANS_HOME in your enviornment." unless="xmlbeans.lib"/>
 
         <echo message="xmlbeans.lib: ${xmlbeans.lib}" />
         <path id="xmlbeans.path">
-            <fileset dir="${xmlbeans.lib}" includes="*.jar" />
+            <fileset dir="${xmlbeans.home}/libs" includes="*.jar"/>
         </path>
 
         <mkdir dir="lib" />

Copied: xmlbeans/branches/gradle-build/settings.gradle (from r1896166, poi/trunk/settings.gradle)
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/settings.gradle?p2=xmlbeans/branches/gradle-build/settings.gradle&p1=poi/trunk/settings.gradle&r1=1896166&r2=1896456&rev=1896456&view=diff
==============================================================================
--- poi/trunk/settings.gradle (original)
+++ xmlbeans/branches/gradle-build/settings.gradle Mon Dec 27 20:28:38 2021
@@ -1,4 +1,4 @@
-rootProject.name = 'poi'
+rootProject.name = 'xmlbeans'
 
-include 'poi', 'poi-ooxml-full', 'poi-ooxml-lite-agent', 'poi-scratchpad',
-        'poi-ooxml', 'poi-excelant', 'poi-examples', 'poi-integration' , 'poi-ooxml-lite'
\ No newline at end of file
+//include 'poi', 'poi-ooxml-full', 'poi-ooxml-lite-agent', 'poi-scratchpad',
+//        'poi-ooxml', 'poi-excelant', 'poi-examples', 'poi-integration' , 'poi-ooxml-lite'
\ No newline at end of file

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/InterfaceExtension.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/InterfaceExtension.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/InterfaceExtension.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/InterfaceExtension.java Mon Dec 27 20:28:38 2021
@@ -44,6 +44,9 @@ public interface InterfaceExtension
         /** Returns the fully qualified type name of the parameter types in order. */
         String[] getParameterTypes();
 
+        /** Returns the name of the parameter */
+        String[] getParameterNames();
+
         /** Returns the fully qualified type name of the exception types. */
         String[] getExceptionTypes();
     }

Added: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/ChildSolverCollectionStrategy.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/ChildSolverCollectionStrategy.java?rev=1896456&view=auto
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/ChildSolverCollectionStrategy.java (added)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/ChildSolverCollectionStrategy.java Mon Dec 27 20:28:38 2021
@@ -0,0 +1,125 @@
+/*   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.config;
+
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import com.github.javaparser.utils.CollectionStrategy;
+import com.github.javaparser.utils.ProjectRoot;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.io.IOException;
+import java.nio.file.*;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.List;
+
+import static java.nio.file.FileVisitResult.CONTINUE;
+import static java.nio.file.FileVisitResult.SKIP_SUBTREE;
+
+/**
+ * Collection strategy which works on a subdirectory and determines the root source directory
+ * for further lookups
+ */
+class ChildSolverCollectionStrategy implements CollectionStrategy {
+    private static final Logger LOG = LogManager.getLogger(ChildSolverCollectionStrategy.class);
+
+    private final ParserConfiguration config;
+    private final PathMatcher javaMatcher = getPathMatcher("glob:**.java");
+    private final PathMatcher jarMatcher = getPathMatcher("glob:**.jar");
+    private final List<Path> roots = new ArrayList<>();
+    private final CombinedTypeSolver combinedTypeSolver;
+
+    ChildSolverCollectionStrategy(ParserConfiguration config, CombinedTypeSolver combinedTypeSolver) {
+        this.config = config;
+        this.combinedTypeSolver = combinedTypeSolver;
+    }
+
+    @Override
+    public ParserConfiguration getParserConfiguration() {
+        return config;
+    }
+
+    @Override
+    public ProjectRoot collect(Path path) {
+        try {
+            Files.walkFileTree(path, new FileVisitor());
+        } catch (IOException e) {
+            LOG.atWarn().withThrowable(e).log("Unable to walk {}",path);
+        }
+        return roots.isEmpty() ? null : new ProjectRoot(roots.get(roots.size()-1), config);
+    }
+
+    public ProjectRoot collectAll() {
+        Path root = null;
+        for (Path p : roots) {
+            if (root == null) {
+                root = p;
+            } else {
+                root = commonRoot(root, p);
+                if (root == null) {
+                    break;
+                }
+            }
+        }
+
+        if (root == null) {
+            throw new IllegalStateException("Unable to construct a common project root - giving up.");
+        }
+
+        ProjectRoot pr = new ProjectRoot(root, config);
+        roots.forEach(pr::addSourceRoot);
+        return pr;
+    }
+
+    private static Path commonRoot(Path path1, Path path2) {
+        List<Path> l1 = new ArrayList<>();
+        path1.toAbsolutePath().iterator().forEachRemaining(l1::add);
+        List<Path> l2 = new ArrayList<>();
+        path2.toAbsolutePath().iterator().forEachRemaining(l2::add);
+        l1.retainAll(l2);
+        return l1.isEmpty() ? null : l1.get(l1.size()-1);
+    }
+
+    private CombinedTypeSolver getSolver() {
+        return combinedTypeSolver;
+    }
+
+    private class FileVisitor extends SimpleFileVisitor<Path> {
+        @Override
+        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+            if (javaMatcher.matches(file)) {
+                if (roots.stream().noneMatch(file::startsWith)) {
+                    getRoot(file).ifPresent(r -> {
+                        getSolver().add(new JavaParserTypeSolver(r, getParserConfiguration()));
+                        roots.add(r);
+                    });
+                }
+            } else if (jarMatcher.matches(file)) {
+                getSolver().add(new JarTypeSolver(file));
+            }
+            return CONTINUE;
+        }
+
+        @Override
+        public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
+            return Files.isHidden(dir) ? SKIP_SUBTREE : CONTINUE;
+        }
+    }
+}

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/InterfaceExtensionImpl.java Mon Dec 27 20:28:38 2021
@@ -20,11 +20,17 @@ import com.github.javaparser.ast.body.Cl
 import com.github.javaparser.ast.body.MethodDeclaration;
 import com.github.javaparser.ast.body.Parameter;
 import com.github.javaparser.ast.type.ReferenceType;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.ast.type.TypeParameter;
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
 import org.apache.xmlbeans.InterfaceExtension;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.impl.xb.xmlconfig.Extensionconfig;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.Objects;
 import java.util.stream.Stream;
 
@@ -59,7 +65,7 @@ public class InterfaceExtensionImpl impl
             return result;
         }
 
-        if (!result.validateMethods(interfaceJClass, delegateJClass, intfXO))
+        if (!result.validateMethods(loader, interfaceJClass, delegateJClass, intfXO))
             return null;
 
         return result;
@@ -81,7 +87,7 @@ public class InterfaceExtensionImpl impl
         final String ent = isInterface ? "Interface" : "Class";
         ClassOrInterfaceDeclaration cls = loader.loadSource(clsStr);
 
-        if (cls==null) {
+        if (cls == null) {
             BindingConfigImpl.error(ent + " '" + clsStr + "' not found.", loc);
             return null;
         }
@@ -97,8 +103,9 @@ public class InterfaceExtensionImpl impl
         return cls;
     }
 
-    private boolean validateMethods(ClassOrInterfaceDeclaration interfaceJClass, ClassOrInterfaceDeclaration delegateJClass, XmlObject loc) {
-        _methods = interfaceJClass.getMethods().stream()
+    private boolean validateMethods(Parser loader, ClassOrInterfaceDeclaration interfaceJClass, ClassOrInterfaceDeclaration delegateJClass, XmlObject loc) {
+        _methods = interfaceJClass.resolve().getAllMethods().stream()
+            .filter(m -> !Object.class.getName().equals(m.declaringType().getQualifiedName()))
             .map(m -> validateMethod(interfaceJClass, delegateJClass, m, loc))
             .map(m -> m == null ? null : new MethodSignatureImpl(getStaticHandler(), m))
             .toArray(MethodSignatureImpl[]::new);
@@ -107,49 +114,91 @@ public class InterfaceExtensionImpl impl
     }
 
     private MethodDeclaration validateMethod(ClassOrInterfaceDeclaration interfaceJClass,
-         ClassOrInterfaceDeclaration delegateJClass, MethodDeclaration method, XmlObject loc) {
+        ClassOrInterfaceDeclaration delegateJClass, MethodUsage ifMethod, XmlObject loc) {
+        String methodName = ifMethod.getName();
 
-        String methodName = method.getName().asString();
-
-        String[] delegateParams = Stream.concat(
-            Stream.of("org.apache.xmlbeans.XmlObject"),
-            Stream.of(paramStrings(method.getParameters()))
-        ).toArray(String[]::new);
-
-        MethodDeclaration handlerMethod = getMethod(delegateJClass, methodName, delegateParams);
+        MethodDeclaration delMethod = delegateJClass.getMethodsByName(methodName).stream()
+            .filter(mDel -> matchParams(ifMethod, mDel)).findFirst().orElse(null);
 
         String delegateFQN = delegateJClass.getFullyQualifiedName().orElse("");
-        String methodFQN =  methodName + "(" + method.getParameters().toString() + ")";
+        String methodFQN =  methodName + "(" + ifMethod.getParamTypes().toString() + ")";
         String interfaceFQN = interfaceJClass.getFullyQualifiedName().orElse("");
 
-        if (handlerMethod == null) {
+        if (delMethod == null) {
             BindingConfigImpl.error("Handler class '" + delegateFQN + "' does not contain method " + methodFQN, loc);
             return null;
         }
 
         // check for throws exceptions
-        if (!Arrays.equals(exceptionStrings(method), exceptionStrings(handlerMethod))) {
+        String[] ifEx = ifMethod.getDeclaration().getSpecifiedExceptions().stream().map(ResolvedType::describe).sorted().toArray(String[]::new);
+        String[] delEx = delMethod.getThrownExceptions().stream().map(Type::resolve).map(ResolvedType::describe).sorted().toArray(String[]::new);
+
+        if (!Arrays.equals(ifEx, delEx)) {
             BindingConfigImpl.error("Handler method '" + delegateFQN + "." + methodName + "' must declare the same " +
-            "exceptions as the interface method '" + interfaceFQN + "." + methodFQN, loc);
+                                    "exceptions as the interface method '" + interfaceFQN + "." + methodFQN, loc);
             return null;
         }
 
-        if (!handlerMethod.isPublic() || !handlerMethod.isStatic()) {
-            BindingConfigImpl.error("Method '" + delegateJClass.getFullyQualifiedName() + "." +
-            methodFQN + "' must be declared public and static.", loc);
+        if (!delMethod.isPublic() || !delMethod.isStatic()) {
+            BindingConfigImpl.error("Method '" + delegateFQN + "." + methodFQN + "' must be declared public and static.", loc);
             return null;
         }
 
-        String returnType = method.getTypeAsString();
-        if (!returnType.equals(handlerMethod.getTypeAsString())) {
+
+        if (!ifMethod.getDeclaration().getReturnType().equals(delMethod.resolve().getReturnType())) {
+            String returnType = ifMethod.getDeclaration().getReturnType().describe();
             BindingConfigImpl.error("Return type for method '" + returnType + " " + delegateFQN + "." + methodName +
-            "(...)' does not match the return type of the interface method :'" + returnType + "'.", loc);
+                                    "(...)' does not match the return type of the interface method :'" + returnType + "'.", loc);
             return null;
         }
 
-        return method;
+        return delMethod;
     }
 
+//    private MethodDeclaration validateMethod(ClassOrInterfaceDeclaration interfaceJClass,
+//         ClassOrInterfaceDeclaration delegateJClass, MethodDeclaration method, XmlObject loc) {
+//
+//        String methodName = method.getName().asString();
+//
+//        String[] delegateParams = Stream.concat(
+//            Stream.of("org.apache.xmlbeans.XmlObject"),
+//            Stream.of(paramStrings(method.getParameters()))
+//        ).toArray(String[]::new);
+//
+//        MethodDeclaration handlerMethod = getMethod(delegateJClass, methodName, delegateParams);
+//
+//        String delegateFQN = delegateJClass.getFullyQualifiedName().orElse("");
+//        String methodFQN =  methodName + "(" + method.getParameters().toString() + ")";
+//        String interfaceFQN = interfaceJClass.getFullyQualifiedName().orElse("");
+//
+//        if (handlerMethod == null) {
+//            BindingConfigImpl.error("Handler class '" + delegateFQN + "' does not contain method " + methodFQN, loc);
+//            return null;
+//        }
+//
+//        // check for throws exceptions
+//        if (!Arrays.equals(exceptionStrings(method), exceptionStrings(handlerMethod))) {
+//            BindingConfigImpl.error("Handler method '" + delegateFQN + "." + methodName + "' must declare the same " +
+//            "exceptions as the interface method '" + interfaceFQN + "." + methodFQN, loc);
+//            return null;
+//        }
+//
+//        if (!handlerMethod.isPublic() || !handlerMethod.isStatic()) {
+//            BindingConfigImpl.error("Method '" + delegateJClass.getFullyQualifiedName() + "." +
+//            methodFQN + "' must be declared public and static.", loc);
+//            return null;
+//        }
+//
+//        String returnType = method.getTypeAsString();
+//        if (!returnType.equals(handlerMethod.getTypeAsString())) {
+//            BindingConfigImpl.error("Return type for method '" + returnType + " " + delegateFQN + "." + methodName +
+//            "(...)' does not match the return type of the interface method :'" + returnType + "'.", loc);
+//            return null;
+//        }
+//
+//        return method;
+//    }
+
     static MethodDeclaration getMethod(ClassOrInterfaceDeclaration cls, String name, String[] paramTypes) {
         // cls.getMethodsBySignature only checks the type name as-is ... i.e. if the type name is imported
         // only the simple name is checked, otherwise the full qualified name
@@ -158,14 +207,49 @@ public class InterfaceExtensionImpl impl
             .findFirst().orElse(null);
     }
 
-    private static String[] paramStrings(NodeList<Parameter> params) {
-        return params.stream().map(Parameter::getTypeAsString).toArray(String[]::new);
+
+    private static String[] paramStrings(List<ResolvedTypeParameterDeclaration> params) {
+        return params.stream().map(ResolvedTypeParameterDeclaration::getClassName).toArray(String[]::new);
+    }
+
+    private static String[] paramStrings(NodeList<?> params) {
+        return params.stream().map(p -> {
+            if (p instanceof Parameter) {
+                return ((Parameter)p).getTypeAsString();
+            } else if (p instanceof TypeParameter) {
+                return ((TypeParameter)p).getNameAsString();
+            } else {
+                return "unknown";
+            }
+        }).toArray(String[]::new);
     }
 
     private static String[] exceptionStrings(MethodDeclaration method) {
         return method.getThrownExceptions().stream().map(ReferenceType::asString).toArray(String[]::new);
     }
 
+    private static boolean matchParams(MethodUsage mIf, MethodDeclaration mDel) {
+        // the delegate needs to have the XmlObject as first parameter
+        List<ResolvedType> pIf = mIf.getParamTypes();
+        NodeList<Parameter> pDel = mDel.getParameters();
+        if (pDel.size() != pIf.size()+1) {
+            return false;
+        }
+
+        if (!XmlObject.class.getName().equals(pDel.get(0).resolve().describeType())) {
+            return false;
+        }
+
+        // the other parameters need to match
+        int idx = 1;
+        for (ResolvedType rt : pIf) {
+            if (!rt.describe().equals(pDel.get(idx++).resolve().describeType())) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private static boolean parameterMatches(String[] params1, String[] params2) {
         // compare all parameters type strings
         // a type string can be a simple name (e.g. "XmlObject") or
@@ -228,6 +312,7 @@ public class InterfaceExtensionImpl impl
         private final String _name;
         private final String _return;
         private final String[] _params;
+        private final String[] _paramNames;
         private final String[] _exceptions;
 
         MethodSignatureImpl(String intfName, MethodDeclaration method) {
@@ -241,11 +326,13 @@ public class InterfaceExtensionImpl impl
             _name = method.getName().asString();
             _return = replaceInner(method.getTypeAsString());
 
-            _params = method.getParameters().stream().map(Parameter::getTypeAsString).
+            _params = method.getParameters().stream().map(p -> p.getType().resolve().describe()).
                 map(MethodSignatureImpl::replaceInner).toArray(String[]::new);
 
             _exceptions = method.getThrownExceptions().stream().map(ReferenceType::asString).
                 map(MethodSignatureImpl::replaceInner).toArray(String[]::new);
+
+            _paramNames = method.getParameters().stream().map(p -> p.getNameAsString()).toArray(String[]::new);
         }
 
         private static String replaceInner(String classname) {
@@ -268,6 +355,10 @@ public class InterfaceExtensionImpl impl
             return _params;
         }
 
+        public String[] getParameterNames() {
+            return _paramNames;
+        }
+
         public String[] getExceptionTypes() {
             return _exceptions;
         }

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/Parser.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/Parser.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/Parser.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/config/Parser.java Mon Dec 27 20:28:38 2021
@@ -16,51 +16,97 @@
 package org.apache.xmlbeans.impl.config;
 
 import com.github.javaparser.ParseResult;
+import com.github.javaparser.ParserConfiguration;
 import com.github.javaparser.ast.CompilationUnit;
 import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
-import com.github.javaparser.ast.body.TypeDeclaration;
+import com.github.javaparser.symbolsolver.JavaSymbolSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ClassLoaderTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.github.javaparser.utils.ProjectRoot;
 import com.github.javaparser.utils.SourceRoot;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.function.Predicate;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Stream;
 
-class Parser {
-    final File[] javaFiles;
-    final File[] classpath;
+import static com.github.javaparser.ParserConfiguration.LanguageLevel.BLEEDING_EDGE;
 
+class Parser {
+    private final File[] javaFiles;
+    private final File[] classpath;
+    private final ParserConfiguration pc;
+    private final ProjectRoot projectRoot;
+    private final CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
 
     public Parser(File[] javaFiles, File[] classpath) {
         this.javaFiles = (javaFiles != null) ? javaFiles.clone() : new File[0];
         this.classpath = (classpath != null) ? classpath.clone() : new File[0];
+
+        pc = new ParserConfiguration();
+        pc.setLanguageLevel(BLEEDING_EDGE);
+
+        URL[] urls = Stream.of(this.classpath).map(Parser::fileToURL).filter(Objects::nonNull).toArray(URL[]::new);
+        combinedTypeSolver.add(new ClassLoaderTypeSolver(new URLClassLoader(urls, getClass().getClassLoader())));
+        combinedTypeSolver.add(new ReflectionTypeSolver());
+
+        JavaSymbolSolver symbolSolver = new JavaSymbolSolver(combinedTypeSolver);
+        pc.setSymbolResolver(symbolSolver);
+
+        if (this.javaFiles.length > 0) {
+            ChildSolverCollectionStrategy solver = new ChildSolverCollectionStrategy(pc, combinedTypeSolver);
+
+            Stream.of(this.javaFiles)
+                .map(f -> f.isDirectory() ? f : f.getParentFile())
+                .map(File::toPath)
+                .distinct()
+                .forEach(solver::collect);
+
+            projectRoot = solver.collectAll();
+        } else {
+            projectRoot = null;
+        }
     }
 
     public ClassOrInterfaceDeclaration loadSource(String className) {
         final String fileName = className.replace('.','/') +".java";
-        for (File f : javaFiles) {
-            final String filePath = f.getPath();
-            if (filePath.replace('\\','/').endsWith(fileName)) {
-                // remove filename from path - don't use replace because of different path separator
-                final String rootPath = filePath.substring(0, filePath.length()-fileName.length());
-                final String startPackage = className.indexOf('.') == -1 ? "" : className.substring(0, className.lastIndexOf('.'));
-                final String simpleName = startPackage.isEmpty() ? className : className.substring(startPackage.length()+1);
-                SourceRoot sourceRoot = new SourceRoot(new File(rootPath).toPath());
-                try {
-                    ParseResult<CompilationUnit> pcu = sourceRoot.tryToParse(startPackage, simpleName+".java");
-                    ClassOrInterfaceDeclaration cls = pcu.getResult().flatMap(cu -> cu.getTypes().stream()
-                        .filter(matchType(className))
-                        .map(t -> (ClassOrInterfaceDeclaration) t).findFirst()).orElse(null);
-                    return cls;
-                } catch (IOException e) {
-                    return null;
-                }
-            }
+        if (projectRoot == null) {
+            // TODO: check if this is called, when no sources are specified
+//            ParseResult<CompilationUnit> blub = new JavaParser(pc).parse(fileName);
+//            boolean suc = blub.isSuccessful();
+            return null;
+        } else {
+            return projectRoot.getSourceRoots().stream().map(sr -> parseOrNull(sr, fileName))
+                .filter(Objects::nonNull)
+                .filter(ParseResult::isSuccessful)
+                .map(ParseResult::getResult)
+                .map(Optional::get)
+                .flatMap(cu -> cu.getTypes().stream())
+                .filter(ClassOrInterfaceDeclaration.class::isInstance)
+                .filter(t -> className.equals(t.getFullyQualifiedName().orElse(null)))
+                .map(ClassOrInterfaceDeclaration.class::cast)
+                .findFirst().orElse(null);
         }
-        return null;
     }
 
-    private static Predicate<TypeDeclaration<?>> matchType(String className) {
-        return (t) -> t instanceof  ClassOrInterfaceDeclaration &&
-                      t.getFullyQualifiedName().map(fqn -> fqn.equals(className)).orElse(false);
+    private static URL fileToURL(File file) {
+        try {
+            return file.toURI().toURL();
+        } catch (MalformedURLException ignored) {
+            return null;
+        }
+    }
+
+    private ParseResult<CompilationUnit> parseOrNull(SourceRoot sr, String fileName) {
+        try {
+            return sr.tryToParse("", fileName, pc);
+        } catch (IOException ignroed) {
+            return null;
+        }
     }
 }

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/schema/SchemaTypeCodePrinter.java Mon Dec 27 20:28:38 2021
@@ -145,6 +145,7 @@ public final class SchemaTypeCodePrinter
         emit("");
         emit("import javax.xml.namespace.QName;");
         emit("import org.apache.xmlbeans.QNameSet;");
+        emit("import org.apache.xmlbeans.XmlObject;");
         emit("");
         printInnerTypeImpl(sType, sType.getTypeSystem(), false);
     }
@@ -2352,12 +2353,15 @@ public final class SchemaTypeCodePrinter
         decl.append("public ").append(method.getReturnType());
         decl.append(" ").append(method.getName()).append("(");
 
+        // first parameter is always XmlObject, i.e. which is "this" and therefore doesn't need
+        // to be in the method declaration of the type implementation
         String[] paramTypes = method.getParameterTypes();
-        for (int i = 0; i < paramTypes.length; i++) {
-            if (i != 0) {
+        String[] paramNames = method.getParameterNames();
+        for (int i = 1; i < paramTypes.length; i++) {
+            if (i > 1) {
                 decl.append(", ");
             }
-            decl.append(paramTypes[i]).append(" p").append(i);
+            decl.append(paramTypes[i]).append(" ").append(paramNames[i]);
         }
 
         decl.append(")");
@@ -2382,8 +2386,9 @@ public final class SchemaTypeCodePrinter
         impl.append(handler).append(".").append(method.getName()).append("(this");
 
         String[] params = method.getParameterTypes();
-        for (int i = 0; i < params.length; i++) {
-            impl.append(", p").append(i);
+        String[] paramsNames = method.getParameterNames();
+        for (int i = 1; i < params.length; i++) {
+            impl.append(", ").append(paramsNames[i]);
         }
 
         impl.append(");");

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/DomImpl.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/DomImpl.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/DomImpl.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/DomImpl.java Mon Dec 27 20:28:38 2021
@@ -319,6 +319,11 @@ public final class DomImpl {
 
     private static String validatePrefix(
         String prefix, String uri, String local, boolean isAttr) {
+
+        if (prefix != null && prefix.contains(":")) {
+            throw new NamespaceErr("Invalid prefix - contains ':' character");
+        }
+
         validateNcName(prefix);
 
         if (prefix == null) {

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/Saver.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/Saver.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/Saver.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/store/Saver.java Mon Dec 27 20:28:38 2021
@@ -538,7 +538,7 @@ abstract class Saver {
     }
 
     private void addNewFrameMapping(String prefix, String uri, boolean ensureDefaultEmpty) {
-        // If the prefix maps to "", this don't include this mapping 'cause it's not well formed.
+        // If the prefix maps to "", then don't include this mapping 'cause it's not well formed.
         // Also, if we want to make sure that the default namespace is always "", then check that
         // here as well.
 
@@ -942,9 +942,22 @@ abstract class Saver {
         }
 
         private void emitNamespacesHelper() {
+            LinkedHashMap<String, String> nsMap = new LinkedHashMap<>();
             for (iterateMappings(); hasMapping(); nextMapping()) {
+                String prefix = mappingPrefix();
+                String uri = mappingUri();
+                if (nsMap.containsKey(prefix)) {
+                    //only overwrite the nsMap entry for the prefix if the stored entry has prefix="" and uri=""
+                    if (prefix.length() == 0 && nsMap.get(prefix).length() == 0) {
+                        nsMap.put(prefix, uri);
+                    }
+                } else {
+                    nsMap.put(prefix, uri);
+                }
+            }
+            for (Map.Entry<String, String> nsEntry : nsMap.entrySet()) {
                 emit(' ');
-                emitXmlns(mappingPrefix(), mappingUri());
+                emitXmlns(nsEntry.getKey(), nsEntry.getValue());
             }
         }
 

Modified: xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java (original)
+++ xmlbeans/branches/gradle-build/src/main/java/org/apache/xmlbeans/impl/tool/SchemaCompiler.java Mon Dec 27 20:28:38 2021
@@ -571,16 +571,16 @@ public class SchemaCompiler {
         XmlObject[] types = wsdldoc.getDefinitions().getTypesArray();
         int count = 0;
         for (XmlObject type : types) {
-            Schema[] schemas = (Schema[]) type.selectPath("declare namespace xs=\"http://www.w3.org/2001/XMLSchema\" xs:schema");
+            XmlObject[] schemas = type.selectPath("declare namespace xs=\"http://www.w3.org/2001/XMLSchema\" xs:schema");
             if (schemas.length == 0) {
                 StscState.addWarning(errorListener, "The WSDL " + name + " did not have any schema documents in namespace 'http://www.w3.org/2001/XMLSchema'", XmlErrorCodes.GENERIC_ERROR, wsdldoc);
                 continue;
             }
 
-            for (Schema schema : schemas) {
+            for (XmlObject schema : schemas) {
                 if (schema.validate(opts)) {
                     count++;
-                    scontentlist.add(schema);
+                    scontentlist.add((Schema)schema);
                 }
             }
         }

Modified: xmlbeans/branches/gradle-build/src/main/java9/module-info.class
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/main/java9/module-info.class?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
Binary files - no diff available.

Modified: xmlbeans/branches/gradle-build/src/test/java/common/Common.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/common/Common.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/common/Common.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/common/Common.java Mon Dec 27 20:28:38 2021
@@ -15,12 +15,13 @@
 package common;
 
 import org.apache.xmlbeans.*;
-import org.junit.Assert;
 
 import javax.xml.namespace.QName;
 import java.io.File;
-import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
 
 import static org.junit.Assert.assertNotNull;
 
@@ -36,7 +37,7 @@ public class Common {
     public static String OUTPUTROOT = FWROOT + P + "build" + P + "test" + P + "output";
 
 
-    public final LinkedList errorList = new LinkedList();
+    public final List<XmlError> errorList = new LinkedList<>();
     public final XmlOptions xmOpts = new XmlOptions();
 
     public Common() {
@@ -47,9 +48,6 @@ public class Common {
      * If System.property for 'xbean.rootdir' == null
      * use '.' as basePath
      * '.' should be where the build.xml file lives
-     *
-     * @return
-     * @throws IllegalStateException
      */
     public static String getRootFile() throws IllegalStateException {
         String baseDir = System.getProperty("xbean.rootdir");
@@ -64,8 +62,6 @@ public class Common {
      * If System.property for 'cases.location' == null
      * use '.' as basePath and add src/test/resources.
      * should be where the build.xml file lives
-     *
-     * @throws IllegalStateException
      */
     public static String getCaseLocation() throws IllegalStateException {
         String baseDir = System.getProperty("cases.location");
@@ -79,7 +75,6 @@ public class Common {
     /**
      * Gets a case file from under CASEROOT with location passed in as strPath
      *
-     * @param strPath
      * @return file Object for references location
      */
     public static File xbeanCase(String strPath) {
@@ -89,7 +84,6 @@ public class Common {
     /**
      * Creates directory under output directory as noted by strPath
      *
-     * @param strPath
      * @return File Object specified by strPath
      */
     public static File xbeanOutput(String strPath) {
@@ -101,15 +95,12 @@ public class Common {
 
     /**
      * Recursively deletes files under specified directory
-     *
-     * @param dir
      */
     public static void deltree(File dir) {
         if (dir.exists()) {
             if (dir.isDirectory()) {
-                String[] list = dir.list();
-                for (int i = 0; i < list.length; i++) {
-                    deltree(new File(dir, list[i]));
+                for (String s : Objects.requireNonNull(dir.list())) {
+                    deltree(new File(dir, s));
                 }
             }
             if (!dir.delete()) {
@@ -120,30 +111,12 @@ public class Common {
     }
 
     /**
-     * Convenience method for displaying errorListener contents after validation
-     *
-     * @param errors
-     */
-    public static void listErrors(List errors) {
-        for (int i = 0; i < errors.size(); i++) {
-            XmlError error = (XmlError) errors.get(i);
-            if (error.getSeverity() == XmlError.SEVERITY_ERROR) {
-                System.out.println(error.toString());
-            }
-        }
-    }
-
-    /**
      * check list of errors/warnings/msgs and print them. Return true if errors found
-     *
-     * @param errors
-     * @return
      */
-    public static boolean printOptionErrMsgs(Collection errors) {
+    public static boolean printOptionErrMsgs(List<XmlError> errors) {
         boolean errFound = false;
         if (!errors.isEmpty()) {
-            for (Iterator i = errors.iterator(); i.hasNext(); ) {
-                XmlError eacherr = (XmlError) i.next();
+            for (XmlError eacherr : errors) {
                 int errSeverity = eacherr.getSeverity();
                 if (errSeverity == XmlError.SEVERITY_ERROR) {
                     System.out.println("Err Msg (s) at line #" + eacherr.getLine() + ": " + eacherr.getMessage());
@@ -161,11 +134,6 @@ public class Common {
 
     /**
      * Validate schemas to instance based on the docType
-     *
-     * @param schemas
-     * @param instances
-     * @param docType
-     * @throws Exception
      */
     public static void validateInstance(String[] schemas, String[] instances, QName docType) throws Exception {
         SchemaTypeLoader stl = makeSchemaTypeLoader(schemas);
@@ -173,13 +141,12 @@ public class Common {
 
         if (docType != null) {
             SchemaType docSchema = stl.findDocumentType(docType);
-            Assert.assertTrue(docSchema != null);
+            assertNotNull(docSchema);
             options.setDocumentType(docSchema);
         }
 
         for (int i = 0; i < instances.length; i++) {
-            XmlObject x =
-                stl.parse((String) instances[i], null, options);
+            XmlObject x = stl.parse(instances[i], null, options);
 
             //if (!startOnDocument) {
             //    XmlCursor c = x.newCursor();
@@ -196,73 +163,20 @@ public class Common {
 
             if (!isValid) {
                 StringBuilder errorTxt = new StringBuilder("Invalid doc, expected a valid doc: ");
-                errorTxt.append("Instance(" + i + "): ");
+                errorTxt.append("Instance(").append(i).append("): ");
                 errorTxt.append(x.xmlText());
                 errorTxt.append("Errors: ");
                 for (XmlError xmlError : xel) {
-                    errorTxt.append(xmlError + "\n");
-                }
-                System.err.println(errorTxt.toString());
-                throw new Exception("Instance not valid\n" + errorTxt.toString());
-            }
-        }
-    }
-
-
-    /**
-     * Convenience method for creating an XmlObject from a String
-     *
-     * @param XsdAsString
-     * @return
-     */
-    public static XmlObject compileXsdString(String XsdAsString) {
-        XmlObject xobj = null;
-        try {
-            xobj = XmlObject.Factory.parse(XsdAsString);
-        } catch (XmlException xme) {
-            if (!xme.getErrors().isEmpty()) {
-                for (Iterator itr = xme.getErrors().iterator(); itr.hasNext(); ) {
-                    System.out.println("Parse Errors :" + itr.next());
-                }
-            }
-        } finally {
-            assertNotNull(xobj);
-            return xobj;
-        }
-    }
-
-
-    /**
-     * Convenience method for creating an XmlObject from a File referenced as a String of the path to the file
-     *
-     * @param XsdFilePath
-     * @return
-     */
-    public static XmlObject compileXsdFile(String XsdFilePath) {
-        XmlObject xobj = null;
-        try {
-            xobj = XmlObject.Factory.parse(new File(XsdFilePath));
-        } catch (XmlException xme) {
-            if (!xme.getErrors().isEmpty()) {
-                for (Iterator itr = xme.getErrors().iterator(); itr.hasNext(); ) {
-                    System.out.println("Parse Errors :" + itr.next());
+                    errorTxt.append(xmlError).append("\n");
                 }
+                System.err.println(errorTxt);
+                throw new Exception("Instance not valid\n" + errorTxt);
             }
-        } catch (IOException ioe) {
-            ioe.printStackTrace();
-            ioe.getMessage();
-        } finally {
-            assertNotNull(xobj);
-            return xobj;
         }
     }
 
     /**
      * Convenience method to create a SchemaTypeLoader from a set of xsds
-     *
-     * @param schemas
-     * @return
-     * @throws Exception
      */
     public static SchemaTypeLoader makeSchemaTypeLoader(String[] schemas)
         throws Exception {
@@ -277,27 +191,16 @@ public class Common {
     }
 
     /**
-     * Is the JVM being used a 1.4 version?
-     * Used for tests involving the javasource=1.5 compilation setting
-     *
-     * @return true if java.version starts with 1.4
-     */
-    public static boolean isJDK14() {
-        return System.getProperty("java.version").startsWith("1.4");
-    }
-
-    /**
      * Convenience class for creating tests in a multithreaded env
      */
     public static abstract class TestThread extends Thread {
         protected Throwable _throwable;
         protected boolean _result;
         protected XmlOptions xm;
-        protected ArrayList errors;
+        protected List<XmlError> errors = new ArrayList<>();
 
         public TestThread() {
             xm = new XmlOptions();
-            ArrayList errors = new ArrayList();
             xm.setErrorListener(errors);
             xm.setValidateOnSet();
         }

Modified: xmlbeans/branches/gradle-build/src/test/java/compile/scomp/common/CompileTestBase.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/compile/scomp/common/CompileTestBase.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/compile/scomp/common/CompileTestBase.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/compile/scomp/common/CompileTestBase.java Mon Dec 27 20:28:38 2021
@@ -47,7 +47,7 @@ public class CompileTestBase extends Com
     public File out;
     public File outincr;
     public File sanity;
-    public List errors;
+    public List<XmlError> errors;
     public XmlOptions xm;
 
     //schemas to use

Modified: xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/IncrCompilationTests.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/IncrCompilationTests.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/IncrCompilationTests.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/IncrCompilationTests.java Mon Dec 27 20:28:38 2021
@@ -24,10 +24,7 @@ import org.junit.*;
 import javax.xml.namespace.QName;
 import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Set;
+import java.util.*;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotSame;
@@ -41,7 +38,7 @@ public class IncrCompilationTests extend
         sanity = CompileCommon.xbeanOutput(sanityPath);
         outincr = CompileCommon.xbeanOutput(incrPath);
 
-        errors = new ArrayList();
+        errors = new ArrayList<>();
         xm = new XmlOptions();
         xm.setErrorListener(errors);
         xm.setSavePrettyPrint();
@@ -279,12 +276,12 @@ public class IncrCompilationTests extend
         base.saveToDirectory(out);
 
         // get timestamps for first compile
-        HashMap initialTimeStamps = new HashMap();
+        Map<String,Long> initialTimeStamps = new HashMap<>();
         recordTimeStamps(out, initialTimeStamps);
 
         // the incr compile - provide the same name for the STS as the initial compile
         // note: providing a null or different name results in regeneration of generated Interface java src files
-        HashMap recompileTimeStamps = new HashMap();
+        Map<String,Long> recompileTimeStamps = new HashMap<>();
         Filer filer2 = new FilerImpl(out, out, null, true, true);
         SchemaTypeSystem incr = XmlBeans.compileXmlBeans("teststs",base,schemas2,null,builtin,filer2,xm);
         Assert.assertNotNull("Compilation failed during Incremental Compile.", incr);
@@ -293,10 +290,9 @@ public class IncrCompilationTests extend
 
         // compare generated source timestamps here
         assertEquals("Number of Files not equal for Incremental Schema Compilation using Filer",initialTimeStamps.size(), recompileTimeStamps.size());
-        Set keyset = initialTimeStamps.keySet();
-        for (Iterator iterator = keyset.iterator(); iterator.hasNext();) {
-            String eachFile = (String) iterator.next();
-            assertEquals("Mismatch for File " + eachFile,initialTimeStamps.get(eachFile),recompileTimeStamps.get(eachFile));
+        Set<String> keyset = initialTimeStamps.keySet();
+        for (String eachFile : keyset) {
+            assertEquals("Mismatch for File " + eachFile, initialTimeStamps.get(eachFile), recompileTimeStamps.get(eachFile));
         }
 
         handleErrors(errors);
@@ -322,11 +318,11 @@ public class IncrCompilationTests extend
         base.saveToDirectory(out);
 
         // get timestamps for first compile
-        HashMap initialTimeStamps = new HashMap();
+        HashMap<String,Long> initialTimeStamps = new HashMap<>();
         recordTimeStamps(out, initialTimeStamps);
 
         // the incr compile
-        HashMap recompileTimeStamps = new HashMap();
+        Map<String,Long> recompileTimeStamps = new HashMap<>();
         Filer filer2 = new FilerImpl(out, out, null, true, true);
         SchemaTypeSystem incr = XmlBeans.compileXmlBeans("test",base,schemas2,null,builtin,filer2,xm);
         Assert.assertNotNull("Compilation failed during Incremental Compile.", incr);
@@ -335,31 +331,29 @@ public class IncrCompilationTests extend
 
         // compare generated source timestamps here
         assertEquals("Number of Files not equal for Incremental Schema Compilation using Filer",initialTimeStamps.size(), recompileTimeStamps.size());
-        Set keyset = initialTimeStamps.keySet();
+        Set<String> keyset = initialTimeStamps.keySet();
 
         // Atype has been modified, BType has been removed
         String sep = System.getProperty("file.separator");
         String modifiedFileName = out.getCanonicalFile() + sep + "org" + sep + "openuri" + sep + "impl" + sep + "ATypeImpl.java";
         String modifiedFileName2 = out.getCanonicalFile() + sep + "org" + sep + "openuri" + sep + "AType.java";
 
-        for (Iterator iterator = keyset.iterator(); iterator.hasNext();) {
-            String eachFile = (String) iterator.next();
-
-            if(eachFile.equalsIgnoreCase(modifiedFileName)){
-                assertNotSame("File Should have been regenerated by Filer but has the same timestamp",initialTimeStamps.get(eachFile),recompileTimeStamps.get(eachFile));
+        for (String eachFile : keyset) {
+            if (eachFile.equalsIgnoreCase(modifiedFileName)) {
+                assertNotSame("File Should have been regenerated by Filer but has the same timestamp", initialTimeStamps.get(eachFile), recompileTimeStamps.get(eachFile));
                 continue;
             }
-            if(eachFile.equalsIgnoreCase(modifiedFileName2)){
-                assertNotSame("File Should have been regenerated by Filer but has the same timestamp",initialTimeStamps.get(eachFile),recompileTimeStamps.get(eachFile));
+            if (eachFile.equalsIgnoreCase(modifiedFileName2)) {
+                assertNotSame("File Should have been regenerated by Filer but has the same timestamp", initialTimeStamps.get(eachFile), recompileTimeStamps.get(eachFile));
                 continue;
             }
-            assertEquals("Mismatch for File " + eachFile,initialTimeStamps.get(eachFile),recompileTimeStamps.get(eachFile));
+            assertEquals("Mismatch for File " + eachFile, initialTimeStamps.get(eachFile), recompileTimeStamps.get(eachFile));
         }
 
         handleErrors(errors);
     }
 
-    public boolean recordTimeStamps(File inputDir, HashMap timeStampResults) throws Exception
+    public boolean recordTimeStamps(File inputDir, Map<String,Long> timeStampResults) throws Exception
     {
         if (timeStampResults == null){
             return false;
@@ -375,52 +369,51 @@ public class IncrCompilationTests extend
             return true;
         }
 
-        File[] child  = inputDir.listFiles();
-        for(int i=0;i<child.length;i++)
-        {
+        for (File file : Objects.requireNonNull(inputDir.listFiles())) {
             //System.out.println("Dir :"+ child[i].getCanonicalPath() + "\t:" + child[i].lastModified());
-            if(child[i].getName().endsWith(".java")){
-                timeStampResults.put(child[i].getCanonicalPath(),new Long(child[i].lastModified()));
+            if (file.getName().endsWith(".java")) {
+                timeStampResults.put(file.getCanonicalPath(), file.lastModified());
             }
-            recordTimeStamps(child[i], timeStampResults);
+            recordTimeStamps(file, timeStampResults);
         }
 
         return true;
     }
 
-    private static String schemaFilesRegeneration_schema1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
-                    "<xs:schema " +
-                    "attributeFormDefault=\"unqualified\" elementFormDefault=\"qualified\" " +
-                    "targetNamespace=\"http://openuri.org\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
-                    "<xs:element name=\"TestElement\" type=\"bas:aType\" xmlns:bas=\"http://openuri.org\" />" +
-                    "<xs:element name=\"NewTestElement\" type=\"bas:bType\" xmlns:bas=\"http://openuri.org\" />" +
-                    "<xs:complexType name=\"aType\">" +
-                    "<xs:simpleContent>" +
-                    "<xs:extension base=\"xs:string\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
-                    "<xs:attribute type=\"xs:string\" name=\"stringAttr\" />" +
-                    "</xs:extension>" +
-                    "</xs:simpleContent>" +
-                    "</xs:complexType>" +
-                    "<xs:complexType name=\"bType\">" +
-                    "<xs:simpleContent>" +
-                    "<xs:extension base=\"xs:integer\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
-                    "</xs:extension>" +
-                    "</xs:simpleContent>" +
-                    "</xs:complexType>" +
-                    "</xs:schema>";
-
-    private static String schemaFilesRegeneration_schema1_modified = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +                    "<xs:schema " +
-                    "attributeFormDefault=\"unqualified\" elementFormDefault=\"qualified\" " +
-                    "targetNamespace=\"http://openuri.org\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
-                    "<xs:element name=\"TestElement\" type=\"bas:aType\" xmlns:bas=\"http://openuri.org\" />" +
-                    "<xs:complexType name=\"aType\">" +
-                    "<xs:simpleContent>" +
-                    "<xs:extension base=\"xs:string\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
-                    "<xs:attribute type=\"xs:token\" name=\"tokenAttr\" />" +
-                    "</xs:extension>" +
-                    "</xs:simpleContent>" +
-                    "</xs:complexType>" +
-                    "</xs:schema>";
-
-
+    private static final String schemaFilesRegeneration_schema1 =
+        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+        "<xs:schema " +
+        "attributeFormDefault=\"unqualified\" elementFormDefault=\"qualified\" " +
+        "targetNamespace=\"http://openuri.org\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
+        "<xs:element name=\"TestElement\" type=\"bas:aType\" xmlns:bas=\"http://openuri.org\" />" +
+        "<xs:element name=\"NewTestElement\" type=\"bas:bType\" xmlns:bas=\"http://openuri.org\" />" +
+        "<xs:complexType name=\"aType\">" +
+        "<xs:simpleContent>" +
+        "<xs:extension base=\"xs:string\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
+        "<xs:attribute type=\"xs:string\" name=\"stringAttr\" />" +
+        "</xs:extension>" +
+        "</xs:simpleContent>" +
+        "</xs:complexType>" +
+        "<xs:complexType name=\"bType\">" +
+        "<xs:simpleContent>" +
+        "<xs:extension base=\"xs:integer\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
+        "</xs:extension>" +
+        "</xs:simpleContent>" +
+        "</xs:complexType>" +
+        "</xs:schema>";
+
+    private static final String schemaFilesRegeneration_schema1_modified =
+        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+        "<xs:schema " +
+        "attributeFormDefault=\"unqualified\" elementFormDefault=\"qualified\" " +
+        "targetNamespace=\"http://openuri.org\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
+        "<xs:element name=\"TestElement\" type=\"bas:aType\" xmlns:bas=\"http://openuri.org\" />" +
+        "<xs:complexType name=\"aType\">" +
+        "<xs:simpleContent>" +
+        "<xs:extension base=\"xs:string\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" >" +
+        "<xs:attribute type=\"xs:token\" name=\"tokenAttr\" />" +
+        "</xs:extension>" +
+        "</xs:simpleContent>" +
+        "</xs:complexType>" +
+        "</xs:schema>";
 }

Modified: xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/ModelGroupTests.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/ModelGroupTests.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/ModelGroupTests.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/ModelGroupTests.java Mon Dec 27 20:28:38 2021
@@ -31,7 +31,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 
 import static org.junit.Assert.assertNotSame;
@@ -49,7 +49,7 @@ public class ModelGroupTests extends Com
         sanity = CompileCommon.xbeanOutput(sanityPath);
         outincr = CompileCommon.xbeanOutput(incrPath);
 
-        errors = new ArrayList();
+        errors = new ArrayList<>();
         xm = new XmlOptions();
         xm.setErrorListener(errors);
         xm.setSavePrettyPrint();
@@ -69,7 +69,7 @@ public class ModelGroupTests extends Com
 
     private XmlObject[] getSchema(File objFile, String schemaString) throws IOException, XmlException {
         FileOutputStream fos = new FileOutputStream(objFile);
-        OutputStreamWriter osw = new OutputStreamWriter(fos, Charset.forName("UTF-8"));
+        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
         if (!schemaString.startsWith("<?xml")) {
             osw.write(getSchemaTop("baz"));
         }

Modified: xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/PerfTests.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/PerfTests.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/PerfTests.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/compile/scomp/incr/schemaCompile/detailed/PerfTests.java Mon Dec 27 20:28:38 2021
@@ -40,7 +40,7 @@ public class PerfTests extends CompileTe
         sanity = CompileCommon.xbeanOutput(sanityPath);
         outincr = CompileCommon.xbeanOutput(incrPath);
 
-        errors = new ArrayList();
+        errors = new ArrayList<>();
         xm = new XmlOptions();
         xm.setErrorListener(errors);
         xm.setSavePrettyPrint();

Modified: xmlbeans/branches/gradle-build/src/test/java/misc/checkin/RichParserTests.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/misc/checkin/RichParserTests.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/misc/checkin/RichParserTests.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/misc/checkin/RichParserTests.java Mon Dec 27 20:28:38 2021
@@ -124,13 +124,13 @@ public class RichParserTests {
         else if ("double".equals(ln))
         {
             double v = attIndex>-1 ? xs.getAttributeDoubleValue(attIndex) : xs.getDoubleValue();
-            assertEquals("double expected: " + doubles[doublesIdx] + "  actual: " + v, new Double(doubles[doublesIdx++]), new Double(v));
+            assertEquals("double expected: " + doubles[doublesIdx] + "  actual: " + v, doubles[doublesIdx++], v, 0.0);
             // makeing new Doubles because Double.NaN==Double.NaN is false;
         }
         else if ("float".equals(ln))
         {
             float v = attIndex>-1 ? xs.getAttributeFloatValue(attIndex) : xs.getFloatValue();
-            assertEquals("float expected: " + floats[floatsIdx] + "  actual: " + v, new Float(floats[floatsIdx++]), new Float(v));
+            assertEquals("float expected: " + floats[floatsIdx] + "  actual: " + v, floats[floatsIdx++], v, 0.0f);
             // makeing new Floats because Float.NaN==Float.NaN is false;
         }
         else if ("decimal".equals(ln))

Modified: xmlbeans/branches/gradle-build/src/test/java/misc/detailed/JiraRegression50_100Test.java
URL: http://svn.apache.org/viewvc/xmlbeans/branches/gradle-build/src/test/java/misc/detailed/JiraRegression50_100Test.java?rev=1896456&r1=1896455&r2=1896456&view=diff
==============================================================================
--- xmlbeans/branches/gradle-build/src/test/java/misc/detailed/JiraRegression50_100Test.java (original)
+++ xmlbeans/branches/gradle-build/src/test/java/misc/detailed/JiraRegression50_100Test.java Mon Dec 27 20:28:38 2021
@@ -25,7 +25,6 @@ import org.apache.xmlbeans.*;
 import org.apache.xmlbeans.impl.tool.Parameters;
 import org.apache.xmlbeans.impl.tool.SchemaCompiler;
 import org.apache.xmlbeans.impl.xb.xmlconfig.ConfigDocument;
-import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.w3c.dom.Document;
@@ -68,7 +67,7 @@ public class JiraRegression50_100Test ex
      * [XMLBEANS-52]   Validator loops when schema has certain conditions
      */
     @Test
-    public void test_jira_XmlBeans52() throws Exception{
+    public void test_jira_XmlBeans52() {
      //reusing code from method test_jira_XmlBeans48()
      String correctXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
              "<!--Sample XML file generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)--/> \n" +
@@ -88,11 +87,11 @@ public class JiraRegression50_100Test ex
     * [XMLBEANS-54]: problem with default value
     */
     @Test
-    public void test_jira_xmlbeans54() throws Exception {
-        List errors = new ArrayList();
+    public void test_jira_xmlbeans54() {
+        List<XmlError> errors = new ArrayList<>();
 
         Parameters params = new Parameters();
-        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_54.xsd_")});
+        params.setXsdFiles(new File(scompTestFilesRoot + "xmlbeans_54.xsd_"));
         params.setErrorListener(errors);
         params.setSrcDir(schemaCompSrcDir);
         params.setClassesDir(schemaCompClassesDir);
@@ -106,12 +105,7 @@ public class JiraRegression50_100Test ex
         try {
             SchemaCompiler.compile(params);
         } catch (OutOfMemoryError ome) {
-            System.out.println(ome.getStackTrace());
-            System.out.println("test_jira_xmlbeans54() - out of Heap Memory");
-        }
-
-        if (printOptionErrMsgs(errors)) {
-            fail("test_jira_xmlbeans54() : Errors found when executing scomp");
+            fail("test_jira_xmlbeans54() - out of Heap Memory");
         }
     }
 
@@ -137,20 +131,11 @@ public class JiraRegression50_100Test ex
                 "    </xb:extension>\n" +
                 "    <xb:qname name=\"ep:purchase-order\" javaname=\"purchaseOrderXXX\"/>\n" +
                 "</xb:config> ";
-        ConfigDocument config =
-                ConfigDocument.Factory.parse(xsdConfig);
+        ConfigDocument config = ConfigDocument.Factory.parse(xsdConfig);
         xmOpts.setErrorListener(errorList);
-        if (config.validate(xmOpts)) {
-            System.out.println("Config Validated");
-            return;
-        } else {
-            System.err.println("Config File did not validate");
-            for (Iterator iterator = errorList.iterator(); iterator.hasNext();) {
-                System.out.println("Error: " + iterator.next());
-            }
-            throw new Exception("Config File did not validate");
+        if (!config.validate(xmOpts)) {
+            fail("Config File did not validate - Error: " + errorList);
         }
-
     }
 
     /**
@@ -167,22 +152,19 @@ public class JiraRegression50_100Test ex
         classDir.mkdirs();
 
         Parameters params = new Parameters();
-        params.setXsdFiles(new File[]{new File(JIRA_CASES + "xmlbeans_57.xml")});
+        params.setXsdFiles(new File(JIRA_CASES + "xmlbeans_57.xml"));
         params.setErrorListener(errorList);
         params.setSrcDir(srcDir);
         params.setClassesDir(classDir);
         SchemaCompiler.compile(params);
-        Collection errs = params.getErrorListener();
+        Collection<XmlError> errs = params.getErrorListener();
         boolean outTextPresent = true;
 
-        if (errs.size() != 0) {
-            for (Iterator iterator = errs.iterator(); iterator.hasNext();) {
-                Object o = iterator.next();
-                String out = o.toString();
-                System.out.println("Dav: " + out);
-                if (out.startsWith("Compiled types to"))
-                    outTextPresent = false;
-            }
+        for (XmlError o : errs) {
+            String out = o.toString();
+            System.out.println("Dav: " + out);
+            if (out.startsWith("Compiled types to"))
+                outTextPresent = false;
         }
 
         //cleanup gen'd dirs
@@ -204,13 +186,13 @@ public class JiraRegression50_100Test ex
     @Test
     @Ignore("the url doesn't exist anymore ...")
     public void test_jira_xmlbeans58() throws Exception {
-        List errors = new ArrayList();
+        List<XmlError> errors = new ArrayList<>();
         Parameters params = new Parameters();
 
         // old url has been retired
         //params.setUrlFiles(new URL[]{new URL("http://devresource.hp.com/drc/specifications/wsrf/interfaces/WS-BrokeredNotification-1-0.wsdl")});
         // this seems to be a url for a WS-BrokeredNotification 1.0 wsdl
-        params.setUrlFiles(new URL[]{new URL("http://www.ibm.com/developerworks/library/specification/ws-notification/WS-BrokeredN.wsdl")});
+        params.setUrlFiles(new URL("http://www.ibm.com/developerworks/library/specification/ws-notification/WS-BrokeredN.wsdl"));
         params.setErrorListener(errors);
         params.setSrcDir(schemaCompSrcDir);
         params.setClassesDir(schemaCompClassesDir);
@@ -230,8 +212,7 @@ public class JiraRegression50_100Test ex
     @Test
     public void test_jira_XmlBeans62() throws Exception {
         String P = File.separator;
-        String outputDir = System.getProperty("xbean.rootdir") + P + "build" +
-                P + "test" + P + "output" + P + "x1999";
+        String outputDir = "build" + P + "jiratest62";
 
         File srcDir = new File(outputDir + P + "src");
         srcDir.mkdirs();
@@ -239,18 +220,16 @@ public class JiraRegression50_100Test ex
         classDir.mkdirs();
 
         Parameters params = new Parameters();
-        params.setWsdlFiles(new File[]{new File(JIRA_CASES + "xmlbeans_62.xml")});
+        params.setWsdlFiles(new File(JIRA_CASES + "xmlbeans_62.xml"));
         params.setErrorListener(errorList);
         params.setSrcDir(srcDir);
         params.setClassesDir(classDir);
         SchemaCompiler.compile(params);
-        Collection errs = params.getErrorListener();
+        Collection<XmlError> errs = params.getErrorListener();
         boolean warningPresent = false;
-        for (Iterator iterator = errs.iterator(); iterator.hasNext();) {
-            Object o = iterator.next();
+        for (XmlError o : errs) {
             String out = o.toString();
-            if (out.endsWith("did not have any schema documents in namespace 'http://www.w3.org/2001/XMLSchema'")) ;
-            warningPresent = true;
+            warningPresent |= out.endsWith("did not have any schema documents in namespace 'http://www.w3.org/2001/XMLSchema'");
         }
 
         //cleanup gen'd dirs
@@ -258,10 +237,7 @@ public class JiraRegression50_100Test ex
         classDir.deleteOnExit();
 
         //validate error present
-        if (!warningPresent)
-            throw new Exception("Warning for 1999 schema was not found when compiling srcs");
-        else
-            System.out.println("Warning Present, test Passed");
+        assertTrue("Warning for 1999 schema was not found when compiling srcs", warningPresent);
     }
 
     /**
@@ -275,7 +251,7 @@ public class JiraRegression50_100Test ex
         // validate
         XmlOptions validateOptions = new XmlOptions();
         validateOptions.setLoadLineNumbers();
-        ArrayList errorList = new ArrayList();
+        List<XmlError> errorList = new ArrayList<>();
         validateOptions.setErrorListener(errorList);
         boolean isValid = doc.validate(validateOptions);
 
@@ -370,7 +346,7 @@ public class JiraRegression50_100Test ex
         else
             System.out.println("DOC-XML:\n" + doc.xmlText());
 
-        errorList.removeAll(errorList);
+        errorList.clear();
         xmOpts.setErrorListener(errorList);
 
         if (!baz.validate(xmOpts))
@@ -431,34 +407,26 @@ public class JiraRegression50_100Test ex
             if (doc2Props.getDoctypeName() == null ||
                     doc2Props.getDoctypeName().compareTo(docTypeName) != 0 ||
                     doc2Props.getDoctypeName().compareTo(docType.getName()) != 0)
-                compareText.append("docTypeName was not as " +
-                        "expected in the document properties " +
-                        doc2Props.getDoctypeName()+"\n");
+                compareText.append("docTypeName was not as expected in the document properties ").append(doc2Props.getDoctypeName()).append("\n");
 
             if (doc2Props.getDoctypePublicId() == null ||
                     doc2Props.getDoctypePublicId().compareTo(docTypePublicID) != 0 ||
                     doc2Props.getDoctypePublicId().compareTo(docType.getPublicId()) != 0)
-                compareText.append("docTypePublicID was not as " +
-                        "expected in the document properties " +
-                        doc2Props.getDoctypePublicId()+"\n");
+                compareText.append("docTypePublicID was not as expected in the document properties ").append(doc2Props.getDoctypePublicId()).append("\n");
 
             if (doc2Props.getDoctypeSystemId() == null ||
                     doc2Props.getDoctypeSystemId().compareTo(docTypeSystemID) != 0 ||
                     doc2Props.getDoctypeSystemId().compareTo(docType.getSystemId()) != 0)
-                compareText.append("docTypeSystemID was not as " +
-                        "expected in the document properties "+
-                        doc2Props.getDoctypeSystemId()+"\n" );
+                compareText.append("docTypeSystemID was not as expected in the document properties ").append(doc2Props.getDoctypeSystemId()).append("\n");
         } else {
             compareText.append("Document Properties were null, should have been set");
         }
 
         //cleanup
-        po2 = null;
-        po = null;
         new File(fileName).deleteOnExit();
 
         if (compareText.toString().length() > 1)
-            throw new Exception("Doc properties were not saved or read correctly\n" + compareText.toString());
+            throw new Exception("Doc properties were not saved or read correctly\n" + compareText);
     }
 
     /**
@@ -468,18 +436,14 @@ public class JiraRegression50_100Test ex
     @Test
     public void test_jira_xmlbeans78() throws Exception {
         XMLInputFactory factory = XMLInputFactory.newInstance();
-        FileInputStream fis = new FileInputStream(new File(JIRA_CASES+ "xmlbeans_78.xml"));
+        FileInputStream fis = new FileInputStream(JIRA_CASES + "xmlbeans_78.xml");
         XMLStreamReader reader = factory.createXMLStreamReader(fis);
         skipToBody(reader);
-        XmlObject o = XmlObject.Factory.parse(reader);
+        XmlObject.Factory.parse(reader);
     }
 
     /**
      * Move reader to element of SOAP Body
-     *
-     * @param reader
-     * @throws javax.xml.stream.XMLStreamException
-     *
      */
     private void skipToBody(XMLStreamReader reader) throws javax.xml.stream.XMLStreamException {
         while (true) {
@@ -570,8 +534,8 @@ public class JiraRegression50_100Test ex
         Thread.sleep(6000);
         System.out.println("Done with XPaths?...");
 
-        for (int i = 0; i < threads.length; i++) {
-            Assert.assertNull(threads[i].getException());
+        for (XPathThread thread : threads) {
+            assertNull(thread.getException());
         }
 
     }
@@ -582,10 +546,10 @@ public class JiraRegression50_100Test ex
     @Ignore
     @Test
     public void test_jira_xmlbeans88() throws Exception {
-        List errors = new ArrayList();
+        List<XmlError> errors = new ArrayList<>();
         Parameters params = new Parameters();
 
-        params.setUrlFiles(new URL[]{new URL("http://developer.ebay.com/webservices/latest/eBaySvc.wsdl")});
+        params.setUrlFiles(new URL("http://developer.ebay.com/webservices/latest/eBaySvc.wsdl"));
         params.setErrorListener(errors);
         params.setSrcDir(schemaCompSrcDir);
         params.setClassesDir(schemaCompClassesDir);
@@ -620,12 +584,13 @@ public class JiraRegression50_100Test ex
     @Test
     @Ignore
     public void test_jira_xmlbeans96() throws Exception {
-        StringBuilder xmlstringbuf = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
-        xmlstringbuf.append("<test>");
-        xmlstringbuf.append("<testchild attr=\"abcd\"> Jira02 </testchild>");
-        xmlstringbuf.append("</test>");
+        String xmlstringbuf =
+            "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
+            "<test>" +
+            "<testchild attr=\"abcd\"> Jira02 </testchild>" +
+            "</test>";
 
-        XmlObject doc = XmlObject.Factory.parse(xmlstringbuf.toString());
+        XmlObject doc = XmlObject.Factory.parse(xmlstringbuf);
         XmlDocumentProperties props = doc.documentProperties();
         assertEquals("test_jira_xmlbeans96() : Xml Version is not picked up", "1.0", props.getVersion());
         assertEquals("test_jira_xmlbeans96() : Xml Encoding is not picked up", "UTF-8", props.getEncoding());
@@ -649,7 +614,7 @@ public class JiraRegression50_100Test ex
         XmlOptions options = new XmlOptions();
 
         // associate namespaces with prefixes
-        Map prefixes = new HashMap();
+        Map<String,String> prefixes = new HashMap<>();
         prefixes.put(structnamespace, "s");
         prefixes.put(datanamespace, "d");
         prefixes.put(xsinamespace, "v");
@@ -676,15 +641,16 @@ public class JiraRegression50_100Test ex
         doc.save(out, options);
         XmlObject xObj = XmlObject.Factory.parse(out);
 
-        String expXText = "<s:a-root v:schemaLocation=\"http://www.orthogony.net/xml/sample/structure xmlbeans_98.xsd\" xmlns:s=\"http://www.orthogony.net/xml/sample/structure\" xmlns:v=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
-                "  <s:a-child qualified-data=\"data:IAmQualified\" xmlns:data=\"http://www.orthogony.net/xml/sample/data\"/>\n" +
-                "</s:a-root>";
-        XmlObject txtXObj = XmlObject.Factory.parse(doc.xmlText());
+        String expXText =
+            "<s:a-root v:schemaLocation=\"http://www.orthogony.net/xml/sample/structure xmlbeans_98.xsd\" xmlns:s=\"http://www.orthogony.net/xml/sample/structure\" xmlns:v=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
+            "  <s:a-child qualified-data=\"data:IAmQualified\" xmlns:data=\"http://www.orthogony.net/xml/sample/data\"/>\n" +
+            "</s:a-root>";
+        XmlObject.Factory.parse(doc.xmlText());
         System.out.println("xObj: " + xObj.xmlText());
         //NamedNodeMap n = xObj.getDomNode().getAttributes();
         //Assert.assertTrue("Length was not as expected", n.getLength() == 3);
         Node no = xObj.getDomNode();//n.getNamedItem("a-root");
-        Assert.assertTrue("Expected Prefix was not present: " + no.getPrefix(), no.getPrefix().compareTo("s") == 0);
+        assertEquals("Expected Prefix was not present: " + no.getPrefix(), 0, no.getPrefix().compareTo("s"));
         //Assert.assertTrue("s prefix was not found " + no.lookupPrefix(structnamespace), no.lookupPrefix(structnamespace).compareTo("s") == 0);
         //Assert.assertTrue("d prefix was not found " + no.lookupPrefix(datanamespace), no.lookupPrefix(datanamespace).compareTo("s") == 0);
         //Assert.assertTrue("v prefix was not found " + no.lookupPrefix(xsinamespace), no.lookupPrefix(xsinamespace).compareTo("s") == 0);
@@ -715,7 +681,7 @@ public class JiraRegression50_100Test ex
     * refer to [XMLBEANS-14]
     */
     @Test
-    public void test_jira_xmlbeans99_b() throws Exception {
+    public void test_jira_xmlbeans99_b() {
         StringBuilder xmlstringbuf = new StringBuilder("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?> \n");
         xmlstringbuf.append("                <x:dummy xmlns:x=\"http://dufourrault\" xmlns:xsi=\"http://www.w3.org/2000/10/XMLSchema-instance\" xsi:SchemaLocation=\"dummy.xsd\">\n");
         xmlstringbuf.append("                    <x:father>\n");
@@ -810,9 +776,9 @@ public class JiraRegression50_100Test ex
                         "</statusreport>";
                 XmlObject path = XmlObject.Factory.parse(statusDoc, xm);
                 XmlObject[] resSet = path.selectPath("//*:status");
-                Assert.assertTrue(resSet.length + "", resSet.length == 4);
+                assertEquals(resSet.length + "", 4, resSet.length);
                 resSet = path.selectPath("//*:status[@name='first']");
-                Assert.assertTrue(resSet.length == 2);
+                assertEquals(2, resSet.length);
 
             } catch (Throwable t) {
                 _throwable = t;
@@ -835,9 +801,9 @@ public class JiraRegression50_100Test ex
                         "</doc><!-- -->  ";
                 XmlObject path = XmlObject.Factory.parse(docDoc, xm);
                 XmlObject[] resSet = path.selectPath("//a");
-                Assert.assertTrue(resSet.length == 2);
+                assertEquals(2, resSet.length);
                 resSet = path.selectPath("//b[@attr2]");
-                Assert.assertTrue(resSet.length == 1);
+                assertEquals(1, resSet.length);
 
             } catch (Throwable t) {
                 _throwable = t;



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