You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2022/01/31 17:30:15 UTC

[maven-help-plugin] 01/01: [MPH-185] Require Maven 3.6.1

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

cstamas pushed a commit to branch drop-legacy
in repository https://gitbox.apache.org/repos/asf/maven-help-plugin.git

commit 049d6d70d9121a8c1cd14eae16ab86bedeb2b814
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Mon Jan 31 18:29:18 2022 +0100

    [MPH-185] Require Maven 3.6.1
    
    And drop the hoops and loops, just make it simple.
---
 pom.xml                                            |  68 +++----------
 .../maven/plugins/help/EffectivePomMojo.java       | 112 +--------------------
 2 files changed, 17 insertions(+), 163 deletions(-)

diff --git a/pom.xml b/pom.xml
index b1ea5e2..6dd4d43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,8 +69,8 @@
 
   <properties>
     <javaVersion>7</javaVersion>
-    <mavenVersion>3.1.1</mavenVersion>
-    <mavenPluginToolsVersion>3.6.2</mavenPluginToolsVersion>
+    <mavenVersion>3.6.1</mavenVersion>
+    <mavenPluginToolsVersion>3.6.4</mavenPluginToolsVersion>
     <surefire.version>2.22.2</surefire.version>
     <project.build.outputTimestamp>2020-04-07T21:04:00Z</project.build.outputTimestamp>
   </properties>
@@ -81,26 +81,37 @@
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
       <version>${mavenVersion}</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-core</artifactId>
       <version>${mavenVersion}</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-model</artifactId>
-      <version>3.8.4</version>
+      <version>${mavenVersion}</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
       <version>${mavenVersion}</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-settings</artifactId>
       <version>${mavenVersion}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings-builder</artifactId>
+      <version>${mavenVersion}</version>
+      <scope>provided</scope>
     </dependency>
 
     <!-- maven plugin tools -->
@@ -191,7 +202,7 @@
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-plugin-testing-harness</artifactId>
-      <version>3.1.0</version>
+      <version>3.3.0</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -226,10 +237,6 @@
           <version>3.1.2</version>
         </plugin>
         <plugin>
-          <artifactId>maven-enforcer-plugin</artifactId>
-          <version>3.0.0-M3</version>
-        </plugin>
-        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-javadoc-plugin</artifactId>
           <version>3.3.1</version>
@@ -265,51 +272,6 @@
           </execution>
         </executions>
       </plugin>
-      <!-- unpack old Maven core sources for maven.mdo model to be able to generate xpp3-extended-writer when not yet provided by Maven core -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.maven</groupId>
-                  <artifactId>apache-maven</artifactId>
-                  <version>${mavenVersion}</version>
-                  <type>tar.gz</type>
-                  <classifier>src</classifier>
-                  <outputDirectory>${project.build.directory}</outputDirectory>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.modello</groupId>
-        <artifactId>modello-maven-plugin</artifactId>
-        <version>1.11</version>
-        <configuration>
-          <version>4.0.0</version>
-          <models>
-            <model>target/apache-maven-${mavenVersion}/maven-model/src/main/mdo/maven.mdo</model>
-          </models>
-          <extendedClassnameSuffix>ExOldSupport</extendedClassnameSuffix><!-- to avoid conflict with class provided by Maven core -->
-        </configuration>
-        <executions>
-          <execution>
-            <id>modello</id>
-            <goals>
-              <goal>xpp3-extended-writer</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
     </plugins>
   </build>
   
diff --git a/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java b/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java
index d80e7cd..f3e204c 100644
--- a/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java
+++ b/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java
@@ -21,18 +21,13 @@ package org.apache.maven.plugins.help;
 
 import java.io.IOException;
 import java.io.StringWriter;
-import java.io.Writer;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.maven.model.InputLocation;
 import org.apache.maven.model.Model;
-import org.apache.maven.model.InputSource;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.apache.maven.model.io.xpp3.MavenXpp3WriterExOldSupport;
+import org.apache.maven.model.io.xpp3.MavenXpp3WriterEx;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecution.Source;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -44,8 +39,6 @@ import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
 import org.codehaus.plexus.util.xml.XMLWriter;
 import org.codehaus.plexus.util.xml.XmlWriterUtil;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.pull.XmlSerializer;
 
 /**
  * Displays the effective POM as an XML for this build, with the active profiles factored in, or a specified artifact.
@@ -212,12 +205,7 @@ public class EffectivePomMojo
         {
             if ( verbose )
             {
-                // try to use Maven core-provided xpp3 extended writer (available since Maven 3.6.1)
-                if ( ! writeMavenXpp3WriterEx( sWriter, pom ) )
-                {
-                    // xpp3 extended writer not provided by Maven core, use local code
-                    new EffectiveWriterExOldSupport().write( sWriter, pom );
-                }
+                new MavenXpp3WriterEx().write( sWriter, pom );
             }
             else
             {
@@ -248,100 +236,4 @@ public class EffectivePomMojo
         properties.putAll( pom.getProperties() );
         pom.setProperties( properties );
     }
-
-    private void warnWriteMavenXpp3WriterEx( Throwable t )
-    {
-        getLog().warn( "Unexpected exception while running Maven Model Extended Writer, "
-            + "falling back to old internal implementation.", t );
-    }
-
-    private boolean writeMavenXpp3WriterEx( Writer writer, Model model )
-        throws IOException
-    {
-        try
-        {
-            Class<?> mavenXpp3WriterExClass = Class.forName( "org.apache.maven.model.io.xpp3.MavenXpp3WriterEx" );
-            Object mavenXpp3WriterEx = mavenXpp3WriterExClass.getDeclaredConstructor().newInstance();
-
-            Method setStringFormatter =
-                mavenXpp3WriterExClass.getMethod( "setStringFormatter", InputLocation.StringFormatter.class );
-            setStringFormatter.invoke( mavenXpp3WriterEx, new InputLocationStringFormatter() );
-
-            Method write = mavenXpp3WriterExClass.getMethod( "write", Writer.class, Model.class );
-            write.invoke( mavenXpp3WriterEx, writer, model );
-
-            return true;
-        }
-        catch ( ClassNotFoundException e )
-        {
-            // MavenXpp3WriterEx not available in running Maven version
-        }
-        catch ( NoSuchMethodException | SecurityException | IllegalArgumentException | IllegalAccessException
-                | InstantiationException e )
-        {
-            warnWriteMavenXpp3WriterEx( e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            if ( e.getTargetException() instanceof IOException )
-            {
-                throw (IOException) e.getTargetException();
-            }
-            else if ( e.getTargetException() instanceof RuntimeException )
-            {
-                throw (RuntimeException) e.getTargetException();
-            }
-            warnWriteMavenXpp3WriterEx( e );
-        }
-        return false;
-    }
-
-    private static String toString( InputLocation location )
-    {
-        InputSource source = location.getSource();
-
-        String s = source.getModelId(); // by default, display modelId
-
-        if ( StringUtils.isBlank( s ) || s.contains( "[unknown-version]" ) )
-        {
-            // unless it is blank or does not provide version information
-            s = source.toString();
-        }
-
-        return '}' + s + ( ( location.getLineNumber() >= 0 ) ? ", line " + location.getLineNumber() : "" ) + ' ';
-    }
-
-    private static class InputLocationStringFormatter
-        extends InputLocation.StringFormatter
-    {
-
-        public String toString( InputLocation location )
-        {
-            return EffectivePomMojo.toString( location );
-        }
-
-    }
-
-    /**
-     * Xpp3 extended writer extension to improve default InputSource display
-     */
-    private static class EffectiveWriterExOldSupport
-        extends MavenXpp3WriterExOldSupport
-    {
-
-        @Override
-        public String toString( InputLocation location )
-        {
-            return EffectivePomMojo.toString( location );
-        }
-
-        @Override
-        protected void writeXpp3DomToSerializer( Xpp3Dom dom, XmlSerializer serializer )
-            throws java.io.IOException
-        {
-            // default method uses Xpp3Dom input location tracking, not available in older Maven versions
-            // use old Xpp3Dom serialization, without input location tracking
-            dom.writeToSerializer( null, serializer );
-        }
-    }
 }