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:24 UTC

[uima-uimafit] branch refactoring/UIMA-6432-Upgrade-dependencies created (now 3607345)

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

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


      at 3607345  [UIMA-6432] Upgrade dependencies (uimaFIT 3.3.0)

This branch includes the following new commits:

     new 3607345  [UIMA-6432] Upgrade dependencies (uimaFIT 3.3.0)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by re...@apache.org.
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>