You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/08/09 01:06:57 UTC

svn commit: r230920 - in /maven/components/trunk: maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ maven-project/src/main/java/org/apache/maven/project/ maven-project/src/main/java/org/apache/maven/project/overlay/

Author: jdcasey
Date: Mon Aug  8 16:06:48 2005
New Revision: 230920

URL: http://svn.apache.org/viewcvs?rev=230920&view=rev
Log:
Resolving: MNG-163

Use MavenProject.addResource(..) and .addTestResource(..) to perform this function. I've built a BuildOverlay to insulate the interpolated, initialized Model's Build instance from runtime changes to these, in a similar fashion to addCompileSourceRoots(..), because I wanted to preserve some compat with plugins using ${project.build.resources}.

Added:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java   (with props)
Modified:
    maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java
    maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/TestResourcesMojo.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java

Modified: maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java?rev=230920&r1=230919&r2=230920&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java Mon Aug  8 16:06:48 2005
@@ -62,7 +62,7 @@
     /**
      * The list of resources we want to transfer.
      *
-     * @parameter expression="${project.build.resources}"
+     * @parameter expression="${project.resources}"
      * @required
      */
     private List resources;

Modified: maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/TestResourcesMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/TestResourcesMojo.java?rev=230920&r1=230919&r2=230920&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/TestResourcesMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/TestResourcesMojo.java Mon Aug  8 16:06:48 2005
@@ -42,7 +42,7 @@
     /**
      * The list of resources we want to transfer.
      * 
-     * @parameter expression="${project.build.testResources}"
+     * @parameter expression="${project.testResources}"
      * @required
      */
     private List resources;

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=230920&r1=230919&r2=230920&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Mon Aug  8 16:06:48 2005
@@ -43,9 +43,11 @@
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.ReportSet;
 import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Resource;
 import org.apache.maven.model.Scm;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.apache.maven.project.artifact.MavenMetadataSource;
+import org.apache.maven.project.overlay.BuildOverlay;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.io.File;
@@ -132,6 +134,8 @@
 
     private Map projectReferences = new HashMap();
 
+    private Build buildOverlay;
+
     public MavenProject( Model model )
     {
         this.model = model;
@@ -798,12 +802,39 @@
 
     public void setBuild( Build build )
     {
+        this.buildOverlay = new BuildOverlay( build );
+        
         model.setBuild( build );
     }
 
     public Build getBuild()
     {
-        return model.getBuild();
+        if ( buildOverlay == null )
+        {
+            buildOverlay = new BuildOverlay( model.getBuild() );
+        }
+        
+        return buildOverlay;
+    }
+    
+    public List getResources()
+    {
+        return getBuild().getResources();
+    }
+
+    public List getTestResources()
+    {
+        return getBuild().getTestResources();
+    }
+
+    public void addResource( Resource resource )
+    {
+        getBuild().addResource( resource );
+    }
+
+    public void addTestResource( Resource testResource )
+    {
+        getBuild().addTestResource( testResource );
     }
 
     public void setReporting( Reporting reporting )
@@ -1273,5 +1304,5 @@
     {
         return groupId + ":" + artifactId;
     }
-
+    
 }

Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java?rev=230920&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java Mon Aug  8 16:06:48 2005
@@ -0,0 +1,237 @@
+package org.apache.maven.project.overlay;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Extension;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.Resource;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class BuildOverlay
+    extends Build
+{
+    
+    private final Build build;
+    
+    private List resources;
+    private List testResources;
+
+    public BuildOverlay( Build build )
+    {
+        if ( build == null )
+        {
+            this.build = new Build();
+            
+            this.resources = new ArrayList();
+            
+            this.testResources = new ArrayList();
+        }
+        else
+        {
+            this.build = build;
+            
+            this.resources = new ArrayList( build.getResources() );
+            
+            this.testResources = new ArrayList( build.getTestResources() );
+        }
+    }
+
+    public void addExtension( Extension extension )
+    {
+        build.addExtension( extension );
+    }
+
+    public void addPlugin( Plugin plugin )
+    {
+        build.addPlugin( plugin );
+    }
+
+    public void addResource( Resource resource )
+    {
+        resources.add( resource );
+    }
+
+    public void addTestResource( Resource resource )
+    {
+        testResources.add( resource );
+    }
+
+    public boolean equals( Object obj )
+    {
+        return build.equals( obj );
+    }
+
+    public void flushPluginMap()
+    {
+        build.flushPluginMap();
+    }
+
+    public String getDefaultGoal()
+    {
+        return build.getDefaultGoal();
+    }
+
+    public String getDirectory()
+    {
+        return build.getDirectory();
+    }
+
+    public List getExtensions()
+    {
+        return build.getExtensions();
+    }
+
+    public String getFinalName()
+    {
+        return build.getFinalName();
+    }
+
+    public String getOutputDirectory()
+    {
+        return build.getOutputDirectory();
+    }
+
+    public PluginManagement getPluginManagement()
+    {
+        return build.getPluginManagement();
+    }
+
+    public List getPlugins()
+    {
+        return build.getPlugins();
+    }
+
+    public Map getPluginsAsMap()
+    {
+        return build.getPluginsAsMap();
+    }
+
+    public List getResources()
+    {
+        return resources;
+    }
+
+    public String getScriptSourceDirectory()
+    {
+        return build.getScriptSourceDirectory();
+    }
+
+    public String getSourceDirectory()
+    {
+        return build.getSourceDirectory();
+    }
+
+    public String getTestOutputDirectory()
+    {
+        return build.getTestOutputDirectory();
+    }
+
+    public List getTestResources()
+    {
+        return testResources;
+    }
+
+    public String getTestSourceDirectory()
+    {
+        return build.getTestSourceDirectory();
+    }
+
+    public int hashCode()
+    {
+        return build.hashCode();
+    }
+
+    public void removeExtension( Extension extension )
+    {
+        build.removeExtension( extension );
+    }
+
+    public void removePlugin( Plugin plugin )
+    {
+        build.removePlugin( plugin );
+    }
+
+    public void removeResource( Resource resource )
+    {
+        resources.remove( resource );
+    }
+
+    public void removeTestResource( Resource resource )
+    {
+        testResources.remove( resource );
+    }
+
+    public void setDefaultGoal( String defaultGoal )
+    {
+        build.setDefaultGoal( defaultGoal );
+    }
+
+    public void setDirectory( String directory )
+    {
+        build.setDirectory( directory );
+    }
+
+    public void setExtensions( List extensions )
+    {
+        build.setExtensions( extensions );
+    }
+
+    public void setFinalName( String finalName )
+    {
+        build.setFinalName( finalName );
+    }
+
+    public void setOutputDirectory( String outputDirectory )
+    {
+        build.setOutputDirectory( outputDirectory );
+    }
+
+    public void setPluginManagement( PluginManagement pluginManagement )
+    {
+        build.setPluginManagement( pluginManagement );
+    }
+
+    public void setPlugins( List plugins )
+    {
+        build.setPlugins( plugins );
+    }
+
+    public void setResources( List resources )
+    {
+        this.resources = resources;
+    }
+
+    public void setScriptSourceDirectory( String scriptSourceDirectory )
+    {
+        build.setScriptSourceDirectory( scriptSourceDirectory );
+    }
+
+    public void setSourceDirectory( String sourceDirectory )
+    {
+        build.setSourceDirectory( sourceDirectory );
+    }
+
+    public void setTestOutputDirectory( String testOutputDirectory )
+    {
+        build.setTestOutputDirectory( testOutputDirectory );
+    }
+
+    public void setTestResources( List testResources )
+    {
+        this.testResources = testResources;
+    }
+
+    public void setTestSourceDirectory( String testSourceDirectory )
+    {
+        build.setTestSourceDirectory( testSourceDirectory );
+    }
+
+    public String toString()
+    {
+        return build.toString();
+    }
+
+}

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/overlay/BuildOverlay.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org