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>