Author: jdcasey
Date: Sat Jun 18 16:27:40 2005
New Revision: 191311
URL: http://svn.apache.org/viewcvs?rev=191311&view=rev
Log:
PR: MNG-414
Modified:
maven/components/trunk/maven-core-it/it0015/pom.xml
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/test/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractorTest.java
Modified: maven/components/trunk/maven-core-it/it0015/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0015/pom.xml?rev=191311&r1=191310&r2=191311&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/it0015/pom.xml (original)
+++ maven/components/trunk/maven-core-it/it0015/pom.xml Sat Jun 18 16:27:40 2005
@@ -22,15 +22,10 @@
</dependency>
</dependencies>
<build>
+ <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
- </resource>
- <resource>
- <directory>src/main/scripts</directory>
- <includes>
- <include>**/*.mmld</include>
- </includes>
</resource>
</resources>
</build>
Modified:
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java?rev=191311&r1=191310&r2=191311&view=diff
==============================================================================
---
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
(original)
+++
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
Sat Jun 18 16:27:40 2005
@@ -5,8 +5,12 @@
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.IOUtil;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -29,7 +33,76 @@
List mojoDescriptors = extractMojoDescriptors(
scriptFilesKeyedByBasedir, pluginDescriptor );
+ copyScriptsToOutputDirectory( scriptFilesKeyedByBasedir,
project.getBuild().getOutputDirectory() );
+
return mojoDescriptors;
+ }
+
+ private void copyScriptsToOutputDirectory( Map scriptFilesKeyedByBasedir,
String outputDirectory )
+ throws ExtractionException
+ {
+ File outputDir = new File( outputDirectory );
+
+ if ( !outputDir.exists() )
+ {
+ outputDir.mkdirs();
+ }
+
+ for ( Iterator it = scriptFilesKeyedByBasedir.entrySet().iterator();
it.hasNext(); )
+ {
+ Map.Entry entry = (Map.Entry) it.next();
+
+ File sourceDir = new File( (String) entry.getKey() );
+
+ Set scripts = (Set) entry.getValue();
+
+ for ( Iterator scriptIterator = scripts.iterator();
scriptIterator.hasNext(); )
+ {
+ File scriptFile = (File) scriptIterator.next();
+
+ String relativePath = scriptFile.getPath().substring(
sourceDir.getPath().length() );
+
+ if ( relativePath.charAt( 0 ) == File.separatorChar )
+ {
+ relativePath = relativePath.substring( 1 );
+ }
+
+ File outputFile = new File( outputDir, relativePath
).getAbsoluteFile();
+
+ if ( !outputFile.getParentFile().exists() )
+ {
+ outputFile.getParentFile().mkdirs();
+ }
+
+ FileInputStream in = null;
+ FileOutputStream out = null;
+
+ try
+ {
+ in = new FileInputStream( scriptFile );
+ out = new FileOutputStream( outputFile );
+
+ byte[] buffer = new byte[16];
+ int read = -1;
+
+ while ( ( read = in.read( buffer ) ) > -1 )
+ {
+ out.write( buffer, 0, read );
+ }
+
+ out.flush();
+ }
+ catch ( IOException e )
+ {
+ throw new ExtractionException( "Cannot copy script file: "
+ scriptFile + " to output: " + outputFile, e );
+ }
+ finally
+ {
+ IOUtil.close( in );
+ IOUtil.close( out );
+ }
+ }
+ }
}
protected abstract List extractMojoDescriptors( Map
scriptFilesKeyedByBasedir, PluginDescriptor pluginDescriptor )
Modified:
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/test/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractorTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/test/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractorTest.java?rev=191311&r1=191310&r2=191311&view=diff
==============================================================================
---
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/test/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractorTest.java
(original)
+++
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/test/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractorTest.java
Sat Jun 18 16:27:40 2005
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -33,6 +34,19 @@
public class MarmaladeMojoDescriptorExtractorTest
extends PlexusTestCase
{
+
+ private String findThisBasedir()
+ {
+ String myClassFile = getClass().getName().replace('.', '/') + ".class";
+
+ ClassLoader cloader = getClass().getClassLoader();
+
+ URL myClassResource = cloader.getResource( myClassFile );
+
+ String fullPath = myClassResource.getPath();
+
+ return fullPath.substring( 0, fullPath.length() - myClassFile.length()
);
+ }
public void testShouldFindOneMojo()
throws Exception
@@ -48,6 +62,12 @@
System.out.println( "Basedir: " + basedir );
project.addScriptSourceRoot( basedir.getPath() );
+
+ Build build = new Build();
+
+ build.setOutputDirectory( findThisBasedir() );
+
+ project.setBuild( build );
MarmaladeMojoDescriptorExtractor extractor =
(MarmaladeMojoDescriptorExtractor) lookup(
MojoDescriptorExtractor.ROLE, "marmalade" );
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]