Author: brett Date: Thu May 12 08:59:36 2005 New Revision: 169839 URL: http://svn.apache.org/viewcvs?rev=169839&view=rev Log: import source plugin
Added: maven/components/trunk/maven-plugins/maven-source-plugin/ (with props) maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/test/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/resources/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/resources/sub-directory/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/resources/sub-directory/file.resource maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java (with props) maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/resources/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/resources/sub-directory2/ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/resources/sub-directory2/file2.resource Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Thu May 12 08:59:36 2005 @@ -0,0 +1,2 @@ +*.iml +target Added: maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml Thu May 12 08:59:36 2005 @@ -0,0 +1,25 @@ +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>maven-plugin-parent</artifactId> + <groupId>org.apache.maven.plugins</groupId> + <version>2.0-SNAPSHOT</version> + </parent> + <artifactId>maven-source-plugin</artifactId> + <version>2.0-alpha-1-SNAPSHOT</version> + <packaging>maven-plugin</packaging> + <name>Maven Source Plug-In</name> + <dependencies> + <dependency> + <groupId>plexus</groupId> + <artifactId>plexus-archiver</artifactId> + <version>1.0-alpha-1</version> + </dependency> + <dependency> + <groupId>plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-2</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java Thu May 12 08:59:36 2005 @@ -0,0 +1,81 @@ +package org.apache.maven.plugin.source; + +/* + * Copyright 2001-2004 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.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.codehaus.plexus.archiver.jar.JarArchiver; + +import java.io.File; +import java.util.Iterator; +import java.util.List; + +/** + * This plugin bundles all the generated sources into a jar archive. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Trygve Laugstøl</a> + * @version $Id$ + * @goal jar + */ +public class JarSourceMojo + extends AbstractMojo +{ + /** + * @parameter expression="${project.build.finalName}" + * @required + */ + private String finalName; + + /** + * @parameter expression="${project.compileSourceRoots}" + * @required + */ + private List compileSourceRoots; + + /** + * @parameter expression="${project.build.output}" + * @required + */ + private File outputDirectory; + + public void execute() + throws MojoExecutionException + { + // TODO: use a component lookup? + JarArchiver archiver = new JarArchiver(); + + SourceBundler sourceBundler = new SourceBundler(); + + File outputFile = new File( outputDirectory, finalName + "-sources.jar" ); + + File[] sourceDirectories = new File[compileSourceRoots.size()]; + int count = 0; + for ( Iterator i = compileSourceRoots.iterator(); i.hasNext(); count++ ) + { + sourceDirectories[count] = new File( (String) i.next() ); + } + + try + { + sourceBundler.makeSourceBundle( outputFile, sourceDirectories, archiver ); + } + catch ( Exception e ) + { + throw new MojoExecutionException( "Error building source JAR", e ); + } + } +} Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java Thu May 12 08:59:36 2005 @@ -0,0 +1,38 @@ +package org.apache.maven.plugin.source; + +import java.io.File; + +import org.codehaus.plexus.archiver.Archiver; + +/** + * @author <a href="mailto:[EMAIL PROTECTED]">Trygve Laugstøl</a> + * @version $Id$ + */ +public class SourceBundler +{ + private final static String[] DEFAULT_INCLUDES = new String[]{ + "**/*", + }; + + private final static String[] DEFAULT_EXCLUDES = new String[]{ + "**/CVS/**", + "**/.svn/**", + }; + + public void makeSourceBundle( File outputFile, File[] sourceDirectories, Archiver archiver ) + throws Exception + { + String[] includes = DEFAULT_INCLUDES; + + String[] excludes = DEFAULT_EXCLUDES; + + for ( int i = 0; i < sourceDirectories.length; i++ ) + { + archiver.addDirectory( sourceDirectories[ i ], includes, excludes ); + } + + archiver.setDestFile( outputFile ); + + archiver.createArchive(); + } +} Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/SourceBundler.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml Thu May 12 08:59:36 2005 @@ -0,0 +1,4 @@ +<component-set> + <components> + </components> +</component-set> Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/resources/META-INF/plexus/components.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java Thu May 12 08:59:36 2005 @@ -0,0 +1,40 @@ +package org.apache.maven.plugin.source; + +import org.codehaus.plexus.PlexusTestCase; +import org.codehaus.plexus.archiver.Archiver; + +import java.io.File; + +/** + * @author <a href="mailto:[EMAIL PROTECTED]">Trygve Laugstøl</a> + * @version $Id$ + */ +public class SourceBundlerTest + extends PlexusTestCase +{ + public void testNormalProject() + throws Exception + { + SourceBundler sourceBundler = new SourceBundler(); + + Archiver archiver = (Archiver) lookup( Archiver.ROLE, "jar" ); + + File outputFile = getTestFile( "target/source-bundler-test/normal.jar" ); + + File sourceDirectories[] = { + getTestFile( "src/test/projects/normal/src/main/java" ), + getTestFile( "src/test/projects/normal/src/main/resources" ), + getTestFile( "src/test/projects/normal/src/test/java" ), + getTestFile( "src/test/projects/normal/src/test/resources" ), + }; + + if ( outputFile.exists() ) + { + assertTrue( "Could not delete output file: " + outputFile.getAbsolutePath(), outputFile.delete() ); + } + + sourceBundler.makeSourceBundle( outputFile, sourceDirectories, archiver ); + + assertTrue( "Missing output file: " + outputFile.getAbsolutePath(), outputFile.isFile() ); + } +} Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/java/org/apache/maven/plugin/source/SourceBundlerTest.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml Thu May 12 08:59:36 2005 @@ -0,0 +1,7 @@ +<model> + <modelVersion>4.0.0</modelVersion> + <groupId>mojo-test</groupId> + <artifactId>maven-sources-plugin-test-zip</artifactId> + <packaging>jar</packaging> + <version>1.0</version> +</model> \ No newline at end of file Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java Thu May 12 08:59:36 2005 @@ -0,0 +1,3 @@ +public class App +{ +} Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/java/App.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/resources/sub-directory/file.resource URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/main/resources/sub-directory/file.resource?rev=169839&view=auto ============================================================================== (empty) Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java?rev=169839&view=auto ============================================================================== --- maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java (added) +++ maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java Thu May 12 08:59:36 2005 @@ -0,0 +1,3 @@ +public class Test +{ +} Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/java/Test.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/resources/sub-directory2/file2.resource URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/test/projects/normal/src/test/resources/sub-directory2/file2.resource?rev=169839&view=auto ============================================================================== (empty) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]