Author: jdcasey
Date: Fri Feb 20 21:13:39 2009
New Revision: 746366
URL: http://svn.apache.org/viewvc?rev=746366&view=rev
Log:
[MPLUGIN-101] Add encoding parameter to maven-plugin-plugin mojos, and add
encoding to PluginToolsRequest to allow it to pass through the plugin tools
when executed.
Modified:
maven/plugin-tools/trunk/maven-plugin-plugin/pom.xml
maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/ScannerTestExtractor.java
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/TestExtractor.java
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
maven/plugin-tools/trunk/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java
maven/plugin-tools/trunk/pom.xml
Modified: maven/plugin-tools/trunk/maven-plugin-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-plugin/pom.xml?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
--- maven/plugin-tools/trunk/maven-plugin-plugin/pom.xml (original)
+++ maven/plugin-tools/trunk/maven-plugin-plugin/pom.xml Fri Feb 20 21:13:39
2009
@@ -61,7 +61,7 @@
<properties>
<doxiaVersion>1.0-alpha-10</doxiaVersion>
<doxia-sitetoolsVersion>1.0-alpha-10</doxia-sitetoolsVersion>
- <pluginToolsVersion>[2.5-SNAPSHOT,)</pluginToolsVersion>
+ <pluginToolsVersion>2.5-SNAPSHOT</pluginToolsVersion>
</properties>
<!-- Copy from project up -->
Modified:
maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
Fri Feb 20 21:13:39 2009
@@ -62,6 +62,14 @@
protected MojoScanner mojoScanner;
/**
+ * The file encoding of the source files.
+ *
+ * @parameter expression="${encoding}" default-value="ISO-8859-1"
+ * @since 2.5
+ */
+ protected String encoding;
+
+ /**
* The goal prefix that will appear before the ":".
*
* @parameter
@@ -147,7 +155,7 @@
{
pluginDescriptor.setDependencies(
PluginUtils.toComponentDependencies( project.getRuntimeDependencies() ) );
- PluginToolsRequest request = new DefaultPluginToolsRequest(
project, pluginDescriptor );
+ PluginToolsRequest request = new DefaultPluginToolsRequest(
project, pluginDescriptor ).setEncoding( encoding );
mojoScanner.populatePluginDescriptor( request );
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java
Fri Feb 20 21:13:39 2009
@@ -5,9 +5,8 @@
import org.apache.maven.project.MavenProject;
/**
- * Default implementation of {...@link PluginToolsRequest}, which is used to
pass parameters to components
- * used to extract {...@link MojoDescriptor} instances from different types of
metadata for a given
- * plugin.
+ * Default implementation of {...@link PluginToolsRequest}, which is used to
pass parameters to components used to extract
+ * {...@link MojoDescriptor} instances from different types of metadata for a
given plugin.
*
* @author jdcasey
*/
@@ -16,8 +15,11 @@
{
private PluginDescriptor pluginDescriptor;
+
private MavenProject project;
-
+
+ private String encoding = "ISO-8859-1";
+
public DefaultPluginToolsRequest( MavenProject project, PluginDescriptor
pluginDescriptor )
{
this.project = project;
@@ -31,7 +33,7 @@
{
return pluginDescriptor;
}
-
+
/**
* {...@inheritdoc}
*/
@@ -40,4 +42,26 @@
return project;
}
+ /**
+ * {...@inheritdoc}
+ */
+ public String getEncoding()
+ {
+ return this.encoding;
+ }
+
+ /**
+ * {...@inheritdoc}
+ */
+ public PluginToolsRequest setEncoding( String encoding )
+ {
+ if ( encoding == null )
+ {
+ throw new IllegalArgumentException( "unspecified source file
encoding" );
+ }
+ this.encoding = encoding;
+
+ return this;
+ }
+
}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java
Fri Feb 20 21:13:39 2009
@@ -24,4 +24,16 @@
*/
PluginDescriptor getPluginDescriptor();
+ /**
+ * Gets the file encoding of the source files.
+ *
+ * @return The file encoding of the source files, never <code>null</code>.
+ */
+ public String getEncoding();
+
+ /**
+ * @see PluginToolsRequest#getEncoding()
+ */
+ public PluginToolsRequest setEncoding( String encoding );
+
}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
Fri Feb 20 21:13:39 2009
@@ -238,4 +238,4 @@
*/
protected abstract String getScriptFileExtension( PluginToolsRequest
request );
-}
\ No newline at end of file
+}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java
Fri Feb 20 21:13:39 2009
@@ -56,6 +56,7 @@
* @return a list of mojo descriptors.
* @throws ExtractionException if any
* @throws InvalidPluginDescriptorException if any
+ * @since 2.5
*/
List execute( PluginToolsRequest request )
throws ExtractionException, InvalidPluginDescriptorException;
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
Fri Feb 20 21:13:39 2009
@@ -184,4 +184,5 @@
}
}
}
-}
\ No newline at end of file
+
+}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java
Fri Feb 20 21:13:39 2009
@@ -53,6 +53,7 @@
* @param pluginDescriptor not null
* @throws ExtractionException if any
* @throws InvalidPluginDescriptorException if any
+ * @since 2.5
*/
void populatePluginDescriptor( PluginToolsRequest request )
throws ExtractionException, InvalidPluginDescriptorException;
@@ -68,4 +69,4 @@
*/
void setActiveExtractors( Set/* <String> */extractors );
-}
\ No newline at end of file
+}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/ScannerTestExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/ScannerTestExtractor.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/ScannerTestExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/ScannerTestExtractor.java
Fri Feb 20 21:13:39 2009
@@ -60,4 +60,4 @@
return Collections.singletonList( desc );
}
-}
\ No newline at end of file
+}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/TestExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/TestExtractor.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/TestExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/TestExtractor.java
Fri Feb 20 21:13:39 2009
@@ -50,4 +50,4 @@
return Collections.singletonList( desc );
}
-}
\ No newline at end of file
+}
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/java/org/apache/maven/tools/plugin/extractor/beanshell/BeanshellMojoDescriptorExtractor.java
Fri Feb 20 21:13:39 2009
@@ -19,11 +19,8 @@
* under the License.
*/
-import bsh.EvalError;
-import bsh.Interpreter;
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
-import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.tools.plugin.PluginToolsRequest;
import
org.apache.maven.tools.plugin.extractor.AbstractScriptedMojoDescriptorExtractor;
import org.apache.maven.tools.plugin.extractor.ExtractionException;
@@ -37,6 +34,9 @@
import java.util.Map;
import java.util.Set;
+import bsh.EvalError;
+import bsh.Interpreter;
+
/**
* Extracts Mojo descriptors from <a
href="http://www.beanshell.org/">BeanShell</a> sources.
*
@@ -83,7 +83,7 @@
relativePath = relativePath.replace( '\\', '/' );
- MojoDescriptor mojoDescriptor = createMojoDescriptor( basedir,
relativePath, request.getPluginDescriptor() );
+ MojoDescriptor mojoDescriptor = createMojoDescriptor( basedir,
relativePath, request );
descriptors.add( mojoDescriptor );
}
}
@@ -98,11 +98,11 @@
* @return a new Mojo descriptor instance
* @throws InvalidPluginDescriptorException if any
*/
- private MojoDescriptor createMojoDescriptor( String basedir, String
resource, PluginDescriptor pluginDescriptor )
+ private MojoDescriptor createMojoDescriptor( String basedir, String
resource, PluginToolsRequest request )
throws InvalidPluginDescriptorException
{
MojoDescriptor mojoDescriptor = new MojoDescriptor();
- mojoDescriptor.setPluginDescriptor( pluginDescriptor );
+ mojoDescriptor.setPluginDescriptor( request.getPluginDescriptor() );
mojoDescriptor.setLanguage( "bsh" );
mojoDescriptor.setComponentConfigurator( "bsh" );
@@ -117,7 +117,7 @@
interpreter.set( "mojoDescriptor", mojoDescriptor );
- interpreter.eval( new InputStreamReader(
getClass().getResourceAsStream( "/extractor.bsh" ), "UTF-8" ) );
+ interpreter.eval( new InputStreamReader(
getClass().getResourceAsStream( "/extractor.bsh" ), request.getEncoding() ) );
}
catch ( EvalError evalError )
{
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
Fri Feb 20 21:13:39 2009
@@ -1,6 +1,7 @@
import bsh.*;
import java.util.regex.Pattern;
-import java.io.FileReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
import org.codehaus.plexus.util.StringUtils;
import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
@@ -120,9 +121,9 @@
}
}
-extract( file, mojoDescriptor )
+extract( file, encoding, mojoDescriptor )
{
- this.parser = new Parser( new FileReader( file ) );
+ this.parser = new Parser( new InputStreamReader( new FileInputStream( file
), encoding ) );
parser.setRetainComments( true );
this.lastNode = null;
@@ -219,4 +220,4 @@
}
}
-extract( file, mojoDescriptor );
+extract( file, encoding, mojoDescriptor );
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
Fri Feb 20 21:13:39 2009
@@ -589,7 +589,7 @@
public List execute( PluginToolsRequest request )
throws ExtractionException, InvalidPluginDescriptorException
{
- JavaClass[] javaClasses = discoverClasses( request.getProject() );
+ JavaClass[] javaClasses = discoverClasses( request );
List descriptors = new ArrayList();
@@ -614,11 +614,15 @@
/**
* @param project not null
+ * @param encoding The file encoding of the source files, must not be
<code>null</code>.
* @return an array of java class
*/
- protected JavaClass[] discoverClasses( final MavenProject project )
+ protected JavaClass[] discoverClasses( final PluginToolsRequest request )
{
JavaDocBuilder builder = new JavaDocBuilder();
+ builder.setEncoding( request.getEncoding() );
+
+ MavenProject project = request.getProject();
for ( Iterator i = project.getCompileSourceRoots().iterator();
i.hasNext(); )
{
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-java/src/test/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractorTest.java
Fri Feb 20 21:13:39 2009
@@ -25,6 +25,8 @@
import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.tools.plugin.DefaultPluginToolsRequest;
+import org.apache.maven.tools.plugin.PluginToolsRequest;
import java.io.File;
import java.io.UnsupportedEncodingException;
@@ -59,7 +61,11 @@
PluginDescriptor pluginDescriptor = new PluginDescriptor();
pluginDescriptor.setGoalPrefix( "test" );
- List results = extractor.execute( project, pluginDescriptor );
+
+ PluginToolsRequest request = new DefaultPluginToolsRequest( project,
pluginDescriptor );
+
+ List results = extractor.execute( request );
+
assertEquals( "Extracted mojos", 2, results.size() );
for ( int i = 0; i < 2; i++ )
@@ -92,7 +98,10 @@
PluginDescriptor pluginDescriptor = new PluginDescriptor();
pluginDescriptor.setGoalPrefix( "test" );
- List results = extractor.execute( project, pluginDescriptor );
+
+ PluginToolsRequest request = new DefaultPluginToolsRequest( project,
pluginDescriptor );
+
+ List results = extractor.execute( request );
assertEquals( 1, results.size() );
MojoDescriptor mojoDescriptor = (MojoDescriptor) results.get( 0 );
@@ -156,7 +165,10 @@
PluginDescriptor pluginDescriptor = new PluginDescriptor();
pluginDescriptor.setGoalPrefix( "test" );
- List results = extractor.execute( project, pluginDescriptor );
+
+ PluginToolsRequest request = new DefaultPluginToolsRequest( project,
pluginDescriptor );
+
+ List results = extractor.execute( request );
assertEquals( 0, results.size() );
}
Modified: maven/plugin-tools/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/pom.xml?rev=746366&r1=746365&r2=746366&view=diff
==============================================================================
--- maven/plugin-tools/trunk/pom.xml (original)
+++ maven/plugin-tools/trunk/pom.xml Fri Feb 20 21:13:39 2009
@@ -144,7 +144,7 @@
</distributionManagement>
<properties>
- <pluginToolsVersion>[2.5-SNAPSHOT,)</pluginToolsVersion>
+ <pluginToolsVersion>2.5-SNAPSHOT</pluginToolsVersion>
<pluginTestingHarnessVersion>1.2</pluginTestingHarnessVersion>
</properties>