You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/04/24 07:57:20 UTC

[maven] branch master updated: [MNG-7457] Warn about deprecated plugin Mojo

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

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new 702f52d0e [MNG-7457] Warn about deprecated plugin Mojo
702f52d0e is described below

commit 702f52d0ea7c5e90b495bc05f079ca3e952766a8
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Sat Apr 23 21:55:29 2022 +0200

    [MNG-7457] Warn about deprecated plugin Mojo
---
 .../plugin/internal/DeprecatedPluginValidator.java | 54 +++++++++++++++-------
 1 file changed, 38 insertions(+), 16 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DeprecatedPluginValidator.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DeprecatedPluginValidator.java
index a41c533ca..3139f5b84 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DeprecatedPluginValidator.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DeprecatedPluginValidator.java
@@ -24,6 +24,7 @@ import javax.inject.Singleton;
 
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
+import org.apache.maven.shared.utils.logging.MessageBuilder;
 import org.apache.maven.shared.utils.logging.MessageUtils;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
@@ -32,7 +33,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Print warnings if deprecated params of plugin are used in configuration.
+ * Print warnings if deprecated mojo or parameters of plugin are used in configuration.
  *
  * @author Slawomir Jaranowski
  */
@@ -52,6 +53,11 @@ class DeprecatedPluginValidator implements MavenPluginConfigurationValidator
             return;
         }
 
+        if ( mojoDescriptor.getDeprecated() != null )
+        {
+            logDeprecatedMojo( mojoDescriptor );
+        }
+
         if ( mojoDescriptor.getParameters() == null )
         {
             return;
@@ -64,19 +70,19 @@ class DeprecatedPluginValidator implements MavenPluginConfigurationValidator
     }
 
     private static void checkParameter( Parameter parameter,
-                                 PlexusConfiguration pomConfiguration,
-                                 ExpressionEvaluator expressionEvaluator )
+                                        PlexusConfiguration pomConfiguration,
+                                        ExpressionEvaluator expressionEvaluator )
     {
         PlexusConfiguration config = pomConfiguration.getChild( parameter.getName(), false );
 
         if ( isValueSet( config, expressionEvaluator ) )
         {
-            logDeprecateWarn( parameter );
+            logDeprecatedParameter( parameter );
         }
     }
 
     private static boolean isValueSet( PlexusConfiguration config,
-                                ExpressionEvaluator expressionEvaluator )
+                                       ExpressionEvaluator expressionEvaluator )
     {
         if ( config == null )
         {
@@ -112,22 +118,38 @@ class DeprecatedPluginValidator implements MavenPluginConfigurationValidator
         return false;
     }
 
-    private static void logDeprecateWarn( Parameter parameter )
+    private void logDeprecatedMojo( MojoDescriptor mojoDescriptor )
+    {
+        String message = MessageUtils.buffer()
+            .warning( "Goal '" )
+            .warning( mojoDescriptor.getGoal() )
+            .warning( "' is deprecated: " )
+            .warning( mojoDescriptor.getDeprecated() )
+            .toString();
+
+        LOGGER.warn( message );
+    }
+
+    private static void logDeprecatedParameter( Parameter parameter )
     {
-        StringBuilder sb = new StringBuilder();
-        sb.append( "Parameter '" );
-        sb.append( parameter.getName() );
-        sb.append( '\'' );
+        MessageBuilder messageBuilder = MessageUtils.buffer()
+            .warning( "Parameter '" )
+            .warning( parameter.getName() )
+            .warning( '\'' );
+
         if ( parameter.getExpression() != null )
         {
             String userProperty = parameter.getExpression().replace( "${", "'" ).replace( '}', '\'' );
-            sb.append( " (user property " );
-            sb.append( userProperty );
-            sb.append( ")" );
+            messageBuilder
+                .warning( " (user property " )
+                .warning( userProperty )
+                .warning( ")" );
         }
-        sb.append( " is deprecated: " );
-        sb.append( parameter.getDeprecated() );
 
-        LOGGER.warn( MessageUtils.buffer().warning( sb.toString() ).toString() );
+        messageBuilder
+            .warning( " is deprecated: " )
+            .warning( parameter.getDeprecated() );
+
+        LOGGER.warn( messageBuilder.toString() );
     }
 }