You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2014/10/31 23:03:58 UTC

svn commit: r1635871 - in /maven/plugins/trunk/maven-toolchains-plugin/src: main/java/org/apache/maven/plugin/toolchain/ site/apt/toolchains/

Author: hboutemy
Date: Fri Oct 31 22:03:58 2014
New Revision: 1635871

URL: http://svn.apache.org/r1635871
Log:
updated code with Java 5 typed collections

Modified:
    maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainConverter.java
    maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainMojo.java
    maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/Toolchains.java
    maven/plugins/trunk/maven-toolchains-plugin/src/site/apt/toolchains/jdk.apt.vm

Modified: maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainConverter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainConverter.java?rev=1635871&r1=1635870&r2=1635871&view=diff
==============================================================================
--- maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainConverter.java (original)
+++ maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainConverter.java Fri Oct 31 22:03:58 2014
@@ -62,6 +62,7 @@ public class ToolchainConverter
         throws ComponentConfigurationException
     {
         Toolchains retValue = new Toolchains();
+
         processConfiguration( retValue, configuration, expressionEvaluator );
 
         return retValue;
@@ -72,20 +73,20 @@ public class ToolchainConverter
                                        ExpressionEvaluator expressionEvaluator )
         throws ComponentConfigurationException
     {
-        Map map = new HashMap();
+        Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
+
         PlexusConfiguration[] tools = configuration.getChildren();
         for ( PlexusConfiguration tool : tools )
         {
             String type = tool.getName();
             PlexusConfiguration[] params = tool.getChildren();
-            Map parameters = new HashMap();
+
+            Map<String, String> parameters = new HashMap<String, String>();
             for ( PlexusConfiguration param : params )
             {
                 try
                 {
-                    String name = param.getName();
-                    String val = param.getValue();
-                    parameters.put( name, val );
+                    parameters.put( param.getName(), param.getValue() );
                 }
                 catch ( PlexusConfigurationException ex )
                 {
@@ -94,6 +95,7 @@ public class ToolchainConverter
             }
             map.put( type, parameters );
         }
+
         chain.toolchains = map;
     }
 }
\ No newline at end of file

Modified: maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainMojo.java?rev=1635871&r1=1635870&r2=1635871&view=diff
==============================================================================
--- maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainMojo.java (original)
+++ maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/ToolchainMojo.java Fri Oct 31 22:03:58 2014
@@ -34,7 +34,6 @@ import org.apache.maven.toolchain.Toolch
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -49,7 +48,7 @@ public class ToolchainMojo
     /**
      */
     @Component
-    private ToolchainManagerPrivate toolchainManager;
+    private ToolchainManagerPrivate toolchainManagerPrivate;
 
     /**
      * The current build session instance. This is used for
@@ -70,78 +69,87 @@ public class ToolchainMojo
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
-        if ( toolchains != null )
+        if ( toolchains == null )
         {
-            Iterator en = toolchains.getToolchainsTypes().iterator();
-            List nonMatchedTypes = new ArrayList();
-            while ( en.hasNext() )
+            // should not happen since parameter is required...
+            getLog().warn( "No toolchains requirements configured." );
+            return;
+        }
+
+        List<String> nonMatchedTypes = new ArrayList<String>();
+
+        for ( Map.Entry<String, Map<String, String>> entry : toolchains.getToolchains().entrySet() )
+        {
+            try
             {
-                try
+                String type = entry.getKey();
+                Map<String, String> params = entry.getValue();
+
+                getLog().info( "Type:" + type );
+                ToolchainPrivate[] tcs = getToolchains( type );
+
+                boolean matched = false;
+                for ( ToolchainPrivate tc : tcs )
                 {
-                    String type = (String) en.next();
-                    getLog().info( "Type:" + type );
-                    Map params = toolchains.getParams( type );
-                    ToolchainPrivate[] tcs = getToolchains( type );
-                    boolean matched = false;
-                    for ( ToolchainPrivate tc : tcs )
+                    if ( tc.matchesRequirements( params ) )
                     {
-                        if ( tc.matchesRequirements( params ) )
-                        {
-                            getLog().info( "Toolchain (" + type + ") matched:" + tc );
-                            toolchainManager.storeToolchainToBuildContext( tc, session );
-                            matched = true;
-                            break;
-                        }
-                    }
-                    if ( !matched )
-                    {
-                        nonMatchedTypes.add( type );
+                        getLog().info( "Toolchain (" + type + ") matched: " + tc );
+
+                        toolchainManagerPrivate.storeToolchainToBuildContext( tc, session );
+
+                        matched = true;
+                        break;
                     }
                 }
-                catch ( MisconfiguredToolchainException ex )
+
+                if ( !matched )
                 {
-                    throw new MojoExecutionException( "Misconfigured toolchains.", ex );
+                    nonMatchedTypes.add( type );
                 }
             }
-            if ( !nonMatchedTypes.isEmpty() )
+            catch ( MisconfiguredToolchainException ex )
             {
-                // TODO add the default toolchain instance if defined??
-                StringBuilder buff = new StringBuilder();
-                buff.append( "Cannot find matching toolchain definitions for the following toolchain types:" );
-                for ( Object nonMatchedType : nonMatchedTypes )
+                throw new MojoExecutionException( "Misconfigured toolchains.", ex );
+            }
+        }
+
+        if ( !nonMatchedTypes.isEmpty() )
+        {
+            // TODO add the default toolchain instance if defined??
+            StringBuilder buff = new StringBuilder();
+            buff.append( "Cannot find matching toolchain definitions for the following toolchain types:" );
+
+            for ( String type : nonMatchedTypes )
+            {
+                buff.append( '\n' );
+                buff.append( type );
+
+                Map<String, String> params = toolchains.getParams( type );
+
+                if ( params.size() > 0 )
                 {
-                    String type = (String) nonMatchedType;
-                    buff.append( '\n' );
-                    buff.append( type );
-                    Map params = toolchains.getParams( type );
-                    if ( params.size() > 0 )
+                    buff.append( " [" );
+
+                    for ( Map.Entry<String, String> param : params.entrySet() )
                     {
-                        Iterator it2 = params.keySet().iterator();
-                        buff.append( " [" );
-                        while ( it2.hasNext() )
-                        {
-                            String string = (String) it2.next();
-                            buff.append( " " ).append( string ).append( "='" ).append( params.get( string ) );
-                            buff.append( "' " );
-                        }
-                        buff.append( ']' );
+                        buff.append( " " ).append( param.getKey() ).append( "='" ).append( param.getValue() );
+                        buff.append( "'" );
                     }
+                    buff.append( " ]" );
                 }
-                getLog().error( buff.toString() );
-                throw new MojoFailureException( buff.toString()
-                    + "\nPlease make sure you define the required toolchains in your ~/.m2/toolchains.xml file." );
             }
-        }
-        else
-        {
-            //can that happen?
+
+            getLog().error( buff.toString() );
+
+            throw new MojoFailureException( buff.toString()
+                + "\nPlease make sure you define the required toolchains in your ~/.m2/toolchains.xml file." );
         }
     }
 
     private ToolchainPrivate[] getToolchains( String type )
         throws MojoExecutionException, MisconfiguredToolchainException
     {
-        Class managerClass = toolchainManager.getClass();
+        Class<?> managerClass = toolchainManagerPrivate.getClass();
 
         try
         {
@@ -151,14 +159,14 @@ public class ToolchainMojo
                 Method newMethod =
                     managerClass.getMethod( "getToolchainsForType", new Class[] { String.class, MavenSession.class } );
 
-                return (ToolchainPrivate[]) newMethod.invoke( toolchainManager, type, session );
+                return (ToolchainPrivate[]) newMethod.invoke( toolchainManagerPrivate, type, session );
             }
             catch ( NoSuchMethodException e )
             {
                 // try 2.x style API
                 Method oldMethod = managerClass.getMethod( "getToolchainsForType", new Class[] { String.class } );
 
-                return (ToolchainPrivate[]) oldMethod.invoke( toolchainManager, type );
+                return (ToolchainPrivate[]) oldMethod.invoke( toolchainManagerPrivate, type );
             }
         }
         catch ( NoSuchMethodException e )

Modified: maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/Toolchains.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/Toolchains.java?rev=1635871&r1=1635870&r2=1635871&view=diff
==============================================================================
--- maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/Toolchains.java (original)
+++ maven/plugins/trunk/maven-toolchains-plugin/src/main/java/org/apache/maven/plugin/toolchain/Toolchains.java Fri Oct 31 22:03:58 2014
@@ -24,22 +24,26 @@ import java.util.Map;
 import java.util.Set;
 
 /**
+ * Type for plugins's <code>toolchain</code> attribute.
  *
  * @author mkleint
  */
 public final class Toolchains
 {
+    Map<String, Map<String, String>> toolchains;
 
-    /** <String type, Map<String param, String value>> */
-    Map toolchains;
+    public Map<String, Map<String, String>> getToolchains()
+    {
+        return Collections.unmodifiableMap( toolchains );
+    }
 
-    public Set getToolchainsTypes()
+    public Set<String> getToolchainsTypes()
     {
         return Collections.unmodifiableSet( toolchains.keySet() );
     }
 
-    public Map getParams( String type )
+    public Map<String, String> getParams( String type )
     {
-        return Collections.unmodifiableMap( (Map) toolchains.get( type ) );
+        return Collections.unmodifiableMap( toolchains.get( type ) );
     }
 }
\ No newline at end of file

Modified: maven/plugins/trunk/maven-toolchains-plugin/src/site/apt/toolchains/jdk.apt.vm
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-toolchains-plugin/src/site/apt/toolchains/jdk.apt.vm?rev=1635871&r1=1635870&r2=1635871&view=diff
==============================================================================
--- maven/plugins/trunk/maven-toolchains-plugin/src/site/apt/toolchains/jdk.apt.vm (original)
+++ maven/plugins/trunk/maven-toolchains-plugin/src/site/apt/toolchains/jdk.apt.vm Fri Oct 31 22:03:58 2014
@@ -83,6 +83,13 @@ Sample Plugin Configuration
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-toolchains-plugin</artifactId>
         <version>${project.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>toolchain</goal>
+            </goals>
+          </execution>
+        </executions>
         <configuration>
           <toolchains>
             <jdk>