This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to annotated tag maven-help-plugin-2.0 in repository https://gitbox.apache.org/repos/asf/maven-help-plugin.git
commit 36097bfe8ddd1fcf481d85a6dc6f1ff269fe3ff7 Author: Brett Leslie Porter <br...@apache.org> AuthorDate: Thu Oct 13 05:30:22 2005 +0000 PR: MNG-122 exception clean up phase 1 git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk/maven-plugins/maven-projecthelp-plugin@320668 13f79535-47bb-0310-9956-ffa450edef68 --- .../maven/plugins/projecthelp/DescribeMojo.java | 210 ++++++++++++--------- 1 file changed, 121 insertions(+), 89 deletions(-) diff --git a/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java b/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java index 2e89f23..b3d1f84 100644 --- a/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java +++ b/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java @@ -1,8 +1,25 @@ package org.apache.maven.plugins.projecthelp; +/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed 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.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.ArtifactNotFoundException; import org.apache.maven.artifact.resolver.ArtifactResolutionException; +import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.AbstractMojo; @@ -29,7 +46,7 @@ import java.util.List; /** * Describes the attributes of a plugin and/or plugin mojo. - * + * * @goal describe * @requiresProject false * @aggregator @@ -40,11 +57,11 @@ public class DescribeMojo /** * The plugin/mojo to describe. This must be specified in one of three ways: - * + * * 1. plugin-prefix * 2. groupId:artifactId * 3. groupId:artifactId:version - * + * * @parameter expression="${plugin}" alias="prefix" */ private String plugin; @@ -53,25 +70,25 @@ public class DescribeMojo * The plugin groupId to describe. * <br/> * (Used with artifactId specification). - * + * * @parameter expression="${groupId}" */ private String groupId; /** - * The plugin artifactId to describe. + * The plugin artifactId to describe. * <br/> * (Used with groupId specification). - * + * * @parameter expression="${artifactId}" */ private String artifactId; /** - * The plugin version to describe. + * The plugin version to describe. * <br/> * (Used with groupId/artifactId specification). - * + * * @parameter expression="${version}" */ private String version; @@ -81,15 +98,15 @@ public class DescribeMojo * <br/> * If this parameter is specified, only the corresponding mojo will * <br/> - * be described, rather than the whole plugin. - * + * be described, rather than the whole plugin. + * * @parameter expression="${mojo}" */ private String mojo; /** * The plugin manager instance used to resolve plugin descriptors. - * + * * @component role="org.apache.maven.plugin.PluginManager" */ private PluginManager pluginManager; @@ -100,7 +117,7 @@ public class DescribeMojo * in the event there is no current MavenProject instance. Some MavenProject * <br/> * instance has to be present to use in the plugin manager APIs. - * + * * @component role="org.apache.maven.project.MavenProjectBuilder" */ private MavenProjectBuilder projectBuilder; @@ -113,17 +130,17 @@ public class DescribeMojo * parameter is empty at execution time, this mojo will instead use the * <br/> * super-project. - * + * * @parameter expression="${project}" * @readonly */ private MavenProject project; /** - * The current user system settings for use in Maven. This is used for + * The current user system settings for use in Maven. This is used for * <br/> * plugin manager API calls. - * + * * @parameter expression="${settings}" * @required * @readonly @@ -131,10 +148,10 @@ public class DescribeMojo private Settings settings; /** - * The current build session instance. This is used for + * The current build session instance. This is used for * <br/> * plugin manager API calls. - * + * * @parameter expression="${session}" * @required * @readonly @@ -145,7 +162,7 @@ public class DescribeMojo * The local repository ArtifactRepository instance. This is used * <br/> * for plugin manager API calls. - * + * * @parameter expression="${localRepository}" * @required * @readonly @@ -156,16 +173,16 @@ public class DescribeMojo * If specified, this parameter will cause the plugin/mojo descriptions * <br/> * to be written to the path specified, instead of writing to the console. - * + * * @parameter expression="${output}" */ private File output; - + /** * This flag specifies that full (verbose) information should be * <br/> * given. Use true/false. - * + * * @parameter expression="${full}" default-value="false" */ private boolean full; @@ -184,11 +201,11 @@ public class DescribeMojo throw new MojoExecutionException( "Error while retrieving the super-project.", e ); } } - + PluginInfo pi = new PluginInfo(); - + parsePluginLookupInfo( pi ); - + PluginDescriptor descriptor = lookupPluginDescriptor( pi ); StringBuffer descriptionBuffer = new StringBuffer(); @@ -205,7 +222,8 @@ public class DescribeMojo writeDescription( descriptionBuffer ); } - private void writeDescription( StringBuffer descriptionBuffer ) throws MojoExecutionException + private void writeDescription( StringBuffer descriptionBuffer ) + throws MojoExecutionException { if ( output != null ) { @@ -213,7 +231,7 @@ public class DescribeMojo try { output.getParentFile().mkdirs(); - + out = new FileWriter( output ); out.write( descriptionBuffer.toString() ); @@ -236,7 +254,7 @@ public class DescribeMojo } } } - + getLog().info( "Wrote descriptions to: " + output ); } else @@ -245,16 +263,17 @@ public class DescribeMojo } } - private PluginDescriptor lookupPluginDescriptor( PluginInfo pi ) throws MojoExecutionException, MojoFailureException + private PluginDescriptor lookupPluginDescriptor( PluginInfo pi ) + throws MojoExecutionException, MojoFailureException { PluginDescriptor descriptor = null; - + Plugin forLookup = null; - + if ( pi.prefix != null ) { descriptor = pluginManager.getPluginDescriptorForPrefix( pi.prefix ); - + if ( descriptor == null ) { try @@ -271,7 +290,7 @@ public class DescribeMojo else if ( pi.groupId != null && pi.artifactId != null ) { forLookup = new Plugin(); - + forLookup.setGroupId( pi.groupId ); forLookup.setArtifactId( pi.artifactId ); @@ -282,9 +301,10 @@ public class DescribeMojo } else { - throw new MojoFailureException("You must either specify \'groupId\' and \'artifactId\', or a valid \'plugin\' parameter." ); + throw new MojoFailureException( + "You must either specify \'groupId\' and \'artifactId\', or a valid \'plugin\' parameter." ); } - + if ( descriptor == null && forLookup != null ) { try @@ -293,30 +313,36 @@ public class DescribeMojo } catch ( ArtifactResolutionException e ) { - throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId - + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); + throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId + + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); } catch ( PluginManagerException e ) { - throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId - + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); + throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId + + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); } catch ( PluginVersionResolutionException e ) { - throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId - + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); + throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId + + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); } catch ( ArtifactNotFoundException e ) { - throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId - + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); + throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId + + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); + } + catch ( InvalidVersionSpecificationException e ) + { + throw new MojoExecutionException( "Error retrieving plugin descriptor for:\n\ngroupId: \'" + groupId + + "\'\nartifactId: \'" + artifactId + "\'\nversion: \'" + version + "\'\n\n", e ); } } - + return descriptor; } - private void parsePluginLookupInfo( PluginInfo pi ) throws MojoFailureException + private void parsePluginLookupInfo( PluginInfo pi ) + throws MojoFailureException { if ( plugin != null && plugin.length() > 0 ) { @@ -346,7 +372,8 @@ public class DescribeMojo } default: { - throw new MojoFailureException("plugin parameter must be a plugin prefix, or conform to: 'groupId:artifactId[:version]." ); + throw new MojoFailureException( + "plugin parameter must be a plugin prefix, or conform to: 'groupId:artifactId[:version]." ); } } } @@ -370,24 +397,24 @@ public class DescribeMojo { name = pd.getId(); } - + buffer.append( "Plugin: \'" ).append( name ).append( '\'' ); buffer.append( "\n-----------------------------------------------" ); buffer.append( "\nGroup Id: " ).append( pd.getGroupId() ); buffer.append( "\nArtifact Id: " ).append( pd.getArtifactId() ); buffer.append( "\nVersion: " ).append( pd.getVersion() ); buffer.append( "\nGoal Prefix: " ).append( pd.getGoalPrefix() ); - + buffer.append( "\nDescription:\n\n" ); prettyAppend( formatDescription( pd.getDescription() ), buffer ); buffer.append( "\n" ); - + if ( full ) { buffer.append( "\nMojos:\n" ); String line = "\n==============================================="; - + for ( Iterator it = pd.getMojos().iterator(); it.hasNext(); ) { MojoDescriptor md = (MojoDescriptor) it.next(); @@ -395,9 +422,9 @@ public class DescribeMojo buffer.append( line ); buffer.append( "\nGoal: \'" ).append( md.getGoal() ).append( '\'' ); buffer.append( line ); - + describeMojoGuts( md, buffer, true ); - + buffer.append( line ); buffer.append( "\n\n" ); } @@ -410,12 +437,12 @@ public class DescribeMojo { return null; } - + String result = description.replaceAll( " ?\\<br\\/?\\> ?", "\n" ); - - result = result.replaceAll(" ?\\<p\\> ?", "" ); - result = result.replaceAll(" ?\\</p\\> ?", "\n\n" ); - + + result = result.replaceAll( " ?\\<p\\> ?", "" ); + result = result.replaceAll( " ?\\</p\\> ?", "\n\n" ); + return result; } @@ -434,13 +461,13 @@ public class DescribeMojo private void describeMojo( MojoDescriptor md, StringBuffer buffer ) { String line = "\n==============================================="; - + buffer.append( "Mojo: \'" ).append( md.getFullGoalName() ).append( '\'' ); buffer.append( line ); buffer.append( "\nGoal: \'" ).append( md.getGoal() ).append( "\'" ); describeMojoGuts( md, buffer, full ); - + buffer.append( line ); buffer.append( "\n\n" ); } @@ -450,14 +477,14 @@ public class DescribeMojo buffer.append( "\nDescription:\n\n" ); prettyAppend( formatDescription( md.getDescription() ), buffer ); buffer.append( "\n" ); - + String deprecation = md.getDeprecated(); - + if ( deprecation != null ) { buffer.append( "\n\nNOTE: This mojo is deprecated.\n" ).append( deprecation ).append( "\n" ); } - + if ( fullDescription ) { buffer.append( "\nImplementation: " ).append( md.getImplementation() ); @@ -502,9 +529,9 @@ public class DescribeMojo private void describeMojoRequirements( MojoDescriptor md, StringBuffer buffer ) { buffer.append( "\n" ); - + List reqs = md.getRequirements(); - + if ( reqs == null || reqs.isEmpty() ) { buffer.append( "\nThis mojo doesn't have any component requirements." ); @@ -512,28 +539,28 @@ public class DescribeMojo else { buffer.append( "\nComponent Requirements:\n" ); - + String line = "\n-----------------------------------------------"; - + int idx = 0; - for ( Iterator it = reqs.iterator(); it.hasNext(); ) + for ( Iterator it = reqs.iterator(); it.hasNext(); idx++ ) { ComponentRequirement req = (ComponentRequirement) it.next(); - + buffer.append( line ); - - buffer.append( "\n[" ).append( idx++ ).append( "] " ); + + buffer.append( "\n[" ).append( idx ).append( "] " ); buffer.append( "Role: " ).append( req.getRole() ); - + String hint = req.getRoleHint(); if ( hint != null ) { buffer.append( "\nRole-Hint: " ).append( hint ); } - + buffer.append( "\n" ); } - + buffer.append( line ); } } @@ -541,9 +568,9 @@ public class DescribeMojo private void describeMojoParameters( MojoDescriptor md, StringBuffer buffer ) { buffer.append( "\n" ); - + List params = md.getParameters(); - + if ( params == null || params.isEmpty() ) { buffer.append( "\nThis mojo doesn't use any parameters." ); @@ -551,56 +578,56 @@ public class DescribeMojo else { buffer.append( "\nParameters:" ); - + String line = "\n-----------------------------------------------"; - + int idx = 0; for ( Iterator it = params.iterator(); it.hasNext(); ) { Parameter parameter = (Parameter) it.next(); - + buffer.append( line ); buffer.append( "\n\n[" ).append( idx++ ).append( "] " ); buffer.append( "Name: " ); prettyAppend( parameter.getName(), buffer ); - + String alias = parameter.getAlias(); if ( alias != null ) { buffer.append( " (Alias: " ).append( alias ).append( ")" ); } - + buffer.append( "\nType: " ); prettyAppend( parameter.getType(), buffer ); - + String expression = parameter.getExpression(); if ( expression != null ) { buffer.append( "\nExpression: " ).append( expression ); } - + String defaultVal = parameter.getDefaultValue(); if ( defaultVal != null ) { buffer.append( "\nDefault value: \'" ).append( defaultVal ); } - + buffer.append( "\nRequired: " ).append( parameter.isRequired() ); buffer.append( "\nDirectly editable: " ).append( parameter.isEditable() ); - + buffer.append( "\nDescription:\n\n" ); prettyAppend( formatDescription( parameter.getDescription() ), buffer ); - + String deprecation = parameter.getDeprecated(); - + if ( deprecation != null ) { buffer.append( "\n\nNOTE: This parameter is deprecated.\n" ).append( deprecation ).append( "\n" ); } - + buffer.append( "\n" ); } - + buffer.append( line ); } } @@ -704,16 +731,21 @@ public class DescribeMojo { this.version = version; } - + private static class PluginInfo { String prefix; + String groupId; + String artifactId; + String version; + String mojo; - + Plugin plugin; + PluginDescriptor pluginDescriptor; } -- To stop receiving notification emails like this one, please contact "commits@maven.apache.org" <commits@maven.apache.org>.