Author: brett
Date: Sun Jun 19 20:39:42 2005
New Revision: 191385
URL: http://svn.apache.org/viewcvs?rev=191385&view=rev
Log:
PR: MNG-471
add @execute phase|lifecycle doclet tag for java and beanshell
not sure how this would be configured for marmalade - will leave this for a
once over of marmalade wrt the mojo api later
Modified:
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
Modified:
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java?rev=191385&r1=191384&r2=191385&view=diff
==============================================================================
---
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
(original)
+++
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
Sun Jun 19 20:39:42 2005
@@ -36,7 +36,6 @@
extends ComponentDescriptor
implements Cloneable
{
- // TODO: share with type handler
public static String MAVEN_PLUGIN = "maven-plugin";
public static final String SINGLE_PASS_EXEC_STRATEGY = "once-per-session";
@@ -59,6 +58,8 @@
private String executePhase;
+ private String executeLifecycle;
+
private String deprecated;
// ----------------------------------------------------------------------
@@ -374,5 +375,15 @@
}
return result;
+ }
+
+ public String getExecuteLifecycle()
+ {
+ return executeLifecycle;
+ }
+
+ public void setExecuteLifecycle( String executeLifecycle )
+ {
+ this.executeLifecycle = executeLifecycle;
}
}
Modified:
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java?rev=191385&r1=191384&r2=191385&view=diff
==============================================================================
---
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
(original)
+++
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
Sun Jun 19 20:39:42 2005
@@ -33,7 +33,6 @@
import java.util.Iterator;
import java.util.List;
-
/**
* @todo share constants
* @todo add example usage tag that can be shown in the doco
Modified:
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh?rev=191385&r1=191384&r2=191385&view=diff
==============================================================================
---
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
(original)
+++
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
Sun Jun 19 20:39:42 2005
@@ -3,6 +3,7 @@
import java.io.FileReader;
import org.codehaus.plexus.util.StringUtils;
import org.apache.maven.plugin.descriptor.Parameter;
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
// only on start of line
this.tag = "\\r?\\n\\s*\\*?\\s*@(\\w+)";
@@ -13,6 +14,8 @@
this.descriptionPattern = Pattern.compile( "(?s)\\r?\\n\\s*\\*" );
this.typePattern = Pattern.compile( "type\\s*=\\s*\"(.*?)\"" );
this.expressionPattern = Pattern.compile( "expression\\s*=\\s*\"(.*?)\"" );
+this.phasePattern = Pattern.compile( "phase\\s*=\\s*\"(.*?)\"" );
+this.lifecyclePattern = Pattern.compile( "lifecycle\\s*=\\s*\"(.*?)\"" );
setAccessibility( true );
@@ -135,7 +138,6 @@
this.tags = getTags( text );
mojoDescriptor.setGoal( tags.get( "goal" ) );
mojoDescriptor.setPhase( tags.get( "phase" ) );
- mojoDescriptor.setExecutePhase( tags.get( "executePhase" ) );
this.value = tags.get( "requiresDependencyResolution" );
// TODO: share with java extractor
if ( value == null || value.length() == 0 )
@@ -146,6 +148,26 @@
mojoDescriptor.setProjectRequired( tags.containsKey( "requiresProject"
) );
mojoDescriptor.setOnlineRequired( tags.containsKey( "requiresOnline" )
);
+
+ this.value = tags.get( "execute" );
+ if ( value != null )
+ {
+ m = phasePattern.matcher( value );
+ if ( m.find() )
+ {
+ mojoDescriptor.setExecutePhase( m.group( 1 ) );
+ }
+ else
+ {
+ throw new InvalidPluginDescriptorException( "@execute must
have a phase" );
+ }
+
+ m = lifecyclePattern.matcher( value );
+ if ( m.find() )
+ {
+ mojoDescriptor.setExecuteLifecycle( m.group( 1 ) );
+ }
+ }
}
}
Modified:
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java?rev=191385&r1=191384&r2=191385&view=diff
==============================================================================
---
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
(original)
+++
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
Sun Jun 19 20:39:42 2005
@@ -69,7 +69,7 @@
public static final String PHASE = "phase";
- public static final String EXECUTE_PHASE = "executePhase";
+ public static final String EXECUTE = "execute";
public static final String GOAL_DESCRIPTION = "description";
@@ -184,11 +184,29 @@
// Additional phase to execute first
//
----------------------------------------------------------------------
- DocletTag executePhase = findInClassHierarchy( javaClass,
EXECUTE_PHASE );
+ DocletTag oldExecutePhase = findInClassHierarchy( javaClass,
"executePhase" );
+ if ( oldExecutePhase != null )
+ {
+ getLogger().warn( "DEPRECATED: @executePhase is deprecated, please
use @execute" );
+ mojoDescriptor.setExecutePhase( oldExecutePhase.getValue() );
+ }
- if ( executePhase != null )
+ DocletTag execute = findInClassHierarchy( javaClass, EXECUTE );
+
+ if ( execute != null )
{
- mojoDescriptor.setExecutePhase( executePhase.getValue() );
+ String executePhase = execute.getNamedParameter( "phase" );
+ if ( executePhase == null )
+ {
+ throw new InvalidPluginDescriptorException( "@execute tag
requires a 'phase' parameter" );
+ }
+ mojoDescriptor.setExecutePhase( executePhase );
+
+ String lifecycle = execute.getNamedParameter( "lifecycle" );
+ if ( lifecycle != null )
+ {
+ mojoDescriptor.setExecuteLifecycle( lifecycle );
+ }
}
//
----------------------------------------------------------------------
@@ -268,9 +286,7 @@
// We're resolving class-level, ancestor-class-field,
local-class-field order here.
//
---------------------------------------------------------------------------------
- Map rawParams = new TreeMap();
-
- extractFieldParameterTags( javaClass, rawParams );
+ Map rawParams = extractFieldParameterTags( javaClass );
for ( Iterator it = rawParams.entrySet().iterator(); it.hasNext(); )
{
@@ -314,15 +330,21 @@
}
}
- private void extractFieldParameterTags( JavaClass javaClass, Map rawParams
)
+ private Map extractFieldParameterTags( JavaClass javaClass )
{
+ Map rawParams;
+
// we have to add the parent fields first, so that they will be
overwritten by the local fields if
// that actually happens...
JavaClass superClass = javaClass.getSuperJavaClass();
if ( superClass != null )
{
- extractFieldParameterTags( superClass, rawParams );
+ rawParams = extractFieldParameterTags( superClass );
+ }
+ else
+ {
+ rawParams = new TreeMap();
}
JavaField[] classFields = javaClass.getFields();
@@ -341,7 +363,7 @@
}
}
}
-
+ return rawParams;
}
private JavaClass getJavaClass( JavaSource javaSource )
@@ -353,8 +375,6 @@
throws InvalidPluginDescriptorException
{
JavaDocBuilder builder = new JavaDocBuilder();
-
- File basedir = project.getBasedir();
for ( Iterator i = project.getCompileSourceRoots().iterator();
i.hasNext(); )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]