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/08/13 16:47:53 UTC

svn commit: r685575 - in /maven/components/trunk: maven-embedder/src/test/java/org/apache/maven/error/ maven-project/src/main/java/org/apache/maven/project/ maven-project/src/main/java/org/apache/maven/project/builder/ maven-project/src/main/java/org/a...

Author: sisbell
Date: Wed Aug 13 07:47:51 2008
New Revision: 685575

URL: http://svn.apache.org/viewvc?rev=685575&view=rev
Log:
Merged back changes from sisbell-maven-2.1-profile

Added:
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/
      - copied from r684975, maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/DefaultProjectWorkspaceTest.java
      - copied unchanged from r684975, maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/DefaultProjectWorkspaceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/ModelAndFileCachingTest.java
      - copied unchanged from r684975, maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/ModelAndFileCachingTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/ProjectCachingTest.java
      - copied unchanged from r684975, maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/ProjectCachingTest.java
Removed:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Profile.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultImportModel.java
Modified:
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
    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/MavenProject.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java?rev=685575&r1=685574&r2=685575&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java Wed Aug 13 07:47:51 2008
@@ -848,10 +848,6 @@
 
         reporterCtl.verify();
     }
-/*
-    TODO: Disabled these unit tests due to refactoring of maven-project. DefaultMavenProjectBuilder would throw an
-    exception which would be recorded here. Creation is now in MavenProject, which doesn't contain an exception
-     in method signature.
 
     public void testReportBadManagedDependencyVersion()
         throws IOException
@@ -888,7 +884,7 @@
 
         reporterCtl.verify();
     }
-*/
+
     public void testReportErrorCreatingArtifactRepository()
         throws IOException
     {

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=685575&r1=685574&r2=685575&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 Wed Aug 13 07:47:51 2008
@@ -33,18 +33,23 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.ManagedVersionMap;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Extension;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.Parent;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.Repository;
+import org.apache.maven.model.Resource;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.profiles.MavenProfilesBuilder;
 import org.apache.maven.profiles.ProfileManager;
@@ -67,6 +72,7 @@
 import org.apache.maven.project.workspace.ProjectWorkspace;
 import org.apache.maven.project.builder.PomArtifactResolver;
 import org.apache.maven.project.builder.ProjectBuilder;
+import org.apache.maven.project.builder.PomClassicDomainModel;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
@@ -205,14 +211,19 @@
                                              ArtifactRepository localRepository )
         throws ProjectBuildingException
     {
+        String artifactKey = artifact.getId();
+
         MavenProject project = null;
         if ( !Artifact.LATEST_VERSION.equals( artifact.getVersion() ) && !Artifact.RELEASE_VERSION.equals( artifact.getVersion() ) )
         {
+//            getLogger().debug( "Checking cache for project (in buildFromRepository): " + artifactKey );
             project = projectWorkspace.getProject( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() );
         }
 
         if ( project == null )
         {
+//            getLogger().debug( "Allowing buildFromRepository to proceed for: " + artifactKey );
+
             Model model = findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
 
             ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
@@ -220,6 +231,10 @@
             project = buildInternal( model, config, remoteArtifactRepositories, artifact.getFile(),
                                   false, false, false );
         }
+//        else
+//        {
+//            getLogger().debug( "Returning cached project: " + project );
+//        }
 
         return project;
     }
@@ -272,11 +287,17 @@
             }
         }
 
-        MavenProject project = new MavenProject( superModel, artifactFactory );
+        MavenProject project = new MavenProject( superModel );
+
+        String projectId = safeVersionlessKey( STANDALONE_SUPERPOM_GROUPID, STANDALONE_SUPERPOM_ARTIFACTID );
+
+        project.setManagedVersionMap(
+            createManagedVersionMap( projectId, superModel.getDependencyManagement(), null ) );
 
         getLogger().debug( "Activated the following profiles for standalone super-pom: " + activeProfiles );
         project.setActiveProfiles( activeProfiles );
 
+
         try
         {
             processProjectLogic( project, null, config, null, true, true );
@@ -381,11 +402,92 @@
         return new MavenProjectBuildingResult( project, result );
     }
 
+    // ----------------------------------------------------------------------
+    //
+    // ----------------------------------------------------------------------
+
+    private Map createManagedVersionMap( String projectId,
+                                         DependencyManagement dependencyManagement, File pomFile )
+        throws ProjectBuildingException
+    {
+        Map map = null;
+        List deps;
+        if ( ( dependencyManagement != null ) && ( ( deps = dependencyManagement.getDependencies() ) != null ) && ( deps.size() > 0 ) )
+        {
+            map = new ManagedVersionMap( map );
+
+            if ( getLogger().isDebugEnabled() )
+            {
+                getLogger().debug( "Adding managed dependencies for " + projectId );
+            }
+
+            for ( Iterator i = dependencyManagement.getDependencies().iterator(); i.hasNext(); )
+            {
+                Dependency d = (Dependency) i.next();
+
+                try
+                {
+                    VersionRange versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
+
+                    Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(), versionRange, d.getType(),
+                        d.getClassifier(), d.getScope(), d.isOptional() );
+
+                    if ( Artifact.SCOPE_SYSTEM.equals( d.getScope() ) && ( d.getSystemPath() != null ) )
+                    {
+                        artifact.setFile( new File( d.getSystemPath() ) );
+                    }
+
+                    if ( getLogger().isDebugEnabled() )
+                    {
+                        getLogger().debug( "  " + artifact );
+                    }
+
+                    // If the dependencyManagement section listed exclusions,
+                    // add them to the managed artifacts here so that transitive
+                    // dependencies will be excluded if necessary.
+
+                    if ( ( null != d.getExclusions() ) && !d.getExclusions().isEmpty() )
+                    {
+                        List exclusions = new ArrayList();
+
+                        for ( Iterator j = d.getExclusions().iterator(); j.hasNext(); )
+                        {
+                            Exclusion e = (Exclusion) j.next();
+
+                            exclusions.add( e.getGroupId() + ":" + e.getArtifactId() );
+                        }
+
+                        ExcludesArtifactFilter eaf = new ExcludesArtifactFilter( exclusions );
+
+                        artifact.setDependencyFilter( eaf );
+                    }
+                    else
+                    {
+                        artifact.setDependencyFilter( null );
+                    }
+
+                    map.put( d.getManagementKey(), artifact );
+                }
+                catch ( InvalidVersionSpecificationException e )
+                {
+                    throw new InvalidDependencyVersionException( projectId, d, pomFile, e );
+                }
+            }
+        }
+        else if ( map == null )
+        {
+            map = Collections.EMPTY_MAP;
+        }
+        return map;
+    }
+
     private MavenProject buildFromSourceFileInternal( File projectDescriptor,
                                                       ProjectBuilderConfiguration config )
         throws ProjectBuildingException
     {
-        MavenProject project = null;//projectWorkspace.getProject( projectDescriptor );
+//        getLogger().debug( "Checking cache-hit on project (in build*): " + projectDescriptor );
+
+        MavenProject project = projectWorkspace.getProject( projectDescriptor );
 
         if ( project == null )
         {
@@ -577,7 +679,7 @@
     {
         Model superModel = getSuperModel();
 
-        MavenProject superProject = new MavenProject( superModel, artifactFactory );
+        MavenProject superProject = new MavenProject( superModel );
 
         String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
 
@@ -720,9 +822,14 @@
             project.setFile( projectDescriptor );
         }
 
+//        getLogger().debug( "Caching project: " + project.getId() + " (also keyed by file: " + project.getFile() + ")" );
+
+
         projectWorkspace.storeProjectByCoordinate( project );
         projectWorkspace.storeProjectByFile( project );
 
+        project.setManagedVersionMap( createManagedVersionMap( projectId, project.getDependencyManagement(), projectDescriptor ) );
+
         return project;
     }
 
@@ -875,7 +982,7 @@
         Artifact parentArtifact = project.getParentArtifact();
 
         // We will return a different project object using the new model (hence the need to return a project, not just modify the parameter)
-        project = new MavenProject( model, artifactFactory );
+        project = new MavenProject( model );
 
         project.setOriginalModel( originalModel );
 
@@ -935,6 +1042,9 @@
 
         String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
 
+        // TODO: these aren't taking active project artifacts into consideration in the reactor
+        project.setPluginArtifacts( createPluginArtifacts( projectId, project.getBuildPlugins(), pomFile ) );
+
         project.setReportArtifacts( createReportArtifacts( projectId, project.getReportPlugins(), pomFile ) );
 
         project.setExtensionArtifacts( createExtensionArtifacts( projectId, project.getBuildExtensions(), pomFile ) );
@@ -999,13 +1109,518 @@
     public void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config )
         throws ModelInterpolationException
     {
-        new MavenProjectRestorer(pathTranslator, modelInterpolator, getLogger()).calculateConcreteState(project, config);
+        if ( project.isConcrete() )
+        {
+            return;
+        }
+
+        Build build = project.getBuild();
+        if ( build != null )
+        {
+            initResourceMergeIds( build.getResources() );
+            initResourceMergeIds( build.getTestResources() );
+        }
+
+        Model model = ModelUtils.cloneModel( project.getModel() );
+
+        File basedir = project.getBasedir();
+
+        model = modelInterpolator.interpolate( model, basedir, config, getLogger().isDebugEnabled() );
+
+        List originalInterpolatedCompileSourceRoots = interpolateListOfStrings( project.getCompileSourceRoots(),
+                                                                           model,
+                                                                           project.getBasedir(),
+                                                                           config );
+
+        project.preserveCompileSourceRoots( originalInterpolatedCompileSourceRoots );
+
+        project.setCompileSourceRoots( originalInterpolatedCompileSourceRoots == null ? null
+                        : translateListOfPaths( originalInterpolatedCompileSourceRoots, basedir ) );
+
+        List originalInterpolatedTestCompileSourceRoots = interpolateListOfStrings( project.getTestCompileSourceRoots(),
+                                                                               model,
+                                                                               project.getBasedir(),
+                                                                               config );
+
+        project.preserveTestCompileSourceRoots( originalInterpolatedTestCompileSourceRoots );
+        project.setTestCompileSourceRoots( originalInterpolatedTestCompileSourceRoots == null ? null
+                        : translateListOfPaths( originalInterpolatedTestCompileSourceRoots, basedir ) );
+
+        List originalInterpolatedScriptSourceRoots = interpolateListOfStrings( project.getScriptSourceRoots(),
+                                                                          model,
+                                                                          project.getBasedir(),
+                                                                          config );
+
+        project.preserveScriptSourceRoots( originalInterpolatedScriptSourceRoots );
+        project.setScriptSourceRoots( originalInterpolatedScriptSourceRoots == null ? null
+                        : translateListOfPaths( originalInterpolatedScriptSourceRoots, basedir ) );
+
+        Model model2 = ModelUtils.cloneModel( model );
+
+        pathTranslator.alignToBaseDirectory( model, basedir );
+
+        project.preserveBuild( model2.getBuild() );
+        project.setBuild( model.getBuild() );
+
+        calculateConcreteProjectReferences( project, config );
+
+        MavenProject executionProject = project.getExecutionProject();
+        if ( executionProject != null && executionProject != project )
+        {
+            calculateConcreteState( executionProject, config );
+        }
+
+        project.setConcrete( true );
+    }
+
+    private void initResourceMergeIds( List<Resource> resources )
+    {
+        if ( resources != null )
+        {
+            for ( Resource resource : resources )
+            {
+                resource.initMergeId();
+            }
+        }
+    }
+
+    private void calculateConcreteProjectReferences( MavenProject project,
+                                                     ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        Map projectRefs = project.getProjectReferences();
+
+        if ( projectRefs != null )
+        {
+            for ( Iterator it = projectRefs.values().iterator(); it.hasNext(); )
+            {
+                MavenProject reference = (MavenProject) it.next();
+                calculateConcreteState( reference, config );
+            }
+        }
+    }
+
+    private List translateListOfPaths( List paths, File basedir )
+    {
+        if ( paths == null )
+        {
+            return null;
+        }
+        else if ( basedir == null )
+        {
+            return paths;
+        }
+
+        List result = new ArrayList( paths.size() );
+        for ( Iterator it = paths.iterator(); it.hasNext(); )
+        {
+            String path = (String) it.next();
+
+            String aligned = pathTranslator.alignToBaseDirectory( path, basedir );
+
+            result.add( aligned );
+        }
+
+        return result;
     }
 
     public void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config )
         throws ModelInterpolationException
     {
-        new MavenProjectRestorer(pathTranslator, modelInterpolator, getLogger()).restoreDynamicState(project, config);
+        if ( !project.isConcrete() )
+        {
+            return;
+        }
+
+        restoreBuildRoots( project, config );
+        restoreModelBuildSection( project, config );
+
+        restoreDynamicProjectReferences( project, config );
+
+        MavenProject executionProject = project.getExecutionProject();
+        if ( executionProject != null && executionProject != project )
+        {
+            restoreDynamicState( executionProject, config );
+        }
+
+        project.setConcrete( false );
+    }
+
+    private void restoreDynamicProjectReferences( MavenProject project,
+                                                  ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        Map projectRefs = project.getProjectReferences();
+        if ( projectRefs != null )
+        {
+            for ( Iterator it = projectRefs.values().iterator(); it.hasNext(); )
+            {
+                MavenProject projectRef = (MavenProject) it.next();
+                restoreDynamicState( projectRef, config );
+            }
+        }
+    }
+
+    private void restoreBuildRoots( MavenProject project,
+                                    ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        project.setCompileSourceRoots( restoreListOfStrings( project.getDynamicCompileSourceRoots(),
+                                                             project.getOriginalInterpolatedCompileSourceRoots(),
+                                                             project.getCompileSourceRoots(),
+                                                             project,
+                                                             config ) );
+
+        project.setTestCompileSourceRoots( restoreListOfStrings( project.getDynamicTestCompileSourceRoots(),
+                                                                 project.getOriginalInterpolatedTestCompileSourceRoots(),
+                                                                 project.getTestCompileSourceRoots(),
+                                                                 project,
+                                                                 config ) );
+
+        project.setScriptSourceRoots( restoreListOfStrings( project.getDynamicScriptSourceRoots(),
+                                                            project.getOriginalInterpolatedScriptSourceRoots(),
+                                                            project.getScriptSourceRoots(),
+                                                            project,
+                                                            config ) );
+
+        project.clearRestorableRoots();
+    }
+
+    private void restoreModelBuildSection( MavenProject project,
+                                           ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        Build changedBuild = project.getBuild();
+        Build dynamicBuild = project.getDynamicBuild();
+        Build originalInterpolatedBuild = project.getOriginalInterpolatedBuild();
+
+        dynamicBuild.setResources( restoreResources( dynamicBuild.getResources(),
+                                                         originalInterpolatedBuild.getResources(),
+                                                         changedBuild.getResources(),
+                                                         project,
+                                                         config ) );
+
+        dynamicBuild.setTestResources( restoreResources( dynamicBuild.getTestResources(),
+                                                         originalInterpolatedBuild.getTestResources(),
+                                                         changedBuild.getTestResources(),
+                                                         project,
+                                                         config ) );
+
+        dynamicBuild.setFilters( restoreListOfStrings( dynamicBuild.getFilters(),
+                                                           originalInterpolatedBuild.getFilters(),
+                                                           changedBuild.getFilters(),
+                                                           project,
+                                                           config ) );
+
+        dynamicBuild.setFinalName( restoreString( dynamicBuild.getFinalName(),
+                                                  originalInterpolatedBuild.getFinalName(),
+                                                  changedBuild.getFinalName(),
+                                                  project,
+                                                  config ) );
+
+        dynamicBuild.setDefaultGoal( restoreString( dynamicBuild.getDefaultGoal(),
+                                                  originalInterpolatedBuild.getDefaultGoal(),
+                                                  changedBuild.getDefaultGoal(),
+                                                  project,
+                                                  config ) );
+
+        dynamicBuild.setSourceDirectory( restoreString( dynamicBuild.getSourceDirectory(),
+                                                            originalInterpolatedBuild.getSourceDirectory(),
+                                                            changedBuild.getSourceDirectory(),
+                                                            project,
+                                                            config ) );
+
+        dynamicBuild.setTestSourceDirectory( restoreString( dynamicBuild.getTestSourceDirectory(),
+                                                                originalInterpolatedBuild.getTestSourceDirectory(),
+                                                                changedBuild.getTestSourceDirectory(),
+                                                                project,
+                                                                config ) );
+
+        dynamicBuild.setScriptSourceDirectory( restoreString( dynamicBuild.getScriptSourceDirectory(),
+                                                                  originalInterpolatedBuild.getScriptSourceDirectory(),
+                                                                  changedBuild.getScriptSourceDirectory(),
+                                                                  project,
+                                                                  config ) );
+
+        dynamicBuild.setOutputDirectory( restoreString( dynamicBuild.getOutputDirectory(),
+                                                            originalInterpolatedBuild.getOutputDirectory(),
+                                                            changedBuild.getOutputDirectory(),
+                                                            project,
+                                                            config ) );
+
+        dynamicBuild.setTestOutputDirectory( restoreString( dynamicBuild.getTestOutputDirectory(),
+                                                                originalInterpolatedBuild.getTestOutputDirectory(),
+                                                                changedBuild.getTestOutputDirectory(),
+                                                                project,
+                                                                config ) );
+
+        dynamicBuild.setDirectory( restoreString( dynamicBuild.getDirectory(),
+                                                      originalInterpolatedBuild.getDirectory(),
+                                                      changedBuild.getDirectory(),
+                                                      project,
+                                                      config ) );
+
+        project.setBuild( dynamicBuild );
+
+        project.clearRestorableBuild();
+    }
+
+    private List interpolateListOfStrings( List originalStrings,
+                                           Model model,
+                                           File projectDir,
+                                           ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        if ( originalStrings == null )
+        {
+            return null;
+        }
+
+        List result = new ArrayList();
+
+        for ( Iterator it = originalStrings.iterator(); it.hasNext(); )
+        {
+            String original = (String) it.next();
+            String interpolated = modelInterpolator.interpolate( original, model, projectDir, config, getLogger().isDebugEnabled() );
+
+            result.add( interpolated );
+        }
+
+        return result;
+    }
+
+    private String restoreString( String originalString,
+                                      String originalInterpolatedString,
+                                      String changedString,
+                                      MavenProject project,
+                                      ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        if ( originalString == null )
+        {
+            return changedString;
+        }
+        else if ( changedString == null )
+        {
+            return originalString;
+        }
+
+        Model model = project.getModel();
+
+        String relativeChangedString;
+        if ( project.getBasedir() != null )
+        {
+            relativeChangedString = pathTranslator.unalignFromBaseDirectory( changedString, project.getBasedir() );
+        }
+        else
+        {
+            relativeChangedString = changedString;
+        }
+
+        String interpolatedOriginal = modelInterpolator.interpolate( originalString, model, project.getBasedir(), config, getLogger().isDebugEnabled() );
+        String interpolatedOriginal2 = modelInterpolator.interpolate( originalInterpolatedString,
+                                                                 model,
+                                                                 project.getBasedir(), config, getLogger().isDebugEnabled() );
+
+        String interpolatedChanged = modelInterpolator.interpolate( changedString, model, project.getBasedir(), config, getLogger().isDebugEnabled() );
+        String relativeInterpolatedChanged = modelInterpolator.interpolate( relativeChangedString, model, project.getBasedir(), config, getLogger().isDebugEnabled() );
+
+        if ( interpolatedOriginal.equals( interpolatedChanged )
+             || interpolatedOriginal2.equals( interpolatedChanged ) )
+        {
+            return originalString;
+        }
+        else if ( interpolatedOriginal.equals( relativeInterpolatedChanged )
+                        || interpolatedOriginal2.equals( relativeInterpolatedChanged ) )
+       {
+           return originalString;
+       }
+
+        return relativeChangedString;
+    }
+
+    private List restoreListOfStrings( List originalStrings,
+                                           List originalInterpolatedStrings,
+                                           List changedStrings,
+                                           MavenProject project,
+                                           ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        if ( originalStrings == null )
+        {
+            return changedStrings;
+        }
+        else if ( changedStrings == null )
+        {
+            return originalStrings;
+        }
+
+        List result = new ArrayList();
+
+        Map orig = new HashMap();
+        for ( int idx = 0; idx < originalStrings.size(); idx++ )
+        {
+            String[] permutations = new String[2];
+
+            permutations[0] = (String) originalInterpolatedStrings.get( idx );
+            permutations[1] = (String) originalStrings.get( idx );
+
+            orig.put( permutations[0], permutations );
+        }
+
+        for ( Iterator it = changedStrings.iterator(); it.hasNext(); )
+        {
+            String changedString = (String) it.next();
+            String relativeChangedString;
+            if ( project.getBasedir() != null )
+            {
+                relativeChangedString = pathTranslator.unalignFromBaseDirectory( changedString, project.getBasedir() );
+            }
+            else
+            {
+                relativeChangedString = changedString;
+            }
+
+            String interpolated = modelInterpolator.interpolate( changedString,
+                                                                 project.getModel(),
+                                                                 project.getBasedir(),
+                                                                 config,
+                                                                 getLogger().isDebugEnabled() );
+
+            String relativeInterpolated = modelInterpolator.interpolate( relativeChangedString,
+                                                                         project.getModel(),
+                                                                         project.getBasedir(),
+                                                                         config,
+                                                                         getLogger().isDebugEnabled() );
+
+            String[] original = (String[]) orig.get( interpolated );
+            if ( original == null )
+            {
+                original = (String[]) orig.get( relativeInterpolated );
+            }
+
+            if ( original == null )
+            {
+                result.add( relativeChangedString );
+            }
+            else
+            {
+                result.add( original[1] );
+            }
+        }
+
+        return result;
+    }
+
+    // TODO: Convert this to use the mergeId on each resource...
+    private List restoreResources( List<Resource> originalResources,
+                                       List<Resource> originalInterpolatedResources,
+                                       List<Resource> changedResources,
+                                       MavenProject project,
+                                       ProjectBuilderConfiguration config )
+        throws ModelInterpolationException
+    {
+        if ( originalResources == null || changedResources == null )
+        {
+            return originalResources;
+        }
+
+        List<Resource> result = new ArrayList<Resource>();
+
+        Map<String, Resource[]> originalResourcesByMergeId = new HashMap<String, Resource[]>();
+        for ( int idx = 0; idx < originalResources.size(); idx++ )
+        {
+            Resource[] permutations = new Resource[2];
+
+            permutations[0] = originalInterpolatedResources.get( idx );
+            permutations[1] = originalResources.get( idx );
+
+            originalResourcesByMergeId.put( permutations[0].getMergeId(), permutations );
+        }
+
+        for ( Resource resource : changedResources )
+        {
+            String mergeId = resource.getMergeId();
+            if ( mergeId == null || !originalResourcesByMergeId.containsKey( mergeId ) )
+            {
+                result.add( resource );
+            }
+            else
+            {
+                Resource originalInterpolatedResource = originalResourcesByMergeId.get( mergeId )[0];
+                Resource originalResource = originalResourcesByMergeId.get( mergeId )[1];
+
+                String dir = modelInterpolator.interpolate( resource.getDirectory(), project.getModel(), project.getBasedir(), config, getLogger().isDebugEnabled() );
+                String oDir = originalInterpolatedResource.getDirectory();
+
+                if ( !dir.equals( oDir ) )
+                {
+                    originalResource.setDirectory( pathTranslator.unalignFromBaseDirectory( dir, project.getBasedir() ) );
+                }
+
+                if ( resource.getTargetPath() != null )
+                {
+                    String target = modelInterpolator.interpolate( resource.getTargetPath(), project.getModel(), project.getBasedir(), config, getLogger().isDebugEnabled() );
+
+                    String oTarget = originalInterpolatedResource.getTargetPath();
+
+                    if ( !target.equals( oTarget ) )
+                    {
+                        originalResource.setTargetPath( pathTranslator.unalignFromBaseDirectory( target, project.getBasedir() ) );
+                    }
+                }
+
+                originalResource.setFiltering( resource.isFiltering() );
+
+                originalResource.setExcludes( collectRestoredListOfPatterns( resource.getExcludes(),
+                                                                             originalResource.getExcludes(),
+                                                                             originalInterpolatedResource.getExcludes() ) );
+
+                originalResource.setIncludes( collectRestoredListOfPatterns( resource.getIncludes(),
+                                                                             originalResource.getIncludes(),
+                                                                             originalInterpolatedResource.getIncludes() ) );
+
+                result.add( originalResource );
+            }
+        }
+
+        return result;
+    }
+
+    private List<String> collectRestoredListOfPatterns( List<String> patterns,
+                                                        List<String> originalPatterns,
+                                                        List<String> originalInterpolatedPatterns )
+    {
+        LinkedHashSet<String> collectedPatterns = new LinkedHashSet<String>();
+
+        collectedPatterns.addAll( originalPatterns );
+
+        for ( String pattern : patterns )
+        {
+            if ( !originalInterpolatedPatterns.contains( pattern ) )
+            {
+                collectedPatterns.add( pattern );
+            }
+        }
+
+        return (List<String>) ( collectedPatterns.isEmpty() ? Collections.emptyList()
+                        : new ArrayList<String>( collectedPatterns ) );
+    }
+
+    private void validateModel( Model model,
+                                File pomFile )
+        throws InvalidProjectModelException
+    {
+        // Must validate before artifact construction to make sure dependencies are good
+        ModelValidationResult validationResult = validator.validate( model );
+
+        String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
+
+        if ( validationResult.getMessageCount() > 0 )
+        {
+            throw new InvalidProjectModelException( projectId, "Failed to validate POM", pomFile,
+                validationResult );
+        }
     }
 
     /**
@@ -1049,7 +1664,7 @@
 
             File currentPom = it.getPOMFile();
 
-            MavenProject project = new MavenProject( currentModel, artifactFactory );
+            MavenProject project = new MavenProject( currentModel );
             project.setFile( currentPom );
 
             if ( lastProject != null )
@@ -1214,6 +1829,70 @@
     }
 
     /**
+     * @deprecated use {@link #createPluginArtifacts(String, List, File)}
+     * @param projectId
+     * @param plugins
+     * @param pomLocation absolute path of pom file
+     * @return
+     * @throws ProjectBuildingException
+     */
+    @Deprecated
+    protected Set createPluginArtifacts( String projectId,
+                                         List plugins, String pomLocation )
+        throws ProjectBuildingException
+    {
+        return createPluginArtifacts( projectId, plugins, new File( pomLocation ) );
+    }
+
+    /**
+     *
+     * @param projectId
+     * @param plugins
+     * @param pomLocation pom file
+     * @return
+     * @throws ProjectBuildingException
+     */
+    protected Set createPluginArtifacts( String projectId,
+                                         List plugins, File pomLocation )
+        throws ProjectBuildingException
+    {
+        Set pluginArtifacts = new HashSet();
+
+        for ( Iterator i = plugins.iterator(); i.hasNext(); )
+        {
+            Plugin p = (Plugin) i.next();
+
+            String version;
+            if ( StringUtils.isEmpty( p.getVersion() ) )
+            {
+                version = "RELEASE";
+            }
+            else
+            {
+                version = p.getVersion();
+            }
+
+            Artifact artifact;
+            try
+            {
+                artifact = artifactFactory.createPluginArtifact( p.getGroupId(), p.getArtifactId(),
+                    VersionRange.createFromVersionSpec( version ) );
+            }
+            catch ( InvalidVersionSpecificationException e )
+            {
+                throw new InvalidProjectVersionException( projectId, "Plugin: " + p.getKey(), version, pomLocation, e );
+            }
+
+            if ( artifact != null )
+            {
+                pluginArtifacts.add( artifact );
+            }
+        }
+
+        return pluginArtifacts;
+    }
+
+    /**
      * @deprecated use {@link #createReportArtifacts(String, List, File)}
      * @param projectId
      * @param reports
@@ -1407,7 +2086,7 @@
        MavenProject mavenProject;
        try {
            mavenProject = projectBuilder.buildFromLocalPath(new FileInputStream(projectDescriptor),
-                   null, null, null, resolver,
+                   null, null, resolver,
                    projectDescriptor.getParentFile());
        } catch (IOException e) {
            e.printStackTrace();
@@ -1417,20 +2096,4 @@
       return mavenProject.getModel();
 
    }
-
-    private void validateModel( Model model,
-                                File pomFile )
-        throws InvalidProjectModelException
-    {
-        // Must validate before artifact construction to make sure dependencies are good
-        ModelValidationResult validationResult = validator.validate( model );
-
-        String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
-
-        if ( validationResult.getMessageCount() > 0 )
-        {
-            throw new InvalidProjectModelException( projectId, "Failed to validate POM", pomFile,
-                validationResult );
-        }
-    }
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=685575&r1=685574&r2=685575&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 Wed Aug 13 07:47:51 2008
@@ -25,22 +25,46 @@
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
 import org.apache.maven.artifact.versioning.ManagedVersionMap;
-import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.model.*;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.CiManagement;
+import org.apache.maven.model.Contributor;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Developer;
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.IssueManagement;
+import org.apache.maven.model.License;
+import org.apache.maven.model.MailingList;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Organization;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginExecution;
+import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.Prerequisites;
+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.ActiveProjectArtifact;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.artifact.MavenMetadataSource;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.io.IOException;
 import java.io.Writer;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.Stack;
 
 /**
  * The concern of the project is provide runtime values based on the model. <p/>
@@ -129,8 +153,6 @@
 
     private Stack previousExecutionProjects = new Stack();
 
-    private ArtifactFactory artifactFactory;
-
     public MavenProject()
     {
         Model model = new Model();
@@ -147,11 +169,6 @@
         setModel( model );
     }
 
-    public MavenProject(Model model, ArtifactFactory artifactFactory) {
-        setModel( model );
-        this.artifactFactory = artifactFactory;
-    }
-
     /**
      * @deprecated use {@link #clone()} so subclasses can provide a copy of the same class
      */
@@ -179,10 +196,10 @@
             setArtifacts( Collections.unmodifiableSet( project.getArtifacts() ) );
         }
 
-    //    if ( project.getPluginArtifacts() != null )
-    //    {
-           // setPluginArtifacts( Collections.unmodifiableSet( project.getPluginArtifacts() ) );
-      //  }
+        if ( project.getPluginArtifacts() != null )
+        {
+            setPluginArtifacts( Collections.unmodifiableSet( project.getPluginArtifacts() ) );
+        }
 
         if ( project.getReportArtifacts() != null )
         {
@@ -1145,53 +1162,25 @@
         return artifactMap;
     }
 
-    public Set getPluginArtifacts()
+    public void setPluginArtifacts( Set pluginArtifacts )
     {
-        if(pluginArtifacts != null) {
-            return pluginArtifacts;
-        }
-        Set pa = new HashSet();
-        if(artifactFactory != null) {
-            List plugins = getBuildPlugins();
-            for ( Iterator i = plugins.iterator(); i.hasNext(); )
-            {
-                Plugin p = (Plugin) i.next();
-
-                String version;
-                if ( StringUtils.isEmpty( p.getVersion() ) )
-                {
-                    version = "RELEASE";
-                }
-                else
-                {
-                    version = p.getVersion();
-                }
+        this.pluginArtifacts = pluginArtifacts;
 
-                Artifact artifact;
-                try
-                {
-                    artifact = artifactFactory.createPluginArtifact( p.getGroupId(), p.getArtifactId(),
-                        VersionRange.createFromVersionSpec( version ) );
-                }
-                catch ( InvalidVersionSpecificationException e )
-                {
-                    return pa;
-                }
-
-                if ( artifact != null )
-                {
-                    pa.add( artifact );
-                }
-            }
-        }
-        pluginArtifacts = pa;
         pluginArtifactMap = null;
+    }
+
+    public Set getPluginArtifacts()
+    {
         return pluginArtifacts;
     }
 
     public Map getPluginArtifactMap()
     {
-        pluginArtifactMap = ArtifactUtils.artifactMapByVersionlessId( getPluginArtifacts() );
+        if ( pluginArtifactMap == null )
+        {
+            pluginArtifactMap = ArtifactUtils.artifactMapByVersionlessId( getPluginArtifacts() );
+        }
+
         return pluginArtifactMap;
     }
 
@@ -1578,72 +1567,6 @@
 
     public Map getManagedVersionMap()
     {
-        if(managedVersionMap != null) {
-            return managedVersionMap;
-        }
-        
-        Map map = null;
-        if( artifactFactory != null ) {
-
-            List deps;
-            DependencyManagement dependencyManagement = getDependencyManagement();
-            if ( ( dependencyManagement != null ) && ( ( deps = dependencyManagement.getDependencies() ) != null ) && ( deps.size() > 0 ) )
-            {
-                map = new ManagedVersionMap( map );
-                for ( Iterator i = dependencyManagement.getDependencies().iterator(); i.hasNext(); )
-                {
-                    Dependency d = (Dependency) i.next();
-
-                    try
-                    {
-                        VersionRange versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
-
-                        Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(), versionRange, d.getType(),
-                            d.getClassifier(), d.getScope(), d.isOptional() );
-
-                        if ( Artifact.SCOPE_SYSTEM.equals( d.getScope() ) && ( d.getSystemPath() != null ) )
-                        {
-                            artifact.setFile( new File( d.getSystemPath() ) );
-                        }
-
-                        // If the dependencyManagement section listed exclusions,
-                        // add them to the managed artifacts here so that transitive
-                        // dependencies will be excluded if necessary.
-
-                        if ( ( null != d.getExclusions() ) && !d.getExclusions().isEmpty() )
-                        {
-                            List exclusions = new ArrayList();
-
-                            for ( Iterator j = d.getExclusions().iterator(); j.hasNext(); )
-                            {
-                                Exclusion e = (Exclusion) j.next();
-
-                                exclusions.add( e.getGroupId() + ":" + e.getArtifactId() );
-                            }
-
-                            ExcludesArtifactFilter eaf = new ExcludesArtifactFilter( exclusions );
-
-                            artifact.setDependencyFilter( eaf );
-                        }
-                        else
-                        {
-                            artifact.setDependencyFilter( null );
-                        }
-
-                        map.put( d.getManagementKey(), artifact );
-                    }
-                    catch ( InvalidVersionSpecificationException e )
-                    {
-                        map = Collections.EMPTY_MAP;
-                    }
-                }
-            }
-            else if ( map == null )
-            {
-                map = Collections.EMPTY_MAP;
-            }
-        }
-        managedVersionMap = map;
         return managedVersionMap;
     }
 

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java?rev=685575&r1=685574&r2=685575&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java Wed Aug 13 07:47:51 2008
@@ -36,8 +36,7 @@
 
     private static final Collection<String> uris = Collections.unmodifiableList( Arrays.asList(
 
-        ProjectUri.DependencyManagement.Dependencies.Dependency.xUri,
-        ProjectUri.Dependencies.Dependency.xUri,
+        ProjectUri.DependencyManagement.Dependencies.Dependency.xUri, ProjectUri.Dependencies.Dependency.xUri,
 
         ProjectUri.Build.PluginManagement.Plugins.Plugin.xUri,
         ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.Dependency.xUri,

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=685575&r1=685574&r2=685575&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 Wed Aug 13 07:47:51 2008
@@ -20,13 +20,24 @@
  */
 
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.shared.model.*;
+import org.apache.maven.shared.model.DomainModel;
+import org.apache.maven.shared.model.ModelContainer;
+import org.apache.maven.shared.model.ModelDataSource;
+import org.apache.maven.shared.model.ModelMarshaller;
+import org.apache.maven.shared.model.ModelProperty;
+import org.apache.maven.shared.model.ModelTransformer;
 import org.apache.maven.shared.model.impl.DefaultModelDataSource;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.IOException;
 import java.io.StringReader;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.Map;
+import java.util.HashMap;
 
 /**
  * Provides methods for transforming model properties into a domain model for the pom classic format and vice versa.
@@ -38,7 +49,18 @@
     /**
      * The URIs this tranformer supports
      */
-    private static Set<String> uris = new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
+    private final Set<String> uris;
+
+    private static Map<String, List<ModelProperty>> cache = new HashMap<String, List<ModelProperty>>();
+
+    //private static List<DomainModel> cache = new ArrayList<DomainModel>();
+
+    /**
+     * Default constructor
+     */
+    public PomClassicTransformer()
+    {
+        this.uris = new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
                                                         ProjectUri.Build.PluginManagement.Plugins.xUri,
                                                         ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.xUri,
                                                         ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.Dependency.Exclusions.xUri,
@@ -91,21 +113,7 @@
                                                         "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/dependencies/dependency/exclusions#collection",
                                                         "http://apache.org/maven/project/profiles/profile/dependencyManagement/dependencies/dependency/exclusions#collection",
                                                         "http://apache.org/maven/project/profiles/profile/reporting/plugins/plugin/reportSets#collection",
-                                                        "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/executions#collection" ));
-
-    private static Map<String, List<ModelProperty>> cache = new HashMap<String, List<ModelProperty>>();
-
-    private Collection<Profile> profiles;
-
-
-    //private static List<DomainModel> cache = new ArrayList<DomainModel>();
-
-    /**
-     * Default constructor
-     */
-    public PomClassicTransformer(Collection<Profile> profiles)
-    {
-        this.profiles = profiles;
+                                                        "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/executions#collection" ) );
     }
 
     /**
@@ -132,37 +140,6 @@
             }
         }
 
-        //dependency management
-        ModelDataSource source = new DefaultModelDataSource();
-        source.init( props, Arrays.asList( new ArtifactModelContainerFactory(), new IdModelContainerFactory() ) );
-
-        for(ModelContainer dependencyContainer : source.queryFor( ProjectUri.Dependencies.Dependency.xUri)) {
-                for ( ModelContainer managementContainer : source.queryFor( ProjectUri.DependencyManagement.Dependencies.Dependency.xUri) )
-                {
-                    managementContainer = new ArtifactModelContainerFactory().create(transformDependencyManagement(managementContainer.getProperties()));
-                    ModelContainerAction action = dependencyContainer.containerAction(managementContainer);
-                    if(action.equals(ModelContainerAction.JOIN) || action.equals(ModelContainerAction.DELETE)) {
-                        source.join(dependencyContainer, managementContainer);
-                    }
-                }
-        }
-
-        for(ModelContainer dependencyContainer : source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri)) {
-                for ( ModelContainer managementContainer : source.queryFor( ProjectUri.Build.PluginManagement.Plugins.Plugin.xUri) )
-                {
-                    managementContainer = new ArtifactModelContainerFactory().create(transformPluginManagement(managementContainer.getProperties()));
-                    ModelContainerAction action = dependencyContainer.containerAction(managementContainer);
-                    if(action.equals(ModelContainerAction.JOIN) || action.equals(ModelContainerAction.DELETE)) {
-                        source.join(dependencyContainer, managementContainer);
-                    }
-                }
-        }        
-
-        props = source.getModelProperties();
-      //   for(ModelProperty mp : props) {
-       //      System.out.println("-" + mp);
-      //   }
-
         String xml = null;
         try
         {
@@ -173,7 +150,7 @@
         {
             throw new IOException( e + ":\r\n" + xml );
         }
-    }
+        }
 
     /**
      * @see ModelTransformer#transformToModelProperties(java.util.List)
@@ -208,7 +185,6 @@
 
             List<ModelProperty> tmp = ModelMarshaller.marshallXmlToModelProperties(
                 ( (PomClassicDomainModel) domainModel ).getInputStream(), ProjectUri.baseUri, uris );
-
             List clearedProperties = new ArrayList<ModelProperty>();
 
             //Missing Version Rule
@@ -372,7 +348,7 @@
             tmp.removeAll( clearedProperties );
             modelProperties.addAll( tmp );
 
-            if ( domainModels.indexOf( domainModel ) == 0 )
+            if ( domainModels.indexOf( domainModel ) > 0 )
             {
                 //cache.put( pomDomainModel.getId(), modelProperties );
             }
@@ -386,12 +362,7 @@
             }
                        */
         }
-       return modelProperties;
-      //  return ModelTransformerContext.transformModelProperties(modelProperties, Arrays.asList(
-      //          new ProfileModelPropertyTransformer(),
-      //          new PluginManagementModelPropertyTransformer(),
-      //          new DependencyManagementModelPropertyTransformer()
-      //          ));
+        return modelProperties;
     }
 
     /**
@@ -443,46 +414,5 @@
         }
         return null;
     }
-
-        private static List<ModelProperty> transformDependencyManagement(List<ModelProperty> modelProperties) {
-            List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
-            for(ModelProperty mp : modelProperties) {
-                if(mp.getUri().startsWith(ProjectUri.DependencyManagement.xUri))
-                {
-                    transformedProperties.add(new ModelProperty(
-                            mp.getUri().replace(ProjectUri.DependencyManagement.xUri, ProjectUri.xUri), mp.getValue()));
-                }
-            }
-            return transformedProperties;
-        }
-
-        public static List<ModelProperty> transformPluginManagement(List<ModelProperty> modelProperties) {
-            List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
-            for(ModelProperty mp : modelProperties) {
-                if(mp.getUri().startsWith(ProjectUri.Build.PluginManagement.xUri))
-                {
-                    transformedProperties.add(new ModelProperty(
-                            mp.getUri().replace(ProjectUri.Build.PluginManagement.xUri, ProjectUri.Build.xUri), mp.getValue()));
-                }
-            }
-            return transformedProperties;
-        }
-
- /*
-    private static class ProfileModelPropertyTransformer implements ModelPropertyTransformer {
-        public List<ModelProperty> transform(List<ModelProperty> modelProperties) {
-            List<ModelProperty> properties = new ArrayList<ModelProperty>(modelProperties);
-            List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
-            for(ModelProperty mp : modelProperties) {
-                String uri = mp.getUri().replace("profiles#collection/profile", "");
-            }
-            return properties;
-        }
-
-        public String getBaseUri() {
-            return ProjectUri.baseUri;
-        }
-    }
-    */
 }
 

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java?rev=685575&r1=685574&r2=685575&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java Wed Aug 13 07:47:51 2008
@@ -22,7 +22,6 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.model.InterpolatorProperty;
-import org.apache.maven.shared.model.ImportModel;
 
 import java.io.File;
 import java.io.IOException;
@@ -50,7 +49,6 @@
      * @throws IOException if there is a problem in the construction of the maven project
      */
     MavenProject buildFromLocalPath( InputStream pom, List<Model> inheritedModels,
-                                     Collection<ImportModel> importModels,
                                      Collection<InterpolatorProperty> interpolatorProperties,
                                      PomArtifactResolver resolver, File baseDirectory )
         throws IOException;

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=685575&r1=685574&r2=685575&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Wed Aug 13 07:47:51 2008
@@ -35,7 +35,6 @@
 import org.apache.maven.shared.model.DomainModel;
 import org.apache.maven.shared.model.InterpolatorProperty;
 import org.apache.maven.shared.model.ModelTransformerContext;
-import org.apache.maven.shared.model.ImportModel;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
@@ -87,10 +86,9 @@
     }
 
     /**
-     * @see ProjectBuilder#buildFromLocalPath(java.io.InputStream, java.util.List, java.util.Collection, java.util.Collection, org.apache.maven.project.builder.PomArtifactResolver, java.io.File)
+     * @see ProjectBuilder#buildFromLocalPath(java.io.InputStream, java.util.List, java.util.Collection, org.apache.maven.project.builder.PomArtifactResolver, java.io.File)
      */
     public MavenProject buildFromLocalPath( InputStream pom, List<Model> inheritedModels,
-                                            Collection<ImportModel> importModels,
                                             Collection<InterpolatorProperty> interpolatorProperties,
                                             PomArtifactResolver resolver, File projectDirectory )
         throws IOException
@@ -151,16 +149,14 @@
             domainModels.add( new PomClassicDomainModel( model ) );
         }
 
-        PomClassicTransformer transformer = new PomClassicTransformer(null);
+        PomClassicTransformer transformer = new PomClassicTransformer();
         ModelTransformerContext ctx = new ModelTransformerContext(
             Arrays.asList( new ArtifactModelContainerFactory(), new IdModelContainerFactory() ) );
 
         PomClassicDomainModel transformedDomainModel =
-            ( (PomClassicDomainModel) ctx.transform( domainModels, transformer, transformer, importModels, properties ) );
-
-
+            ( (PomClassicDomainModel) ctx.transform( domainModels, transformer, transformer, null, properties ) );
         Model model = transformedDomainModel.getModel();
-        return new MavenProject( model, artifactFactory );
+        return new MavenProject( model );
     }
 
     private boolean isParentLocal( Parent parent, File projectDirectory )