diff --git a/maven-plugin-plugin/src/it/java-basic/src/main/java/org/apache/maven/plugin/coreit/FirstMojo.java b/maven-plugin-plugin/src/it/java-basic/src/main/java/org/apache/maven/plugin/coreit/FirstMojo.java new file mode 100644 index 0000000..18ce947 --- /dev/null +++ b/maven-plugin-plugin/src/it/java-basic/src/main/java/org/apache/maven/plugin/coreit/FirstMojo.java @@ -0,0 +1,72 @@ +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.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; + +import java.io.File; +import java.io.IOException; + +/** + * Touches a test file. + * + * @goal first + * @requiresDependencyResolution test + * @phase integration-test + * @execute phase="generate-sources" lifecycle="cobertura" + * @deprecated Don't use! + * @since 1.2 + */ +public class FirstMojo + extends AbstractMojo +{ + + /** + * Project directory. + * @parameter default-value="${basedir}" + * @readonly + */ + private File basedir; + + /** + * @parameter expression="${first.touchFile}" default-value="${project.build.directory}/touch.txt" + * @required + */ + private File touchFile; + + /** + * @parameter alias="alias" + * @deprecated As of 0.2 + * @since 0.1 + */ + private String aliasedParam; + + /** + * @component role="org.apache.maven.project.MavenProjectHelper" roleHint="test" + */ + private Object projectHelper; + + public void execute() + throws MojoExecutionException + { + } + +} diff --git a/maven-plugin-plugin/src/it/java-basic/verify.bsh b/maven-plugin-plugin/src/it/java-basic/verify.bsh deleted file mode 100644 index ab9d249..0000000 --- a/maven-plugin-plugin/src/it/java-basic/verify.bsh +++ /dev/null @@ -1,21 +0,0 @@ -import java.io.*; -import java.util.*; -import java.util.regex.*; - -try -{ - File file = new File( basedir, "target/touch.txt" ); - System.out.println( "Checking for existence of generated touch file: " + file ); - if ( !file.isFile() ) - { - System.out.println( "FAILED!" ); - return false; - } -} -catch( Throwable t ) -{ - t.printStackTrace(); - return false; -} - -return true; diff --git a/maven-plugin-plugin/src/it/java-basic/verify.groovy b/maven-plugin-plugin/src/it/java-basic/verify.groovy new file mode 100644 index 0000000..c3ed03d --- /dev/null +++ b/maven-plugin-plugin/src/it/java-basic/verify.groovy @@ -0,0 +1,65 @@ +File touchFile = new File( basedir, "target/touch.txt" ) +assert touchFile.isFile() + +File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" ); +assert descriptorFile.isFile() + +def pluginDescriptor = new XmlParser().parse( descriptorFile ); + +def mojo = pluginDescriptor.mojos.mojo.findAll{ it.goal.text() == "first"}[0] + +assert mojo.goal.text() == 'first' +assert mojo.implementation.text() == 'org.apache.maven.plugin.coreit.FirstMojo' +assert mojo.language.text() == 'java' +assert mojo.description.text() == 'Touches a test file.' +assert mojo.deprecated.text() == "Don't use!" +assert mojo.requiresDependencyResolution.text() == 'test' +assert mojo.requiresProject.text() == 'true' +assert mojo.requiresOnline.text() == 'false' +assert mojo.requiresDirectInvocation.text() == 'false' +assert mojo.aggregator.text() == 'false' +assert mojo.phase.text() == 'integration-test' +assert mojo.executePhase.text() == 'generate-sources' +assert mojo.executeLifecycle.text() == 'cobertura' + +assert mojo.configuration.basedir[0].text() == '' +assert mojo.configuration.basedir[0].'@implementation' == 'java.io.File' +assert mojo.configuration.basedir[0].'@default-value' == '${basedir}' + +assert mojo.configuration.touchFile[0].text() == '${first.touchFile}' +assert mojo.configuration.touchFile[0].'@implementation' == 'java.io.File' +assert mojo.configuration.touchFile[0].'@default-value' == '${project.build.directory}/touch.txt' + +assert mojo.requirements.requirement.size() == 1 + +assert mojo.requirements.requirement[0].role.text() == 'org.apache.maven.project.MavenProjectHelper' +assert mojo.requirements.requirement[0].'role-hint'.text() == 'test' +assert mojo.requirements.requirement[0].'field-name'.text() == 'projectHelper' + +assert mojo.parameters.parameter.size() == 3 + +assert mojo.parameters.parameter[0].name.text() == 'aliasedParam' +assert mojo.parameters.parameter[0].alias.text() == 'alias' +assert mojo.parameters.parameter[0].type.text() == 'java.lang.String' +assert mojo.parameters.parameter[0].deprecated.text() == 'As of 0.2' +assert mojo.parameters.parameter[0].required.text() == 'false' +assert mojo.parameters.parameter[0].editable.text() == 'true' +assert mojo.parameters.parameter[0].description.text() == '' + +assert mojo.parameters.parameter[1].name.text() == 'basedir' +assert mojo.parameters.parameter[1].alias.isEmpty() +assert mojo.parameters.parameter[1].type.text() == 'java.io.File' +assert mojo.parameters.parameter[1].deprecated.isEmpty() +assert mojo.parameters.parameter[1].required.text() == 'false' +assert mojo.parameters.parameter[1].editable.text() == 'false' +assert mojo.parameters.parameter[1].description.text() == 'Project directory.' + +assert mojo.parameters.parameter[2].name.text() == 'touchFile' +assert mojo.parameters.parameter[2].alias.isEmpty() +assert mojo.parameters.parameter[2].type.text() == 'java.io.File' +assert mojo.parameters.parameter[2].deprecated.isEmpty() +assert mojo.parameters.parameter[2].required.text() == 'true' +assert mojo.parameters.parameter[2].editable.text() == 'true' +assert mojo.parameters.parameter[2].description.text() == '' + +return true;