Author: olamy Date: Thu Aug 2 21:49:15 2012 New Revision: 1368716 URL: http://svn.apache.org/viewvc?rev=1368716&view=rev Log: [ARCHETYPE-418] use plugin annotations.
Removed: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CleanMojo.java Modified: maven/archetype/trunk/maven-archetype-plugin/pom.xml maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java maven/archetype/trunk/pom.xml Modified: maven/archetype/trunk/maven-archetype-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/pom.xml?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/pom.xml (original) +++ maven/archetype/trunk/maven-archetype-plugin/pom.xml Thu Aug 2 21:49:15 2012 @@ -79,6 +79,13 @@ under the License. <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> </dependency> + <!-- dependencies to annotations --> + <dependency> + <groupId>org.apache.maven.plugin-tools</groupId> + <artifactId>maven-plugin-annotations</artifactId> + <version>${mavenPluginPluginVersion}</version> + <scope>provided</scope> + </dependency> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-invoker</artifactId> @@ -115,12 +122,20 @@ under the License. <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> + <version>${mavenPluginPluginVersion}</version> <configuration> <goalPrefix>archetype</goalPrefix> + <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> </configuration> <executions> <execution> - <id>generated-helpmojo</id> + <id>mojo-descriptor</id> + <goals> + <goal>descriptor</goal> + </goals> + </execution> + <execution> + <id>help-goal</id> <goals> <goal>helpmojo</goal> </goals> Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java Thu Aug 2 21:49:15 2012 @@ -24,36 +24,34 @@ import org.apache.maven.archetype.reposi import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import java.io.File; /** * Crawl a Maven repository (filesystem, not HTTP) and creates a catalog file. * - * @author rafale - * @requiresProject false - * @goal crawl + * @author rafale */ +@Mojo( name = "crawl", requiresProject = false ) public class CrawlRepositoryMojo extends AbstractMojo { /** * The archetype's catalog to update. - * - * @parameter expression="${catalog}" */ + @Parameter( property = "catalog" ) private File catalogFile; - /** - * @component - */ + @Component private RepositoryCrawler crawler; /** * The repository to crawl. - * - * @parameter expression="${repository}" default-value="${settings.localRepository}" */ + @Parameter( property = "repository", defaultValue = "${settings.localRepository}" ) private File repository; public void execute() Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java Thu Aug 2 21:49:15 2012 @@ -29,6 +29,11 @@ import org.apache.maven.execution.MavenS import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.Execute; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.PropertyUtils; import org.codehaus.plexus.util.StringUtils; @@ -46,9 +51,9 @@ import java.util.Properties; * <p> * This goal reads your source and resource files, the values of its parameters, * and properties you specify in a <code>.property</code> file, and uses them to - * create a Maven archetype project using the maven-archetype packaging. + * create a Maven archetype project using the maven-archetype packaging. * If you build the resulting project, it will create the archetype. You can then - * use this archetype to create new projects that resemble the original. + * use this archetype to create new projects that resemble the original. * </p> * <p> * The maven-archetype-plugin uses Velocity to expand template files, and this documentation @@ -63,14 +68,14 @@ import java.util.Properties; * <dl> * <dt>GAV</dt><dd>The GAV values for the current project are replaced by properties: groupId, artifactId, and version. * The user chooses new values for these when generating a project from the archetype.</dd> - * <dt>package</dt><dd>All the files under one specified Java (or cognate) package are relocated to a project + * <dt>package</dt><dd>All the files under one specified Java (or cognate) package are relocated to a project * that the user chooses when generating a project. References to the class name are replaced by a property reference. For - * example, if the current project's sources are in the package <code>org.apache.saltedpeanuts</code>, then + * example, if the current project's sources are in the package <code>org.apache.saltedpeanuts</code>, then * any example of the string <code>org.apache.saltedpeanuts</code> is replaced with the Velocity property * reference <code>${packageName}</code>. When the user generates a project, this is in turn replaced by - * his or her choice of a package. + * his or her choice of a package. * </dd> - * <dt>custom properties</dt><dd>You may identify additional strings that should be replaced by parameters. + * <dt>custom properties</dt><dd>You may identify additional strings that should be replaced by parameters. * To add custom properties, you must use the <code>propertyFile</code> parameter to specify a property file. * See the documentation for <code>propertyFile</code> for the details. * </dl> @@ -83,90 +88,76 @@ import java.util.Properties; * </p> * * @author rafale - * @requiresProject true - * @goal create-from-project - * @execute phase="generate-sources" - * @aggregator */ +@Mojo( name = "create-from-project", requiresProject = true, aggregator = true ) +@Execute( phase = LifecyclePhase.GENERATE_SOURCES ) public class CreateArchetypeFromProjectMojo extends AbstractMojo { - /** @component */ + + @Component private ArchetypeCreationConfigurator configurator; /** * Enable the interactive mode to define the archetype from the project. - * - * @parameter expression="${interactive}" default-value="false" */ + @Parameter( property = "interactive", defaultValue = "false" ) private boolean interactive; - /** @component */ + @Component private ArchetypeManager manager; /** * File extensions which are checked for project's text files (vs binary files). - * - * @parameter expression="${archetype.filteredExtentions}" */ + @Parameter( property = "archetype.filteredExtentions" ) private String archetypeFilteredExtentions; /** * Directory names which are checked for project's sources main package. - * - * @parameter expression="${archetype.languages}" */ + @Parameter( property = "archetype.languages" ) private String archetypeLanguages; /** * The location of the registry file. - * - * @parameter expression="${user.home}/.m2/archetype.xml" */ + @Parameter( defaultValue = "${user.home}/.m2/archetype.xml" ) private File archetypeRegistryFile; /** * Velocity templates encoding. - * - * @parameter default-value="UTF-8" expression="${archetype.encoding}" */ + @Parameter( property = "archetype.encoding", defaultValue = "UTF-8" ) private String defaultEncoding; /** * Create a partial archetype. - * - * @parameter expression="${archetype.partialArchetype}" */ + @Parameter( property = "archetype.partialArchetype" ) private boolean partialArchetype = false; /** * Create pom's velocity templates with CDATA preservation. This uses the <code>String.replaceAll()</code> * method and risks to have some overly replacement capabilities (beware of '1.0' value). - * - * @parameter expression="${archetype.preserveCData}" */ + @Parameter( property = "archetype.preserveCData" ) private boolean preserveCData = false; - /** @parameter expression="${localRepository}" - * @readonly - **/ + @Parameter( defaultValue = "${localRepository}", readonly = true ) private ArtifactRepository localRepository; /** * POMs in archetype are created with their initial parent. * This property is ignored when preserveCData is true. - * - * @parameter expression="${archetype.keepParent}" */ + @Parameter( property = "archetype.keepParent" ) private boolean keepParent = true; /** * The Maven project to create an archetype from. - * - * @parameter expression="${project}" - * @required - * @readonly */ + @Component private MavenProject project; /** @@ -175,68 +166,61 @@ public class CreateArchetypeFromProjectM * properties listed below or custom properties for this archetype. The standard properties * are below. Several of them overlap parameters of this goal; it's better to just * set the parameter. - * - * <dl><dt>package</dt><dd>See the packageName parameter.</dd> - * <dt>archetype.languages</dt><dd>See the archetypeLanguages parameter.</dd> - * <dt>groupId</dt><dd>The default groupId of the generated project.</dd> - * <dt>artifactId</dt><dd>The default artifactId of the generated project.</dd> - * <dt>version</dt><dd>The default version of the generated project.</dd> - * <dt>archetype.filteredExtensions</dt><dd>See the filteredExensions parameter.</dd> - * </dl> - * <strong>Custom Properties</strong> - * <p> - * Custom properties allow you to replace some constant values in the project's files - * with Velocity macro references. When a user generates a project from your archetype - * he or she gets the opportunity to replace the value from the source project. - * </p> - * <p> - * Custom property names <strong>may not contain the '.' character</strong>. - * </p> - * <p> - * For example, if you include a line like the following in your property file: - * <pre> + * <p/> + * <dl><dt>package</dt><dd>See the packageName parameter.</dd> + * <dt>archetype.languages</dt><dd>See the archetypeLanguages parameter.</dd> + * <dt>groupId</dt><dd>The default groupId of the generated project.</dd> + * <dt>artifactId</dt><dd>The default artifactId of the generated project.</dd> + * <dt>version</dt><dd>The default version of the generated project.</dd> + * <dt>archetype.filteredExtensions</dt><dd>See the filteredExensions parameter.</dd> + * </dl> + * <strong>Custom Properties</strong> + * <p> + * Custom properties allow you to replace some constant values in the project's files + * with Velocity macro references. When a user generates a project from your archetype + * he or she gets the opportunity to replace the value from the source project. + * </p> + * <p> + * Custom property names <strong>may not contain the '.' character</strong>. + * </p> + * <p> + * For example, if you include a line like the following in your property file: + * <pre> * cxf-version=2.5.1-SNAPSHOT * </pre> - * the plugin will search your files for the string <pre>2.5.1-SNAPSHOT</pre> and - * replace them with references to a velocity macro <pre>cxf-version</pre>. It will - * then list <pre>cxf-version</pre> as a <pre>requiredProperty</pre> in the - * archetype-metadata.xml, with <pre>2.5.1-SNAPSHOT</pre> as the default value. - * </p> - * - * - * @parameter expression="${archetype.properties}" + * the plugin will search your files for the string <pre>2.5.1-SNAPSHOT</pre> and + * replace them with references to a velocity macro <pre>cxf-version</pre>. It will + * then list <pre>cxf-version</pre> as a <pre>requiredProperty</pre> in the + * archetype-metadata.xml, with <pre>2.5.1-SNAPSHOT</pre> as the default value. + * </p> */ + @Parameter( property = "archetype.properties" ) private File propertyFile; /** * The property telling which phase to call on the generated archetype. * Interesting values are: <code>package</code>, <code>integration-test</code>, <code>install</code> and <code>deploy</code>. - * - * @parameter expression="${archetype.postPhase}" default-value="package" */ + @Parameter( property = "archetype.postPhase", defaultValue = "package" ) private String archetypePostPhase; /** * The directory where the archetype should be created. - * - * @parameter expression="${project.build.directory}/generated-sources/archetype" */ + @Parameter( defaultValue = "${project.build.directory}/generated-sources/archetype" ) private File outputDirectory; - /** @parameter expression="${testMode}" */ + @Parameter( property = "testMode" ) private boolean testMode; - /** - * The package name for Java source files to be incorporated in the archetype and + /** + * The package name for Java source files to be incorporated in the archetype and * and relocated to the package that the user selects. - * - * @parameter expression="${packageName}" */ + */ + @Parameter( property = "packageName" ) private String packageName; //Find a better way to resolve the package!!! enforce usage of the configurator - /** - * @parameter expression="${session}" - * @readonly - */ + @Component private MavenSession session; public void execute() @@ -258,25 +242,16 @@ public class CreateArchetypeFromProjectM List<String> filtereds = getFilteredExtensions( archetypeFilteredExtentions, propertyFile ); - ArchetypeCreationRequest request = new ArchetypeCreationRequest() - .setDefaultEncoding( defaultEncoding ) - .setProject( project ) - /* Used when in interactive mode */ - .setProperties( properties ) - .setLanguages( languages ) - /* Should be refactored to use some ant patterns */ - .setFiltereds( filtereds ) - /* This should be correctly handled */ - .setPreserveCData( preserveCData ) - .setKeepParent( keepParent ) - .setPartialArchetype( partialArchetype ) - /* This should be used before there and use only languages and filtereds */ - .setArchetypeRegistryFile( archetypeRegistryFile ) - .setLocalRepository( localRepository ) - /* this should be resolved and asked for user to verify */ - .setPackageName( packageName ) - .setPostPhase( archetypePostPhase ) - .setOutputDirectory( outputDirectory ); + ArchetypeCreationRequest request = + new ArchetypeCreationRequest().setDefaultEncoding( defaultEncoding ).setProject( project ) + /* Used when in interactive mode */.setProperties( properties ).setLanguages( languages ) + /* Should be refactored to use some ant patterns */.setFiltereds( filtereds ) + /* This should be correctly handled */.setPreserveCData( preserveCData ).setKeepParent( + keepParent ).setPartialArchetype( partialArchetype ) + /* This should be used before there and use only languages and filtereds */.setArchetypeRegistryFile( + archetypeRegistryFile ).setLocalRepository( localRepository ) + /* this should be resolved and asked for user to verify */.setPackageName( packageName ).setPostPhase( + archetypePostPhase ).setOutputDirectory( outputDirectory ); ArchetypeCreationResult result = manager.createArchetypeFromProject( request ); Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java Thu Aug 2 21:49:15 2012 @@ -20,9 +20,9 @@ package org.apache.maven.archetype.mojos */ import org.apache.commons.lang.StringUtils; -import org.apache.maven.archetype.ArchetypeManager; import org.apache.maven.archetype.ArchetypeGenerationRequest; import org.apache.maven.archetype.ArchetypeGenerationResult; +import org.apache.maven.archetype.ArchetypeManager; import org.apache.maven.archetype.ui.generation.ArchetypeGenerationConfigurator; import org.apache.maven.archetype.ui.generation.ArchetypeSelector; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -31,6 +31,11 @@ import org.apache.maven.plugin.AbstractM import org.apache.maven.plugin.ContextEnabled; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.Execute; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.shared.invoker.DefaultInvocationRequest; import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.Invoker; @@ -47,52 +52,47 @@ import java.util.Properties; * If the project is updated with a partial archetype, it is done in the current directory. * * @author rafale - * @requiresProject false - * @goal generate - * @execute phase="generate-sources" */ +@Mojo( name = "generate", requiresProject = false ) +@Execute( phase = LifecyclePhase.GENERATE_SOURCES ) public class CreateProjectFromArchetypeMojo extends AbstractMojo implements ContextEnabled { - /** @component */ + @Component private ArchetypeManager manager; - /** @component */ + @Component private ArchetypeSelector selector; - /** @component */ + @Component private ArchetypeGenerationConfigurator configurator; - /** @component */ + @Component private Invoker invoker; /** * The archetype's artifactId. - * - * @parameter expression="${archetypeArtifactId}" */ + @Parameter( property = "archetypeArtifactId" ) private String archetypeArtifactId; /** * The archetype's groupId. - * - * @parameter expression="${archetypeGroupId}" */ + @Parameter( property = "archetypeGroupId" ) private String archetypeGroupId; /** * The archetype's version. - * - * @parameter expression="${archetypeVersion}" */ + @Parameter( property = "archetypeVersion" ) private String archetypeVersion; /** * The archetype's repository. - * - * @parameter expression="${archetypeRepository}" */ + @Parameter( property = "archetypeRepository" ) private String archetypeRepository; /** @@ -106,66 +106,54 @@ public class CreateProjectFromArchetypeM * <li>'<code>remote</code>' which is the shortcut for Maven Central repository, ie '<code>http://repo.maven.apache.org/maven2</code>'</li> * <li>'<code>internal</code>' which is an internal catalog</li> * </ul> - * + * <p/> * Since 2.0-alpha-5, default value is no longer <code>internal,local</code> but <code>remote,local</code>. * If Maven Central repository catalog file is empty, <code>internal</code> catalog is used instead. - * - * @parameter expression="${archetypeCatalog}" default-value="remote,local" */ + @Parameter( property = "archetypeCatalog", defaultValue = "remote,local" ) private String archetypeCatalog; /** * Local Maven repository. - * - * @parameter expression="${localRepository}" - * @required - * @readonly */ + @Parameter( defaultValue = "${localRepository}", readonly = true, required = true ) private ArtifactRepository localRepository; /** * List of remote repositories used by the resolver. - * - * @parameter expression="${project.remoteArtifactRepositories}" - * @readonly - * @required */ + @Parameter( defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true ) private List<ArtifactRepository> remoteArtifactRepositories; /** * User settings use to check the interactiveMode. - * - * @parameter expression="${interactiveMode}" default-value="${settings.interactiveMode}" - * @required */ + @Parameter( property = "interactiveMode", defaultValue = "${settings.interactiveMode}", required = true ) private Boolean interactiveMode; - /** @parameter expression="${basedir}" */ + @Parameter( defaultValue = "${basedir}" ) private File basedir; - /** - * @parameter expression="${session}" - * @readonly - */ + @Parameter( defaultValue = "${session}", readonly = true ) private MavenSession session; /** * Additional goals to immediately run on the project created from the archetype. - * - * @parameter expression="${goals}" */ + @Parameter( property = "goals" ) private String goals; /** - * Applying some filter on displayed archetypes list: format is <code>artifactId</code> or <code>groupId:artifactId</code>. - * <ul> - * <li><code>org.apache:</code> -> displays all archetypes which contain org.apache in groupId</li> - * <li><code>:jee</code> or <code>jee</code> -> displays all archetypes which contain jee in artifactId</li> - * <li><code>org.apache:jee</code> -> displays all archetypes which contain org.apache in groupId AND jee in artifactId</li> - * </ul> - * @parameter expression="${filter}" - * @since 2.1 + * Applying some filter on displayed archetypes list: format is <code>artifactId</code> or <code>groupId:artifactId</code>. + * <ul> + * <li><code>org.apache:</code> -> displays all archetypes which contain org.apache in groupId</li> + * <li><code>:jee</code> or <code>jee</code> -> displays all archetypes which contain jee in artifactId</li> + * <li><code>org.apache:jee</code> -> displays all archetypes which contain org.apache in groupId AND jee in artifactId</li> + * </ul> + * + * @since 2.1 */ + @Parameter( property = "filter" ) private String filter; public void execute() @@ -173,15 +161,11 @@ public class CreateProjectFromArchetypeM { Properties executionProperties = session.getExecutionProperties(); - ArchetypeGenerationRequest request = new ArchetypeGenerationRequest() - .setArchetypeGroupId( archetypeGroupId ) - .setArchetypeArtifactId( archetypeArtifactId ) - .setArchetypeVersion( archetypeVersion ) - .setOutputDirectory( basedir.getAbsolutePath() ) - .setLocalRepository( localRepository ) - .setArchetypeRepository( archetypeRepository ) - .setRemoteArtifactRepositories( remoteArtifactRepositories ) - .setFilter( filter ); + ArchetypeGenerationRequest request = + new ArchetypeGenerationRequest().setArchetypeGroupId( archetypeGroupId ).setArchetypeArtifactId( + archetypeArtifactId ).setArchetypeVersion( archetypeVersion ).setOutputDirectory( + basedir.getAbsolutePath() ).setLocalRepository( localRepository ).setArchetypeRepository( + archetypeRepository ).setRemoteArtifactRepositories( remoteArtifactRepositories ).setFilter( filter ); try { @@ -245,9 +229,8 @@ public class CreateProjectFromArchetypeM if ( projectBasedir.exists() ) { - InvocationRequest request = new DefaultInvocationRequest() - .setBaseDirectory( projectBasedir ) - .setGoals( Arrays.asList( StringUtils.split( goals, "," ) ) ); + InvocationRequest request = new DefaultInvocationRequest().setBaseDirectory( projectBasedir ).setGoals( + Arrays.asList( StringUtils.split( goals, "," ) ) ); try { Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java Thu Aug 2 21:49:15 2012 @@ -28,6 +28,9 @@ import org.apache.maven.archetype.genera import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.settings.Settings; import org.apache.maven.shared.invoker.DefaultInvocationRequest; @@ -78,47 +81,38 @@ import java.util.Set; * as a goal from CLI. * * @author rafale - * @requiresProject true - * @goal integration-test */ +@Mojo( name = "integration-test", requiresProject = true ) public class IntegrationTestMojo extends AbstractMojo { - /** - * @component - */ + + @Component private ArchetypeGenerator archetypeGenerator; - /** - * @component - */ + @Component private Invoker invoker; /** * The archetype project to execute the integration tests on. - * - * @parameter expression="${project}" - * @required - * @readonly */ + @Component private MavenProject project; /** * Skip the integration test. - * - * @parameter expression="${archetype.test.skip}" - * @readonly */ + @Parameter( property = "archetype.test.skip" ) private boolean skip = false; /** * Directory of test projects * - * @parameter expression="${archetype.test.projectsDirectory}" default-value="${project.build.testOutputDirectory}/projects" - * @required * @since 2.2 */ + @Parameter( property = "archetype.test.projectsDirectory", + defaultValue = "${project.build.testOutputDirectory}/projects", required = true ) private File testProjectsDirectory; /** @@ -128,77 +122,74 @@ public class IntegrationTestMojo * If this script exists for a particular project but returns any non-null value different from <code>true</code> or * throws an exception, the corresponding build is flagged as a failure. * - * @parameter expression="${archetype.test.verifyScript}" default-value="verify" * @since 2.2 */ + @Parameter( property = "archetype.test.verifyScript", defaultValue = "verify" ) private String postBuildHookScript; /** * Suppress logging to the <code>build.log</code> file. * - * @parameter expression="${archetype.test.noLog}" default-value="false" * @since 2.2 */ + @Parameter( property = "archetype.test.noLog", defaultValue = "false" ) private boolean noLog; /** * Flag used to determine whether the build logs should be output to the normal mojo log. * - * @parameter expression="${archetype.test.streamLogs}" default-value="true" * @since 2.2 */ + @Parameter( property = "archetype.test.streamLogs", defaultValue = "true" ) private boolean streamLogs; /** * The file encoding for the post-build script. * - * @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}" * @since 2.2 */ + @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" ) private String encoding; /** * The local repository to run maven instance. * - * @parameter expression="${archetype.test.localRepositoryPath}" default-value="${settings.localRepository}" - * @required - * @readonly * @since 2.2 */ + @Parameter( property = "archetype.test.localRepositoryPath", defaultValue = "${settings.localRepository}", + required = true ) private File localRepositoryPath; /** * flag to enable show mvn version used for running its (cli option : -V,--show-version ) * - * @parameter expression="${archetype.test.showVersion}" default-value="false" * @since 2.2 */ + @Parameter( property = "archetype.test.showVersion", defaultValue = "false" ) private boolean showVersion; /** * Whether to show debug statements in the build output. * - * @parameter expression="${archetype.test.debug}" default-value="false" * @since 2.2 */ + @Parameter( property = "archetype.test.debug", defaultValue = "false" ) private boolean debug; /** * A list of additional properties which will be used to filter tokens in settings.xml * - * @parameter * @since 2.2 */ + @Parameter private Map<String, String> filterProperties; /** * The current user system settings for use in Maven. * - * @parameter expression="${settings}" - * @required - * @readonly * @since 2.2 */ + @Parameter( defaultValue = "${settings}", required = true, readonly = true ) private Settings settings; /** @@ -206,9 +197,9 @@ public class IntegrationTestMojo * <code><localRepository></code> element of this settings file is always ignored, i.e. the path given by the * parameter {@link #localRepositoryPath} is dominant. * - * @parameter expression="${archetype.test.settingsFile}" * @since 2.2 */ + @Parameter( property = "archetype.test.settingsFile" ) private File settingsFile; Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java Thu Aug 2 21:49:15 2012 @@ -28,6 +28,10 @@ import org.apache.maven.artifact.Depende import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import java.io.File; @@ -36,59 +40,46 @@ import java.io.IOException; /** * Build a JAR from the current Archetype project. * - * @author rafale - * @goal jar - * @phase package - * @requiresProject + * @author rafale */ +@Mojo( name = "jar", defaultPhase = LifecyclePhase.PACKAGE, requiresProject = true ) public class JarMojo extends AbstractMojo { /** * Directory containing the classes. - * - * @parameter expression="${project.build.outputDirectory}" - * @required */ + @Parameter( defaultValue = "${project.build.outputDirectory}", required = true ) private File archetypeDirectory; /** * Name of the generated JAR. - * - * @parameter alias="jarName" expression="${project.build.finalName}" - * @required */ + @Parameter( defaultValue = "${project.build.finalName}", alias = "jarName", required = true ) private String finalName; /** * Directory containing the generated JAR. - * - * @parameter expression="${project.build.directory}" - * @required */ + @Parameter( defaultValue = "${project.build.directory}", required = true ) private File outputDirectory; /** * The Maven project. - * - * @parameter expression="${project}" - * @required - * @readonly */ + @Component private MavenProject project; /** * The archetype manager component. - * - * @component */ + @Component private ArchetypeManager manager; /** * The archetype artifact manager component. - * - * @component */ + @Component private ArchetypeArtifactManager archetypeArtifactManager; public void execute() Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java (original) +++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java Thu Aug 2 21:49:15 2012 @@ -23,30 +23,29 @@ import org.apache.maven.archetype.Archet import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.StringUtils; /** * Updates the local catalog * - * @phase install - * @goal update-local-catalog - * * @author rafale */ +@Mojo( name = "update-local-catalog", defaultPhase = LifecyclePhase.INSTALL ) public class UpdateLocalCatalogMojo extends AbstractMojo { - /** @component */ + + @Component private ArchetypeManager manager; /** * The archetype project to add/update to the local catalog. - * - * @parameter expression="${project}" - * @required - * @readonly */ + @Component private MavenProject project; public void execute() Modified: maven/archetype/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/pom.xml?rev=1368716&r1=1368715&r2=1368716&view=diff ============================================================================== --- maven/archetype/trunk/pom.xml (original) +++ maven/archetype/trunk/pom.xml Thu Aug 2 21:49:15 2012 @@ -146,7 +146,7 @@ under the License. <properties> <mavenVersion>2.0.8</mavenVersion><!-- with 2.0.9 proxy test fails--> <netbeans.hint.useExternalMaven>true</netbeans.hint.useExternalMaven> - <mavenPluginPluginVersion>2.9</mavenPluginPluginVersion> + <mavenPluginPluginVersion>3.1</mavenPluginPluginVersion> <wagonVersion>1.0</wagonVersion> </properties>