Repository: maven-integration-testing Updated Branches: refs/heads/master 22c1e01c8 -> 192dd12ce
improved documentation Project: http://git-wip-us.apache.org/repos/asf/maven-integration-testing/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-integration-testing/commit/192dd12c Tree: http://git-wip-us.apache.org/repos/asf/maven-integration-testing/tree/192dd12c Diff: http://git-wip-us.apache.org/repos/asf/maven-integration-testing/diff/192dd12c Branch: refs/heads/master Commit: 192dd12ce20f71b46255d3c57dfb29fae0376679 Parents: 22c1e01 Author: Hervé Boutemy <hbout...@apache.org> Authored: Sat May 31 14:30:29 2014 +0200 Committer: Hervé Boutemy <hbout...@apache.org> Committed: Sat May 31 14:30:29 2014 +0200 ---------------------------------------------------------------------- .../maven-it-plugin-touch/pom.xml | 1 + .../apache/maven/plugin/coreit/CopyPomMojo.java | 6 +- .../apache/maven/plugin/coreit/CoreItMojo.java | 156 ----------------- .../maven/plugin/coreit/CoreItTouchMojo.java | 167 +++++++++++++++++++ 4 files changed, 170 insertions(+), 160 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-integration-testing/blob/192dd12c/core-it-support/core-it-plugins/maven-it-plugin-touch/pom.xml ---------------------------------------------------------------------- diff --git a/core-it-support/core-it-plugins/maven-it-plugin-touch/pom.xml b/core-it-support/core-it-plugins/maven-it-plugin-touch/pom.xml index 104cdf0..7169276 100644 --- a/core-it-support/core-it-plugins/maven-it-plugin-touch/pom.xml +++ b/core-it-support/core-it-plugins/maven-it-plugin-touch/pom.xml @@ -32,6 +32,7 @@ under the License. <packaging>maven-plugin</packaging> <name>Maven IT Plugin :: Touch</name> + <description>Plugin to touch files.</description> <inceptionYear>2001</inceptionYear> <dependencies> http://git-wip-us.apache.org/repos/asf/maven-integration-testing/blob/192dd12c/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CopyPomMojo.java ---------------------------------------------------------------------- diff --git a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CopyPomMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CopyPomMojo.java index 9eb43e3..578422a 100644 --- a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CopyPomMojo.java +++ b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CopyPomMojo.java @@ -21,7 +21,6 @@ package org.apache.maven.plugin.coreit; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.project.MavenProject; import java.io.File; import java.io.FileInputStream; @@ -29,11 +28,10 @@ import java.io.FileOutputStream; import java.io.IOException; /** - * @goal copy-pom + * Mojo which makes a copy of the POM using MavenProject.getFile() to locate the file. * + * @goal copy-pom * @phase generate-sources - * - * @description Mojo which makes a copy of the POM using MavenProject.getFile() to locate the file. */ public class CopyPomMojo extends AbstractMojo http://git-wip-us.apache.org/repos/asf/maven-integration-testing/blob/192dd12c/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java ---------------------------------------------------------------------- diff --git a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java deleted file mode 100644 index 3d84794..0000000 --- a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java +++ /dev/null @@ -1,156 +0,0 @@ -package org.apache.maven.plugin.coreit; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.artifact.Artifact; -import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.project.MavenProject; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.Map; - -/** - * @goal touch - * - * @phase process-sources - * - * @description Goal which cleans the build - */ -public class CoreItMojo - extends AbstractMojo -{ - /** - * @parameter default-value="${project}" - */ - private MavenProject project; - - /** - * @parameter default-value="${project.build.directory}" - * @required - */ - private String outputDirectory; - - /** Test setting of plugin-artifacts on the PluginDescriptor instance. - * @parameter default-value="${plugin.artifactMap}" - * @required - */ - private Map pluginArtifacts; - - /** - * @parameter default-value="target/test-basedir-alignment" - */ - private File basedirAlignmentDirectory; - - /** - * @parameter alias="pluginFile" - */ - private String pluginItem = "foo"; - - /** - * @parameter - */ - private String goalItem = "bar"; - - /** - * @parameter property="artifactToFile" - */ - private String artifactToFile; - - /** - * @parameter property="fail" - */ - private boolean fail = false; - - public void execute() - throws MojoExecutionException - { - if ( fail ) - { - throw new MojoExecutionException( "Failing per \'fail\' parameter (specified in pom or system properties)" ); - } - - touch( new File( outputDirectory ), "touch.txt" ); - - // This parameter should be aligned to the basedir as the parameter type is specified - // as java.io.File - - if ( !basedirAlignmentDirectory.isAbsolute() ) - { - throw new MojoExecutionException( "basedirAlignmentDirectory not aligned" ); - } - - touch( basedirAlignmentDirectory, "touch.txt" ); - - File outDir = new File( outputDirectory ); - - // Test parameter setting - if ( pluginItem != null ) - { - touch( outDir, pluginItem ); - } - - if ( goalItem != null ) - { - touch( outDir, goalItem ); - } - - if ( artifactToFile != null ) - { - Artifact artifact = (Artifact) pluginArtifacts.get( artifactToFile ); - - File artifactFile = artifact.getFile(); - - String filename = artifactFile.getAbsolutePath().replace('/', '_').replace(':', '_') + ".txt"; - - touch( outDir, filename ); - } - - project.getBuild().setFinalName( "coreitified" ); - } - - private void touch( File dir, String file ) - throws MojoExecutionException - { - try - { - if ( !dir.exists() ) - { - dir.mkdirs(); - } - - File touch = new File( dir, file ); - - getLog().info( "Touching file: " + touch.getAbsolutePath() ); - - FileWriter w = new FileWriter( touch ); - - w.write( file ); - - w.close(); - } - catch ( IOException e ) - { - throw new MojoExecutionException( "Error touching file", e ); - } - } -} http://git-wip-us.apache.org/repos/asf/maven-integration-testing/blob/192dd12c/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java ---------------------------------------------------------------------- diff --git a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java new file mode 100644 index 0000000..e8e25cf --- /dev/null +++ b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java @@ -0,0 +1,167 @@ +package org.apache.maven.plugin.coreit; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Map; + +/** + * Mojo that touches one <code>touch.txt</code> or more files with configured filenames, + * or cause failure if desired, and set build final name to '<code>coreitified</code>' + * + * @goal touch + * @phase process-sources + */ +public class CoreItTouchMojo + extends AbstractMojo +{ + /** + * @parameter default-value="${project}" + */ + private MavenProject project; + + /** + * Output directory for touched files. + * + * @parameter default-value="${project.build.directory}" + * @required + */ + private String outputDirectory; + + /** + * Test setting of plugin-artifacts on the PluginDescriptor instance. + * + * @parameter default-value="${plugin.artifactMap}" + * @required + */ + private Map<String, Artifact> pluginArtifacts; + + /** + * Parameter to check that File attribute is injected with absolute path, even if parameter + * value is relative: a <code>touch.txt</code> file will be created in specified directory, to be able + * to check that absolute value is at right place. + * + * @parameter default-value="target/test-basedir-alignment" + */ + private File basedirAlignmentDirectory; + + /** + * @parameter alias="pluginFile" + */ + private String pluginItem = "foo"; + + /** + * @parameter + */ + private String goalItem = "bar"; + + /** + * Touch a file named after artifact absolute file name, replacing '/' and ':' by '_' and adding ".txt". + * + * @parameter property="artifactToFile" + */ + private String artifactToFile; + + /** + * Should the goal cause a failure before doing anything else? + * + * @parameter property="fail" + */ + private boolean fail = false; + + public void execute() + throws MojoExecutionException + { + if ( fail ) + { + throw new MojoExecutionException( "Failing per \'fail\' parameter (specified in pom or system properties)" ); + } + + File outDir = new File( outputDirectory ); + + touch( outDir, "touch.txt" ); + + // This parameter should be aligned to the basedir as the parameter type is specified + // as java.io.File + if ( !basedirAlignmentDirectory.isAbsolute() ) + { + throw new MojoExecutionException( "basedirAlignmentDirectory not aligned" ); + } + touch( basedirAlignmentDirectory, "touch.txt" ); + + // Test parameter setting + if ( pluginItem != null ) + { + touch( outDir, pluginItem ); + } + + if ( goalItem != null ) + { + touch( outDir, goalItem ); + } + + if ( artifactToFile != null ) + { + Artifact artifact = pluginArtifacts.get( artifactToFile ); + + File artifactFile = artifact.getFile(); + + String filename = artifactFile.getAbsolutePath().replace( '/', '_' ).replace( ':', '_' ) + ".txt"; + + touch( outDir, filename ); + } + + project.getBuild().setFinalName( "coreitified" ); + } + + private void touch( File dir, String file ) + throws MojoExecutionException + { + try + { + if ( !dir.exists() ) + { + dir.mkdirs(); + } + + File touch = new File( dir, file ); + + getLog().info( "Touching file: " + touch.getAbsolutePath() ); + + FileWriter w = new FileWriter( touch ); + + w.write( file ); + + w.close(); + } + + catch ( IOException e ) + { + throw new MojoExecutionException( "Error touching file", e ); + } + } +}