Author: dkulp
Date: Fri Mar 23 08:02:06 2007
New Revision: 521753
URL: http://svn.apache.org/viewvc?view=rev&rev=521753
Log:
[MRRESOURCES-19,MRRESOURCES-20,MRRESOURCES-18] Updates to Bundle mojo to allow
better filtering. Non-velocity resources support.
Modified:
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/BundleRemoteResourcesMojo.java
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
Modified:
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/BundleRemoteResourcesMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/BundleRemoteResourcesMojo.java?view=diff&rev=521753&r1=521752&r2=521753
==============================================================================
---
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/BundleRemoteResourcesMojo.java
(original)
+++
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/BundleRemoteResourcesMojo.java
Fri Mar 23 08:02:06 2007
@@ -22,9 +22,11 @@
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import
org.apache.maven.plugin.resources.remote.io.xpp3.RemoteResourcesBundleXpp3Writer;
+import org.codehaus.plexus.util.DirectoryScanner;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
+import java.util.Arrays;
import java.util.List;
import java.util.Iterator;
import java.io.File;
@@ -43,6 +45,12 @@
extends AbstractMojo
{
public static final String RESOURCES_MANIFEST =
"META-INF/maven/remote-resources.xml";
+
+ private static String[] DEFAULT_INCLUDES = new String [] {
+ "**/*.txt",
+ "**/*.vm",
+ };
+
/**
* The directory which contains the resources you want packaged up in this
resource bundle.
@@ -57,7 +65,24 @@
* @parameter expression="${project.build.outputDirectory}"
*/
private File outputDirectory;
+
+
+ /**
+ * A list of files to include. Can contain ant-style wildcards and double
wildcards.
+ * The default includes are
+ * <code>**/*.txt **/*.vm</code>
+ *
+ * @parameter
+ */
+ private String[] includes;
+ /**
+ * A list of files to exclude. Can contain ant-style wildcards and double
wildcards.
+ *
+ * @parameter
+ */
+ private String[] excludes;
+
public void execute()
throws MojoExecutionException
{
@@ -71,22 +96,36 @@
RemoteResourcesBundle remoteResourcesBundle = new
RemoteResourcesBundle();
- try
- {
- List resources = FileUtils.getFileNames( resourcesDirectory,
"**/*.txt,**/*.vm", "**/.svn/**", false );
+ DirectoryScanner scanner = new DirectoryScanner();
- for ( Iterator i = resources.iterator(); i.hasNext(); )
- {
- String resource = (String) i.next();
+ scanner.setBasedir( resourcesDirectory );
+ if ( includes != null && includes.length != 0 )
+ {
+ scanner.setIncludes( includes );
+ }
+ else
+ {
+ scanner.setIncludes( DEFAULT_INCLUDES );
+ }
- remoteResourcesBundle.addRemoteResource( StringUtils.replace(
resource, '\\', '/' ) );
- }
+ if ( excludes != null && excludes.length != 0 )
+ {
+ scanner.setExcludes( excludes );
}
- catch ( IOException e )
+
+ scanner.addDefaultExcludes();
+ scanner.scan();
+
+ List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
+
+ for ( Iterator i = includedFiles.iterator(); i.hasNext(); )
{
- throw new MojoExecutionException( "Error scanning resources.", e );
+ String resource = (String) i.next();
+
+ remoteResourcesBundle.addRemoteResource( StringUtils.replace(
resource, '\\', '/' ) );
}
+
RemoteResourcesBundleXpp3Writer w = new
RemoteResourcesBundleXpp3Writer();
try
Modified:
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java?view=diff&rev=521753&r1=521752&r2=521753
==============================================================================
---
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
(original)
+++
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
Fri Mar 23 08:02:06 2007
@@ -22,6 +22,7 @@
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.execution.MavenSession;
@@ -194,9 +195,13 @@
public void execute()
throws MojoExecutionException
{
- if ( StringUtils.isEmpty( project.getInceptionYear() ) )
+ String inceptionYear = project.getInceptionYear();
+ String year = new SimpleDateFormat( "yyyy" ).format( new Date() );
+
+ if ( StringUtils.isEmpty( inceptionYear ) )
{
- throw new MojoExecutionException( "You must specify an
inceptionYear." );
+ getLog().info("inceptionYear not specified, defaulting to " +
year);
+ inceptionYear = year;
}
RemoteResourcesClassLoader classLoader = new
RemoteResourcesClassLoader();
@@ -277,8 +282,6 @@
context.put( "project", project );
context.put( "projects", getProjects() );
- String year = new SimpleDateFormat( "yyyy" ).format( new Date() );
-
context.put( "presentYear", year );
if ( project.getInceptionYear().equals( year ) )
@@ -317,10 +320,11 @@
String projectResource = bundleResource;
-
+ boolean doVelocity = false;
if ( projectResource.endsWith( ".vm" ) )
{
projectResource = projectResource.substring( 0,
projectResource.length() - 3 );
+ doVelocity = true;
}
// Don't overwrite resource that are already being
provided.
@@ -331,30 +335,40 @@
if ( !copyResourceIfExists( f, projectResource ) )
{
- PrintWriter writer = new PrintWriter( new
FileWriter( f ) );
-
- try
+ if ( doVelocity)
{
- velocity.getEngine().mergeTemplate(
bundleResource, context, writer );
-
- File appendedResourceFile = new File(
appendedResourcesDirectory, projectResource );
- if ( appendedResourceFile.exists() )
+ PrintWriter writer = new PrintWriter( new
FileWriter( f ) );
+ try
{
- FileReader freader = new FileReader(
appendedResourceFile );
- BufferedReader breader = new
BufferedReader( freader );
-
- String line = breader.readLine();
-
- while ( line != null )
+ velocity.getEngine().mergeTemplate(
bundleResource, context, writer );
+
+ File appendedResourceFile = new File(
appendedResourcesDirectory, projectResource );
+ if ( appendedResourceFile.exists() )
{
- writer.println( line );
- line = breader.readLine();
+ FileReader freader = new FileReader(
appendedResourceFile );
+ BufferedReader breader = new
BufferedReader( freader );
+
+ String line = breader.readLine();
+
+ while ( line != null )
+ {
+ writer.println( line );
+ line = breader.readLine();
+ }
}
}
+ finally
+ {
+ writer.close();
+ }
}
- finally
+ else
{
- writer.close();
+ URL resUrl = classLoader.getResource(
bundleResource );
+ if ( resUrl != null )
+ {
+ FileUtils.copyURLToFile( resUrl, f );
+ }
}
}
}
@@ -424,17 +438,16 @@
{
if ( artifact.isSnapshot() )
{
+ VersionRange rng =
VersionRange.createFromVersion(artifact.getBaseVersion());
artifact = artifactFactory.createDependencyArtifact(
artifact.getGroupId(),
artifact.getArtifactId(),
-
artifact.getVersionRange(),
+ rng,
artifact.getType(),
artifact.getClassifier(),
artifact.getScope(),
null,
artifact.isOptional() );
- artifact.setVersion( artifact.getBaseVersion() );
}
-
getLog().debug("Building project for " + artifact);
MavenProject p = mavenProjectBuilder.buildFromRepository(
artifact,
remoteRepositories,