Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 65252 invoked from network); 5 Jul 2006 12:42:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 5 Jul 2006 12:42:11 -0000 Received: (qmail 94905 invoked by uid 500); 5 Jul 2006 12:40:51 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 92415 invoked by uid 500); 5 Jul 2006 12:40:39 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 84333 invoked by uid 99); 5 Jul 2006 12:39:54 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jul 2006 05:39:54 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jul 2006 05:39:43 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 090EF1A98DF; Tue, 4 Jul 2006 21:16:15 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r419161 - /maven/components/branches/maven-2.0.x/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java Date: Wed, 05 Jul 2006 04:16:14 -0000 To: commits@maven.apache.org From: brett@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060705041615.090EF1A98DF@eris.apache.org> X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: brett Date: Tue Jul 4 21:16:13 2006 New Revision: 419161 URL: http://svn.apache.org/viewvc?rev=419161&view=rev Log: [MPLUGIN-7] merge r418201, 417945 from trunk Modified: maven/components/branches/maven-2.0.x/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java Modified: maven/components/branches/maven-2.0.x/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java?rev=419161&r1=419160&r2=419161&view=diff ============================================================================== --- maven/components/branches/maven-2.0.x/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java (original) +++ maven/components/branches/maven-2.0.x/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java Tue Jul 4 21:16:13 2006 @@ -28,6 +28,7 @@ import java.io.IOException; import java.util.Iterator; import java.util.List; +import java.util.ArrayList; /** * @todo add example usage tag that can be shown in the doco @@ -113,11 +114,7 @@ w.endElement(); // p - w.startElement( "p" ); - - w.writeText( "Parameters for the goal: " ); - - w.endElement(); // p + writeGoalAttributes( mojoDescriptor, w ); writeGoalParameterTable( mojoDescriptor, w ); @@ -128,188 +125,257 @@ w.endElement(); // document } - private void writeGoalParameterTable( MojoDescriptor mojoDescriptor, XMLWriter w ) + private void writeGoalAttributes( MojoDescriptor mojoDescriptor, XMLWriter w ) { - w.startElement( "table" ); - - w.startElement( "tr" ); - - w.startElement( "th" ); - - w.writeText( "Parameter" ); - - w.endElement(); // th + w.startElement( "p" ); + w.writeMarkup( "Mojo Attributes:" ); + w.startElement( "ul" ); - w.startElement( "th" ); + String value = mojoDescriptor.getDeprecated(); + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • This plugin goal has been deprecated: " + value + "
  • " ); + } - w.writeText( "Type" ); + if ( mojoDescriptor.isProjectRequired() ) + { + w.writeMarkup( "
  • Requires a Maven 2.0 project to execute.
  • " ); + } - w.endElement(); // th + if ( mojoDescriptor.isAggregator() ) + { + w.writeMarkup( "
  • Executes as an aggregator plugin.
  • " ); + } - w.startElement( "th" ); + if ( mojoDescriptor.isDirectInvocationOnly() ) + { + w.writeMarkup( "
  • Executes by direct invocation only.
  • " ); + } - w.writeText( "Expression" ); + value = mojoDescriptor.isDependencyResolutionRequired(); + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • Requires dependency resolution of artifacts in scope: " + value + + "
  • " ); + } - w.endElement(); // th + value = mojoDescriptor.getPhase(); + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • Automatically executes within the lifecycle phase: " + value + "
  • " ); + } - w.startElement( "th" ); + value = mojoDescriptor.getExecutePhase(); + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • Invokes the execution of the lifecycle phase " + value + + " prior to executing itself.
  • " ); + } - w.writeText( "Default Value" ); + value = mojoDescriptor.getExecuteGoal(); + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • Invokes the execution of this plugin's goal " + value + + " prior to executing itself.
  • " ); + } - w.endElement(); // th + value = mojoDescriptor.getExecuteLifecycle(); + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • Executes in its own lifecycle: " + value + "
  • " ); + } - w.startElement( "th" ); + if ( mojoDescriptor.isOnlineRequired() ) + { + w.writeMarkup( "
  • Requires that mvn runs in online mode.
  • " ); + } - w.writeText( "Description" ); + if ( !mojoDescriptor.isInheritedByDefault() ) + { + w.writeMarkup( "
  • Is NOT inherited by default in multi-project builds.
  • " ); + } - w.endElement(); // th + w.endElement();//ul + w.endElement();//p + } - w.endElement(); // tr + private void writeGoalParameterTable( MojoDescriptor mojoDescriptor, XMLWriter w ) + { + List parameterList = mojoDescriptor.getParameters(); - List parameters = mojoDescriptor.getParameters(); + //remove components and read-only parameters + List list = filterParameters( parameterList ); - if ( parameters != null ) + if ( list != null ) { - for ( int i = 0; i < parameters.size(); i++ ) + if ( list.size() > 0 ) { - Parameter parameter = (Parameter) parameters.get( i ); - - w.startElement( "tr" ); - - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- + writeParameterSummary( list, w ); - w.startElement( "td" ); - - String paramName = parameter.getAlias(); - - if ( StringUtils.isEmpty( paramName ) ) - { - paramName = parameter.getName(); - } - - w.startElement( "code" ); + writeParameterDetails( list, w ); + } + else + { + w.startElement( "" ); + } + } + } - w.writeText( paramName ); + private List filterParameters( List parameterList ) + { + List filtered = new ArrayList(); - w.endElement(); // code + for ( Iterator parameters = parameterList.iterator(); parameters.hasNext(); ) + { + Parameter parameter = (Parameter) parameters.next(); - if ( !parameter.isRequired() ) - { - w.writeMarkup( " (Optional)" ); - } + if ( parameter.isEditable() ) + { + String expression = parameter.getExpression(); - if ( parameter.getExpression() != null && parameter.getExpression().startsWith( "${component." ) ) + if ( expression != null && !expression.startsWith( "${component." ) ) { - w.writeMarkup( " (Discovered)" ); - } - else if ( parameter.getRequirement() != null ) - { - w.writeMarkup( " (Discovered)" ); + filtered.add( parameter ); } + } + } - w.endElement(); // td + return filtered; + } - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- + private void writeParameterDetails( List parameterList, XMLWriter w ) + { + w.startElement( "subsection" ); + w.addAttribute( "name", "Parameter Details" ); - w.startElement( "td" ); + for( Iterator parameters = parameterList.iterator(); parameters.hasNext(); ) + { + Parameter parameter = (Parameter) parameters.next(); - w.startElement( "code" ); + w.writeMarkup( "

    " + parameter.getName() + "

    " ); - w.addAttribute( "title", parameter.getType() ); + String description = parameter.getDescription(); + if ( StringUtils.isEmpty( description ) ) + { + description = "No Description."; + } + w.writeMarkup( "

    " + description + "

    " ); - int index = parameter.getType().lastIndexOf( "." ); - if ( index >= 0 ) - { - w.writeText( parameter.getType().substring( index + 1 ) ); - } - else - { - w.writeText( parameter.getType() ); - } + w.startElement( "ul" ); - w.endElement(); // code + writeDetail( "Type", parameter.getType(), w ); - w.endElement(); // td + // TODO: requires that this field is in the plugin descriptor + // writeDetail( "Since", parameter.getSince(), w ); - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- + if ( parameter.isRequired() ) + { + writeDetail( "Required", "Yes", w ); + } + else + { + writeDetail( "Required", "No", w ); + } - w.startElement( "td" ); + writeDetail( "Expression", parameter.getExpression(), w ); - w.startElement( "code" ); + writeDetail( "Default", parameter.getDefaultValue(), w ); - if ( StringUtils.isNotEmpty( parameter.getExpression() ) && - !parameter.getExpression().startsWith( "${component." ) ) - { - w.writeText( parameter.getExpression() ); - } - else - { - w.writeText( "-" ); - } + w.endElement();//ul - w.endElement(); // code + w.writeMarkup( "
    " ); + } - w.endElement(); // td + w.endElement(); + } - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- + private void writeDetail( String param, String value, XMLWriter w ) + { + if ( StringUtils.isNotEmpty( value ) ) + { + w.writeMarkup( "
  • " + param + ": " + value + "
  • " ); + } + } - w.startElement( "td" ); + private void writeParameterSummary( List parameterList, XMLWriter w ) + { + List requiredParams = getParametersByRequired( true, parameterList ); + if ( requiredParams.size() > 0 ) + { + writeParameterList( "Required Parameters", requiredParams, w ); + } - w.startElement( "code" ); + List optionalParams = getParametersByRequired( false, parameterList ); + if ( optionalParams.size() > 0 ) + { + writeParameterList( "Optional Parameters", optionalParams, w ); + } + } - if ( StringUtils.isNotEmpty( parameter.getDefaultValue() ) ) - { - w.writeText( parameter.getDefaultValue() ); - } - else - { - w.writeText( "-" ); - } + private void writeParameterList( String title, List parameterList, XMLWriter w ) + { + w.startElement( "subsection" ); + w.addAttribute( "name", title ); - w.endElement(); // code + w.startElement( "table" ); - w.endElement(); // td + w.startElement( "tr" ); + w.startElement( "th" ); + w.writeText( "Name" ); + w.endElement();//th + w.startElement( "th" ); + w.writeText( "Type" ); + w.endElement();//th + w.startElement( "th" ); + w.writeText( "Description" ); + w.endElement();//th + w.endElement();//tr - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- + for( Iterator parameters = parameterList.iterator(); parameters.hasNext(); ) + { + Parameter parameter = (Parameter) parameters.next(); - w.startElement( "td" ); + w.startElement( "tr" ); + w.startElement( "td" ); + w.writeMarkup( "" + parameter.getName() + ""); + w.endElement();//td + w.startElement( "td" ); + int index = parameter.getType().lastIndexOf( "." ); + w.writeMarkup( "" + parameter.getType().substring( index + 1 ) + "" ); + w.endElement();//td + w.startElement( "td" ); + String description = parameter.getDescription(); + if ( StringUtils.isEmpty( description ) ) + { + description = "No description."; + } + if ( StringUtils.isNotEmpty( parameter.getDefaultValue() ) ) + { + description = description + " Default value is " + parameter.getDefaultValue() + "."; + } + w.writeMarkup( description ); + w.endElement();//td + w.endElement(); //tr + } - if ( StringUtils.isNotEmpty( parameter.getDescription() ) ) - { - w.writeMarkup( parameter.getDescription() ); - } - else - { - w.writeText( "No description." ); - } + w.endElement();//table + w.endElement();//section + } - String deprecationWarning = parameter.getDeprecated(); - if ( deprecationWarning != null ) - { - w.writeMarkup( "
    Deprecated: " ); - w.writeMarkup( deprecationWarning ); - if ( deprecationWarning.length() == 0 ) - { - w.writeText( "No reason given." ); - } - } + private List getParametersByRequired( boolean required, List parameterList ) + { + List list = new ArrayList(); - w.endElement(); // td + for ( Iterator parameters = parameterList.iterator(); parameters.hasNext(); ) + { + Parameter parameter = (Parameter) parameters.next(); - w.endElement(); // tr + if ( parameter.isRequired() == required ) + { + list.add( parameter ); } } - w.endElement(); // table + return list; } -} \ No newline at end of file +}