You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/09/15 22:45:04 UTC

svn commit: r695615 - in /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project: DefaultMavenProjectBuilder.java builder/PomClassicTransformer.java

Author: sisbell
Date: Mon Sep 15 13:45:04 2008
New Revision: 695615

URL: http://svn.apache.org/viewvc?rev=695615&view=rev
Log:
Fix: Interpolation of standalone super poms.

Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=695615&r1=695614&r2=695615&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Mon Sep 15 13:45:04 2008
@@ -45,6 +45,7 @@
 import org.apache.maven.project.builder.PomArtifactResolver;
 import org.apache.maven.project.builder.ProjectBuilder;
 import org.apache.maven.project.builder.PomInterpolatorTag;
+import org.apache.maven.project.builder.PomClassicTransformer;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.apache.maven.project.validation.ModelValidator;
 import org.apache.maven.project.workspace.ProjectWorkspace;
@@ -253,6 +254,48 @@
             }
         }
 
+        List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
+        interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties(),
+                PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
+        interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties(),
+                PomInterpolatorTag.USER_PROPERTIES.name()));
+
+        if(config.getBuildStartTime() != null)
+        {
+            interpolatorProperties.add(new InterpolatorProperty("${build.timestamp}",
+                new SimpleDateFormat("yyyyMMdd-hhmm").format( config.getBuildStartTime() ),
+                PomInterpolatorTag.PROJECT_PROPERTIES.name()));
+        }
+
+        File basedir = null;
+        for(InterpolatorProperty ip : interpolatorProperties )
+        {
+            if(ip.getKey().equals("${basedir}"))
+            {
+                basedir = new File(ip.getValue());
+                break;
+            }
+        }
+
+        if(basedir == null)
+        {
+            String bd = System.getProperty("basedir");
+            if( bd != null )
+            {
+                basedir = new File(bd);
+            }
+        }
+
+        try
+        {
+            superModel = PomClassicTransformer.interpolateModel(superModel, interpolatorProperties, basedir);
+        }
+        catch (IOException e)
+        {
+            throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID,
+                                                "Interpolation failure:", e);
+        }
+
         MavenProject project;
         try
         {

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java?rev=695615&r1=695614&r2=695615&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java Mon Sep 15 13:45:04 2008
@@ -582,10 +582,11 @@
             }
         }
 
-        String basedir = domainModel.getProjectDirectory().getAbsolutePath();
+
         List<InterpolatorProperty> standardInterpolatorProperties = new ArrayList<InterpolatorProperty>();
         if(domainModel.isPomInBuild())
         {
+            String basedir = domainModel.getProjectDirectory().getAbsolutePath();
             standardInterpolatorProperties.add(new InterpolatorProperty("${project.basedir}", basedir,
                     PomInterpolatorTag.PROJECT_PROPERTIES.name() ));
             standardInterpolatorProperties.add(new InterpolatorProperty("${basedir}", basedir,
@@ -621,7 +622,7 @@
 
         //SECOND PASS - Set absolute paths on build directories
         if( domainModel.isPomInBuild() )
-        {
+        {   String basedir = domainModel.getProjectDirectory().getAbsolutePath();
             Map<ModelProperty, ModelProperty> buildDirectories = new HashMap<ModelProperty, ModelProperty>();
             for(ModelProperty mp : secondPassModelProperties)
             {