You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2022/05/13 16:23:25 UTC

[uima-uimafit] 01/01: [UIMA-6432] Upgrade dependencies (uimaFIT 3.3.0)

This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch refactoring/UIMA-6432-Upgrade-dependencies
in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git

commit 36073455d1f74700770d0d1a9fd9927135726b63
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Fri May 13 18:23:18 2022 +0200

    [UIMA-6432] Upgrade dependencies (uimaFIT 3.3.0)
    
    - Apache UIMA Parent POM 14 -> 15-SNAPSHOT
    - Fix warnings due to upgraded Maven plugins
    - Upgrade Maven Plugin Tests also to the XMLUnit used by the main code and fix them
---
 uimafit-maven-plugin/pom.xml                       |  18 ++--
 .../TestAnnotator.xml                              | 118 +++++++--------------
 .../reference/main-artifact/TestAnnotator.xml      |  91 ++++++----------
 .../src/it/compile-test-scope/verify.bsh           |  53 +++------
 uimafit-maven-plugin/src/it/default/verify.bsh     |  33 ++----
 .../it/with-typesystem-in-descriptors/verify.bsh   |  33 ++----
 .../org/apache/uima/fit/maven/EnhanceMojo.java     |  83 +++++++--------
 .../uima/fit/maven/GenerateDescriptorsMojo.java    |  58 +++++-----
 uimafit-parent/pom.xml                             |   2 +-
 uimafit-spring/pom.xml                             |   1 +
 10 files changed, 181 insertions(+), 309 deletions(-)

diff --git a/uimafit-maven-plugin/pom.xml b/uimafit-maven-plugin/pom.xml
index 38ad7d4..1537716 100644
--- a/uimafit-maven-plugin/pom.xml
+++ b/uimafit-maven-plugin/pom.xml
@@ -71,21 +71,25 @@
       <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-core</artifactId>
       <version>3.0</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</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>
@@ -115,14 +119,6 @@
       <artifactId>guava</artifactId>
       <version>11.0.1</version>
     </dependency>
-    
-    <!--  
-    <dependency>
-      <groupId>org.junit.vintage</groupId>
-      <artifactId>junit-vintage-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
-    -->
   </dependencies>
 
   <build>
@@ -157,12 +153,12 @@
           <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
-            <version>2.7</version>
+            <version>${commons-io-version}</version>
           </dependency>
           <dependency>
             <groupId>org.xmlunit</groupId>
-            <artifactId>xmlunit-assertj</artifactId>
-            <version>2.6.4</version>
+            <artifactId>xmlunit-assertj3</artifactId>
+            <version>${xmlunit-version}</version>
           </dependency>
         </dependencies>
       </plugin>
diff --git a/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact-plus-test-scope/TestAnnotator.xml b/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact-plus-test-scope/TestAnnotator.xml
index bd3a6b6..7e546b1 100644
--- a/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact-plus-test-scope/TestAnnotator.xml
+++ b/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact-plus-test-scope/TestAnnotator.xml
@@ -18,83 +18,43 @@
   ~ under the License.
 -->
 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
-        
-    <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
-        
-    <primitive>true</primitive>
-        
-    <annotatorImplementationName>TestAnnotator</annotatorImplementationName>
-        
-    <analysisEngineMetaData>
-                
-        <name>TestAnnotator</name>
-                
-        <description>Test annotator.</description>
-                
-        <version>1.0-SNAPSHOT</version>
-                
-        <vendor>Apache UIMA</vendor>
-                
-        <copyright>Copyright by the respective authors.</copyright>
-                
-        <configurationParameters/>
-                
-        <configurationParameterSettings/>
-                
-        <typeSystemDescription>
-                        
-            <types>
-                                
-                <typeDescription>
-                                        
-                    <name>org.apache.uima.fit.type.CompileType</name>
-                                        
-                    <description/>
-                                        
-                    <supertypeName>uima.tcas.Annotation</supertypeName>
-                                    
-                </typeDescription>
-                                
-                <typeDescription>
-                                        
-                    <name>org.apache.uima.fit.type.TestType</name>
-                                        
-                    <description/>
-                                        
-                    <supertypeName>uima.tcas.Annotation</supertypeName>
-                                    
-                </typeDescription>
-                                
-                <typeDescription>
-                                        
-                    <name>org.apache.uima.fit.type.TestType2</name>
-                                        
-                    <description/>
-                                        
-                    <supertypeName>uima.tcas.Annotation</supertypeName>
-                                    
-                </typeDescription>
-                            
-            </types>
-                    
-        </typeSystemDescription>
-                
-        <typePriorities/>
-                
-        <fsIndexCollection/>
-                
-        <capabilities/>
-                
-        <operationalProperties>
-                        
-            <modifiesCas>true</modifiesCas>
-                        
-            <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
-                        
-            <outputsNewCASes>false</outputsNewCASes>
-                    
-        </operationalProperties>
-            
-    </analysisEngineMetaData>
-    
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  <annotatorImplementationName>TestAnnotator</annotatorImplementationName>
+  <analysisEngineMetaData>
+    <name>TestAnnotator</name>
+    <description>Test annotator.</description>
+    <version>1.0-SNAPSHOT</version>
+    <vendor>Apache UIMA</vendor>
+    <copyright>Copyright by the respective authors.</copyright>
+    <configurationParameters />
+    <configurationParameterSettings />
+    <typeSystemDescription>
+      <types>
+        <typeDescription>
+          <name>org.apache.uima.fit.type.CompileType</name>
+          <description />
+          <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+        <typeDescription>
+          <name>org.apache.uima.fit.type.TestType</name>
+          <description />
+          <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+        <typeDescription>
+          <name>org.apache.uima.fit.type.TestType2</name>
+          <description />
+          <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+      </types>
+    </typeSystemDescription>
+    <typePriorities />
+    <fsIndexCollection />
+    <capabilities />
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
 </analysisEngineDescription>
diff --git a/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact/TestAnnotator.xml b/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact/TestAnnotator.xml
index 3fadbc9..845472a 100644
--- a/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact/TestAnnotator.xml
+++ b/uimafit-maven-plugin/src/it/compile-test-scope/reference/main-artifact/TestAnnotator.xml
@@ -17,64 +17,35 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
 -->
-<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
-        
-    <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
-        
-    <primitive>true</primitive>
-        
-    <annotatorImplementationName>TestAnnotator</annotatorImplementationName>
-        
-    <analysisEngineMetaData>
-                
-        <name>TestAnnotator</name>
-                
-        <description>Test annotator.</description>
-                
-        <version>1.0-SNAPSHOT</version>
-                
-        <vendor>Apache UIMA</vendor>
-                
-        <copyright>Copyright by the respective authors.</copyright>
-                
-        <configurationParameters/>
-                
-        <configurationParameterSettings/>
-                
-        <typeSystemDescription>
-                        
-            <types>
-                                
-                <typeDescription>
-                                        
-                    <name>org.apache.uima.fit.type.CompileType</name>
-                                        
-                    <description/>
-                                        
-                    <supertypeName>uima.tcas.Annotation</supertypeName>
-                                    
-                </typeDescription>
-                            
-            </types>
-                    
-        </typeSystemDescription>
-                
-        <typePriorities/>
-                
-        <fsIndexCollection/>
-                
-        <capabilities/>
-                
-        <operationalProperties>
-                        
-            <modifiesCas>true</modifiesCas>
-                        
-            <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
-                        
-            <outputsNewCASes>false</outputsNewCASes>
-                    
-        </operationalProperties>
-            
-    </analysisEngineMetaData>
-    
+<analysisEngineDescription
+  xmlns="http://uima.apache.org/resourceSpecifier">
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  <annotatorImplementationName>TestAnnotator</annotatorImplementationName>
+  <analysisEngineMetaData>
+    <name>TestAnnotator</name>
+    <description>Test annotator.</description>
+    <version>1.0-SNAPSHOT</version>
+    <vendor>Apache UIMA</vendor>
+    <copyright>Copyright by the respective authors.</copyright>
+    <configurationParameters />
+    <configurationParameterSettings />
+    <typeSystemDescription>
+      <types>
+        <typeDescription>
+          <name>org.apache.uima.fit.type.CompileType</name>
+          <description />
+          <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+      </types>
+    </typeSystemDescription>
+    <typePriorities />
+    <fsIndexCollection />
+    <capabilities />
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
 </analysisEngineDescription>
diff --git a/uimafit-maven-plugin/src/it/compile-test-scope/verify.bsh b/uimafit-maven-plugin/src/it/compile-test-scope/verify.bsh
index df87f6e..1967a24 100644
--- a/uimafit-maven-plugin/src/it/compile-test-scope/verify.bsh
+++ b/uimafit-maven-plugin/src/it/compile-test-scope/verify.bsh
@@ -19,55 +19,28 @@
 
 import java.io.*;
 import java.util.*;
-import java.util.regex.*;
-import org.apache.commons.io.*;
-import org.custommonkey.xmlunit.Diff;
-import org.custommonkey.xmlunit.XMLUnit;
+import org.xmlunit.assertj3.XmlAssert;
 
-try
 {
-  String reference = IOUtils.toString(new File(basedir, 
-    "reference/main-artifact/TestAnnotator.xml").toURI().toURL());
-  String actual = IOUtils.toString(new File(basedir, 
-    "main-artifact/target/classes/TestAnnotator.xml").toURI().toURL());
-
+  File reference = new File(basedir, "reference/main-artifact/TestAnnotator.xml");
+  File actual = new File(basedir, "main-artifact/target/classes/TestAnnotator.xml");
+  
   // In a local build, I get indented XML but on the Apache Jenkins I get non-indented XML. This
   // settings tells XMLUnit to ignore this difference in whitespace - rec 2013-02-16
-  XMLUnit.setIgnoreWhitespace(true);
-  Diff diff = XMLUnit.compareXML(reference, actual);
-
-  if (!diff.identical()) {
-        System.out.println("Actual descriptor does not match expected descriptor: " + diff);
-        return false;
-  }
-}
-catch( Throwable t )
-{
-    t.printStackTrace();
-    return false;
+  System.out.println("Comparing expected ["+reference+"] vs actual ["+actual+"]");
+  XmlAssert.assertThat(actual).and(reference)
+    .ignoreComments().normalizeWhitespace().areIdentical();
 }
 
-try
 {
-  String reference = IOUtils.toString(new File(basedir, 
-    "reference/main-artifact-plus-test-scope/TestAnnotator.xml").toURI().toURL());
-  String actual = IOUtils.toString(new File(basedir, 
-    "main-artifact-plus-test-scope/target/classes/TestAnnotator.xml").toURI().toURL());
-
+  File reference = new File(basedir, "reference/main-artifact-plus-test-scope/TestAnnotator.xml");
+  File actual = new File(basedir, "main-artifact-plus-test-scope/target/classes/TestAnnotator.xml");
+  
   // In a local build, I get indented XML but on the Apache Jenkins I get non-indented XML. This
   // settings tells XMLUnit to ignore this difference in whitespace - rec 2013-02-16
-  XMLUnit.setIgnoreWhitespace(true);
-  Diff diff = XMLUnit.compareXML(reference, actual);
-
-  if (!diff.identical()) {
-        System.out.println("Actual descriptor does not match expected descriptor: " + diff);
-        return false;
-  }
-}
-catch( Throwable t )
-{
-    t.printStackTrace();
-    return false;
+  System.out.println("Comparing expected ["+reference+"] vs actual ["+actual+"]");
+  XmlAssert.assertThat(actual).and(reference)
+    .ignoreComments().normalizeWhitespace().areIdentical();
 }
 
 return true;
diff --git a/uimafit-maven-plugin/src/it/default/verify.bsh b/uimafit-maven-plugin/src/it/default/verify.bsh
index 34d0f2f..57d81b4 100644
--- a/uimafit-maven-plugin/src/it/default/verify.bsh
+++ b/uimafit-maven-plugin/src/it/default/verify.bsh
@@ -19,32 +19,17 @@
 
 import java.io.*;
 import java.util.*;
-import java.util.regex.*;
-import org.apache.commons.io.*;
-import org.custommonkey.xmlunit.Diff;
-import org.custommonkey.xmlunit.XMLUnit;
+import org.xmlunit.assertj3.XmlAssert;
 
-try
 {
-	String reference = IOUtils.toString(new File(basedir, 
-		"reference/TestAnnotator.xml").toURI().toURL());
-	String actual = IOUtils.toString(new File(basedir, 
-		"target/classes/TestAnnotator.xml").toURI().toURL());
-
-    // In a local build, I get indented XML but on the Apache Jenkins I get non-indented XML. This
-    // settings tells XMLUnit to ignore this difference in whitespace - rec 2013-02-16
-	XMLUnit.setIgnoreWhitespace(true);
-	Diff diff = XMLUnit.compareXML(reference, actual);
-
-	if (!diff.identical()) {
-        System.out.println("Actual descriptor does not match expected descriptor: " + diff);
-        return false;
-	}	
-}
-catch( Throwable t )
-{
-    t.printStackTrace();
-    return false;
+  File reference = new File(basedir, "reference/TestAnnotator.xml");
+  File actual = new File(basedir, "target/classes/TestAnnotator.xml");
+  
+  // In a local build, I get indented XML but on the Apache Jenkins I get non-indented XML. This
+  // settings tells XMLUnit to ignore this difference in whitespace - rec 2013-02-16
+  System.out.println("Comparing expected ["+reference+"] vs actual ["+actual+"]");
+  XmlAssert.assertThat(actual).and(reference)
+    .ignoreComments().normalizeWhitespace().areIdentical();
 }
 
 return true;
diff --git a/uimafit-maven-plugin/src/it/with-typesystem-in-descriptors/verify.bsh b/uimafit-maven-plugin/src/it/with-typesystem-in-descriptors/verify.bsh
index 34d0f2f..57d81b4 100644
--- a/uimafit-maven-plugin/src/it/with-typesystem-in-descriptors/verify.bsh
+++ b/uimafit-maven-plugin/src/it/with-typesystem-in-descriptors/verify.bsh
@@ -19,32 +19,17 @@
 
 import java.io.*;
 import java.util.*;
-import java.util.regex.*;
-import org.apache.commons.io.*;
-import org.custommonkey.xmlunit.Diff;
-import org.custommonkey.xmlunit.XMLUnit;
+import org.xmlunit.assertj3.XmlAssert;
 
-try
 {
-	String reference = IOUtils.toString(new File(basedir, 
-		"reference/TestAnnotator.xml").toURI().toURL());
-	String actual = IOUtils.toString(new File(basedir, 
-		"target/classes/TestAnnotator.xml").toURI().toURL());
-
-    // In a local build, I get indented XML but on the Apache Jenkins I get non-indented XML. This
-    // settings tells XMLUnit to ignore this difference in whitespace - rec 2013-02-16
-	XMLUnit.setIgnoreWhitespace(true);
-	Diff diff = XMLUnit.compareXML(reference, actual);
-
-	if (!diff.identical()) {
-        System.out.println("Actual descriptor does not match expected descriptor: " + diff);
-        return false;
-	}	
-}
-catch( Throwable t )
-{
-    t.printStackTrace();
-    return false;
+  File reference = new File(basedir, "reference/TestAnnotator.xml");
+  File actual = new File(basedir, "target/classes/TestAnnotator.xml");
+  
+  // In a local build, I get indented XML but on the Apache Jenkins I get non-indented XML. This
+  // settings tells XMLUnit to ignore this difference in whitespace - rec 2013-02-16
+  System.out.println("Comparing expected ["+reference+"] vs actual ["+actual+"]");
+  XmlAssert.assertThat(actual).and(reference)
+    .ignoreComments().normalizeWhitespace().areIdentical();
 }
 
 return true;
diff --git a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java
index 91eb22c..09b0dc9 100644
--- a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java
+++ b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java
@@ -78,7 +78,7 @@ import javassist.bytecode.annotation.StringMemberValue;
  */
 @Mojo(name = "enhance", defaultPhase = PROCESS_CLASSES, requiresDependencyResolution = TEST, requiresDependencyCollection = TEST)
 public class EnhanceMojo extends AbstractMojo {
-  @Component
+  @Parameter(defaultValue = "${project}", readonly = true)
   private MavenProject project;
 
   @Component
@@ -187,7 +187,7 @@ public class EnhanceMojo extends AbstractMojo {
   public void execute() throws MojoExecutionException, MojoFailureException {
     // Get the compiled classes from this project
     String[] files = FileUtils.getFilesFromExtension(project.getBuild().getOutputDirectory(),
-            new String[] { "class" });
+        new String[] { "class" });
     componentLoader = Util.getClassloader(project, getLog(), includeScope);
 
     // Set up class pool with all the project dependencies and the project classes themselves
@@ -199,7 +199,7 @@ public class EnhanceMojo extends AbstractMojo {
 
     // Determine where to write the missing meta data report file
     File reportFile = new File(project.getBuild().getDirectory(),
-            "uimafit-missing-meta-data-report.txt");
+        "uimafit-missing-meta-data-report.txt");
 
     // Read existing report
     if (generateMissingMetaDataReport) {
@@ -251,7 +251,7 @@ public class EnhanceMojo extends AbstractMojo {
         ctClazz = classPool.get(clazzName);
       } catch (NotFoundException e) {
         throw new MojoExecutionException(
-                "Class [" + clazzName + "] not found in class pool: " + getRootCauseMessage(e), e);
+            "Class [" + clazzName + "] not found in class pool: " + getRootCauseMessage(e), e);
       }
 
       // Get the source file
@@ -289,17 +289,15 @@ public class EnhanceMojo extends AbstractMojo {
         }
       } catch (IOException e) {
         throw new MojoExecutionException(
-                "Enhanced class [" + clazzName + "] cannot be written: " + getRootCauseMessage(e),
-                e);
+            "Enhanced class [" + clazzName + "] cannot be written: " + getRootCauseMessage(e), e);
       } catch (CannotCompileException e) {
         throw new MojoExecutionException(
-                "Enhanced class [" + clazzName + "] cannot be compiled: " + getRootCauseMessage(e),
-                e);
+            "Enhanced class [" + clazzName + "] cannot be compiled: " + getRootCauseMessage(e), e);
       }
     }
 
     getLog().info("Enhanced " + countEnhanced + " class" + (countEnhanced != 1 ? "es" : "") + " ("
-            + countAlreadyEnhanced + " already enhanced).");
+        + countAlreadyEnhanced + " already enhanced).");
 
     if (generateMissingMetaDataReport) {
       // Remove any classes from the report that are no longer part of the build
@@ -312,7 +310,7 @@ public class EnhanceMojo extends AbstractMojo {
 
       if (failOnMissingMetaData && !reportData.isEmpty()) {
         throw new MojoFailureException("Component meta data missing. A report of the missing "
-                + "meta data can be found in " + reportFile);
+            + "meta data can be found in " + reportFile);
       }
     }
   }
@@ -325,7 +323,7 @@ public class EnhanceMojo extends AbstractMojo {
     ConstPool constPool = classFile.getConstPool();
 
     AnnotationsAttribute annoAttr = (AnnotationsAttribute) classFile
-            .getAttribute(AnnotationsAttribute.visibleTag);
+        .getAttribute(AnnotationsAttribute.visibleTag);
 
     // Create annotation attribute if it does not exist
     if (annoAttr == null) {
@@ -346,12 +344,12 @@ public class EnhanceMojo extends AbstractMojo {
    * Enhance resource meta data
    */
   private void enhanceResourceMetaData(JavaSource aAST, Class<?> aClazz, CtClass aCtClazz,
-          Multimap<String, String> aReportData) {
+      Multimap<String, String> aReportData) {
     ClassFile classFile = aCtClazz.getClassFile();
     ConstPool constPool = classFile.getConstPool();
 
     AnnotationsAttribute annoAttr = (AnnotationsAttribute) classFile
-            .getAttribute(AnnotationsAttribute.visibleTag);
+        .getAttribute(AnnotationsAttribute.visibleTag);
 
     // Create annotation attribute if it does not exist
     if (annoAttr == null) {
@@ -364,25 +362,25 @@ public class EnhanceMojo extends AbstractMojo {
       a = new Annotation(ResourceMetaData.class.getName(), constPool);
       // Add a name, otherwise there will be none in the generated descriptor.
       a.addMemberValue("name",
-              new StringMemberValue(ResourceMetaDataFactory.getDefaultName(aClazz), constPool));
+          new StringMemberValue(ResourceMetaDataFactory.getDefaultName(aClazz), constPool));
     }
 
     // Update description from JavaDoc
     String doc = Util.getComponentDocumentation(aAST, aClazz.getName());
     enhanceMemberValue(a, "description", doc, overrideComponentDescription,
-            ResourceMetaDataFactory.getDefaultDescription(aClazz), constPool, aReportData, aClazz);
+        ResourceMetaDataFactory.getDefaultDescription(aClazz), constPool, aReportData, aClazz);
 
     // Update version
     enhanceMemberValue(a, "version", componentVersion, overrideComponentVersion,
-            ResourceMetaDataFactory.getDefaultVersion(aClazz), constPool, aReportData, aClazz);
+        ResourceMetaDataFactory.getDefaultVersion(aClazz), constPool, aReportData, aClazz);
 
     // Update vendor
     enhanceMemberValue(a, "vendor", componentVendor, overrideComponentVendor,
-            ResourceMetaDataFactory.getDefaultVendor(aClazz), constPool, aReportData, aClazz);
+        ResourceMetaDataFactory.getDefaultVendor(aClazz), constPool, aReportData, aClazz);
 
     // Update copyright
     enhanceMemberValue(a, "copyright", componentCopyright, overrideComponentCopyright,
-            ResourceMetaDataFactory.getDefaultCopyright(aClazz), constPool, aReportData, aClazz);
+        ResourceMetaDataFactory.getDefaultCopyright(aClazz), constPool, aReportData, aClazz);
 
     // Replace annotation
     annoAttr.addAnnotation(a);
@@ -404,11 +402,12 @@ public class EnhanceMojo extends AbstractMojo {
    * @param aOverride
    *          set value even if it is already set
    * @param aDefault
-   *          default value set by uimaFIT - if the member has this value, it is considered unset
+   *          default value set by uimaFIT - if the member has this value, it is considered
+   *          unset
    */
   private void enhanceMemberValue(Annotation aAnnotation, String aName, String aNewValue,
-          boolean aOverride, String aDefault, ConstPool aConstPool,
-          Multimap<String, String> aReportData, Class<?> aClazz) {
+      boolean aOverride, String aDefault, ConstPool aConstPool,
+      Multimap<String, String> aReportData, Class<?> aClazz) {
     String value = getStringMemberValue(aAnnotation, aName);
     boolean isEmpty = value.length() == 0;
     boolean isDefault = value.equals(aDefault);
@@ -439,12 +438,12 @@ public class EnhanceMojo extends AbstractMojo {
    * Enhance descriptions in configuration parameters.
    */
   private void enhanceConfigurationParameter(JavaSource aAST, Class<?> aClazz, CtClass aCtClazz,
-          Multimap<String, String> aReportData) throws MojoExecutionException {
+      Multimap<String, String> aReportData) throws MojoExecutionException {
     // Get the parameter name constants
     Map<String, String> parameterNameFields = getParameterConstants(aClazz,
-            parameterNameConstantPrefixes);
+        parameterNameConstantPrefixes);
     Map<String, String> resourceNameFields = getParameterConstants(aClazz,
-            externalResourceNameConstantPrefixes);
+        externalResourceNameConstantPrefixes);
 
     // Fetch configuration parameters from the @ConfigurationParameter annotations in the
     // compiled class. We only need the fields in the class itself. Superclasses should be
@@ -461,7 +460,7 @@ public class EnhanceMojo extends AbstractMojo {
         pname = ConfigurationParameterFactory.createPrimitiveParameter(field).getName();
         // Extract JavaDoc for this resource from the source file
         pdesc = Util.getParameterDocumentation(aAST, field.getName(),
-                parameterNameFields.get(pname));
+            parameterNameFields.get(pname));
       }
 
       // Is this an external resource?
@@ -471,7 +470,7 @@ public class EnhanceMojo extends AbstractMojo {
         pname = ExternalResourceFactory.createResourceDependency(field).getKey();
         // Extract JavaDoc for this resource from the source file
         pdesc = Util.getParameterDocumentation(aAST, field.getName(),
-                resourceNameFields.get(pname));
+            resourceNameFields.get(pname));
       } else {
         continue;
       }
@@ -487,7 +486,7 @@ public class EnhanceMojo extends AbstractMojo {
       try {
         CtField ctField = aCtClazz.getField(field.getName());
         AnnotationsAttribute annoAttr = (AnnotationsAttribute) ctField.getFieldInfo()
-                .getAttribute(AnnotationsAttribute.visibleTag);
+            .getAttribute(AnnotationsAttribute.visibleTag);
 
         // Locate and update annotation
         if (annoAttr != null) {
@@ -496,19 +495,20 @@ public class EnhanceMojo extends AbstractMojo {
           // Update existing annotation
           for (Annotation a : annotations) {
             if (a.getTypeName()
-                    .equals(org.apache.uima.fit.descriptor.ConfigurationParameter.class.getName())
-                    || a.getTypeName()
-                            .equals(org.apache.uima.fit.descriptor.ExternalResource.class.getName())
-                    || a.getTypeName().equals("org.uimafit.descriptor.ConfigurationParameter")
-                    || a.getTypeName().equals("org.uimafit.descriptor.ExternalResource")) {
+                .equals(org.apache.uima.fit.descriptor.ConfigurationParameter.class.getName())
+                || a.getTypeName()
+                    .equals(org.apache.uima.fit.descriptor.ExternalResource.class.getName())
+                || a.getTypeName().equals("org.uimafit.descriptor.ConfigurationParameter")
+                || a.getTypeName().equals("org.uimafit.descriptor.ExternalResource")) {
               if (a.getMemberValue("description") == null) {
                 a.addMemberValue("description",
-                        new StringMemberValue(pdesc, aCtClazz.getClassFile().getConstPool()));
+                    new StringMemberValue(pdesc, aCtClazz.getClassFile().getConstPool()));
                 getLog().debug("Enhanced description of " + type + " [" + pname + "]");
                 // Replace updated annotation
                 annoAttr.addAnnotation(a);
               } else {
-                // Extract configuration parameter information from the uimaFIT annotation
+                // Extract configuration parameter information from the uimaFIT
+                // annotation
                 // We only want to override if the description is not set yet.
                 getLog().debug("Not overwriting description of " + type + " [" + pname + "] ");
               }
@@ -520,7 +520,7 @@ public class EnhanceMojo extends AbstractMojo {
         ctField.getFieldInfo().addAttribute(annoAttr);
       } catch (NotFoundException e) {
         throw new MojoExecutionException("Field [" + field.getName() + "] not found in byte code: "
-                + ExceptionUtils.getRootCauseMessage(e), e);
+            + ExceptionUtils.getRootCauseMessage(e), e);
       }
     }
   }
@@ -552,7 +552,7 @@ public class EnhanceMojo extends AbstractMojo {
         result.put(parameterName, f.getName());
       } catch (IllegalAccessException e) {
         getLog().warn("Unable to access name constant field [" + f.getName() + "]: "
-                + ExceptionUtils.getRootCauseMessage(e), e);
+            + ExceptionUtils.getRootCauseMessage(e), e);
       }
     }
     return result;
@@ -563,7 +563,7 @@ public class EnhanceMojo extends AbstractMojo {
       return Util.parseSource(aSourceFile, encoding);
     } catch (IOException e) {
       throw new MojoExecutionException("Unable to parse source file [" + aSourceFile + "]: "
-              + ExceptionUtils.getRootCauseMessage(e), e);
+          + ExceptionUtils.getRootCauseMessage(e), e);
     }
   }
 
@@ -589,7 +589,7 @@ public class EnhanceMojo extends AbstractMojo {
    * Write a report on any meta data missing from components.
    */
   private void writeMissingMetaDataReport(File aReportFile, Multimap<String, String> aReportData)
-          throws MojoExecutionException {
+      throws MojoExecutionException {
     String[] classes = aReportData.keySet().toArray(new String[aReportData.keySet().size()]);
     Arrays.sort(classes);
 
@@ -616,7 +616,7 @@ public class EnhanceMojo extends AbstractMojo {
       }
     } catch (IOException e) {
       throw new MojoExecutionException("Unable to write missing meta data report to [" + aReportFile
-              + "]" + ExceptionUtils.getRootCauseMessage(e), e);
+          + "]" + ExceptionUtils.getRootCauseMessage(e), e);
     } finally {
       IOUtils.closeQuietly(out);
     }
@@ -626,7 +626,7 @@ public class EnhanceMojo extends AbstractMojo {
    * Read the missing meta data report from a previous run.
    */
   private void readMissingMetaDataReport(File aReportFile, Multimap<String, String> aReportData)
-          throws MojoExecutionException {
+      throws MojoExecutionException {
     if (!aReportFile.exists()) {
       // Ignore if the file is missing
       return;
@@ -657,8 +657,7 @@ public class EnhanceMojo extends AbstractMojo {
       }
     } catch (IOException e) {
       throw new MojoExecutionException(
-              "Unable to read missing meta data report: " + ExceptionUtils.getRootCauseMessage(e),
-              e);
+          "Unable to read missing meta data report: " + ExceptionUtils.getRootCauseMessage(e), e);
     } finally {
       LineIterator.closeQuietly(i);
     }
diff --git a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java
index 89efbf9..48460a6 100644
--- a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java
+++ b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java
@@ -58,7 +58,7 @@ import org.xml.sax.SAXException;
  */
 @Mojo(name = "generate", defaultPhase = PROCESS_CLASSES, requiresDependencyResolution = TEST, requiresDependencyCollection = TEST)
 public class GenerateDescriptorsMojo extends AbstractMojo {
-  @Component
+  @Parameter(defaultValue = "${project}", readonly = true)
   private MavenProject project;
 
   @Component
@@ -124,7 +124,7 @@ public class GenerateDescriptorsMojo extends AbstractMojo {
 
     // Get the compiled classes from this project
     String[] files = FileUtils.getFilesFromExtension(project.getBuild().getOutputDirectory(),
-            new String[] { "class" });
+        new String[] { "class" });
 
     componentLoader = Util.getClassloader(project, getLog(), includeScope);
 
@@ -152,27 +152,27 @@ public class GenerateDescriptorsMojo extends AbstractMojo {
         ResourceCreationSpecifier desc = null;
         ProcessingResourceMetaData metadata = null;
         switch (Util.getType(componentLoader, clazz)) {
-          case ANALYSIS_ENGINE:
-            AnalysisEngineDescription aeDesc = createEngineDescription(clazz);
-            metadata = aeDesc.getAnalysisEngineMetaData();
-            desc = aeDesc;
-            break;
-          case COLLECTION_READER:
-            CollectionReaderDescription crDesc = createReaderDescription(clazz);
-            metadata = crDesc.getCollectionReaderMetaData();
-            desc = crDesc;
-          default:
-            // Do nothing
+        case ANALYSIS_ENGINE:
+          AnalysisEngineDescription aeDesc = createEngineDescription(clazz);
+          metadata = aeDesc.getAnalysisEngineMetaData();
+          desc = aeDesc;
+          break;
+        case COLLECTION_READER:
+          CollectionReaderDescription crDesc = createReaderDescription(clazz);
+          metadata = crDesc.getCollectionReaderMetaData();
+          desc = crDesc;
+        default:
+          // Do nothing
         }
 
         if (desc != null) {
           switch (addTypeSystemDescriptions) {
-            case EMBEDDED:
-              embedTypeSystems(metadata);
-              break;
-            case NONE: // fall-through
-            default:
-              // Do nothing
+          case EMBEDDED:
+            embedTypeSystems(metadata);
+            break;
+          case NONE: // fall-through
+          default:
+            // Do nothing
           }
 
           File out = new File(outputDirectory, clazzPath + ".xml");
@@ -196,8 +196,8 @@ public class GenerateDescriptorsMojo extends AbstractMojo {
       }
     }
 
-    getLog().info(
-            "Generated " + countGenerated + " descriptor" + (countGenerated != 1 ? "s." : "."));
+    getLog()
+        .info("Generated " + countGenerated + " descriptor" + (countGenerated != 1 ? "s." : "."));
 
     // Write META-INF/org.apache.uima.fit/components.txt unless skipped and unless there are no
     // components
@@ -208,23 +208,25 @@ public class GenerateDescriptorsMojo extends AbstractMojo {
         FileUtils.fileWrite(path.getPath(), encoding, componentsManifest.toString());
       } catch (IOException e) {
         handleError("Cannot write components manifest to [" + path + "]"
-                + ExceptionUtils.getRootCauseMessage(e), e);
+            + ExceptionUtils.getRootCauseMessage(e), e);
       }
     }
 
     if (addOutputDirectoryAsResourceDirectory && countGenerated > 0) {
       Path absoluteDescriptorOutputPath = outputDirectory.toPath().toAbsolutePath();
       Path absoluteBuildOutputDirectory = Paths.get(project.getBuild().getOutputDirectory())
-              .toAbsolutePath();
+          .toAbsolutePath();
       Path absoluteBuildTestOutputDirectory = Paths.get(project.getBuild().getTestOutputDirectory())
-              .toAbsolutePath();
+          .toAbsolutePath();
 
-      // Add the output folder as a new resource folder if any descriptors were generated and only
-      // if the descriptors were generated directly into the build output folder. The latter can
+      // Add the output folder as a new resource folder if any descriptors were generated and
+      // only
+      // if the descriptors were generated directly into the build output folder. The latter
+      // can
       // be the case if the mojo is executed in a late build phase where the resources plugin
       // doesn't run anymore.
       if (!absoluteBuildOutputDirectory.equals(absoluteDescriptorOutputPath)
-              && !absoluteBuildTestOutputDirectory.equals(absoluteDescriptorOutputPath)) {
+          && !absoluteBuildTestOutputDirectory.equals(absoluteDescriptorOutputPath)) {
         Resource resource = new Resource();
         resource.setDirectory(outputDirectory.getPath());
         resource.setFiltering(false);
@@ -243,7 +245,7 @@ public class GenerateDescriptorsMojo extends AbstractMojo {
   }
 
   private void embedTypeSystems(ProcessingResourceMetaData metadata)
-          throws ResourceInitializationException {
+      throws ResourceInitializationException {
     TypeSystemDescriptionFactory.forceTypeDescriptorsScan();
     TypeSystemDescription tsDesc = TypeSystemDescriptionFactory.createTypeSystemDescription();
     metadata.setTypeSystem(tsDesc);
diff --git a/uimafit-parent/pom.xml b/uimafit-parent/pom.xml
index 94195f4..f8c3237 100644
--- a/uimafit-parent/pom.xml
+++ b/uimafit-parent/pom.xml
@@ -25,7 +25,7 @@
     <groupId>org.apache.uima</groupId>
     <artifactId>parent-pom</artifactId>
     <relativePath />
-    <version>14</version>
+    <version>15-SNAPSHOT</version>
   </parent>
   <artifactId>uimafit-parent</artifactId>
   <version>3.3.0-SNAPSHOT</version>
diff --git a/uimafit-spring/pom.xml b/uimafit-spring/pom.xml
index ea59782..d28aeac 100644
--- a/uimafit-spring/pom.xml
+++ b/uimafit-spring/pom.xml
@@ -56,6 +56,7 @@
       <groupId>org.apache.uima</groupId>
       <artifactId>uimafit-core</artifactId>
       <version>3.3.0-SNAPSHOT</version>
+      <scope>test</scope>
     </dependency>
   </dependencies>
 </project>