You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/12 14:47:34 UTC

svn commit: r280333 - in /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project: DefaultMavenProjectBuilder.java MavenProject.java

Author: brett
Date: Mon Sep 12 05:47:29 2005
New Revision: 280333

URL: http://svn.apache.org/viewcvs?rev=280333&view=rev
Log:
PR: MNG-680
set file in USD, don't return a dummy basedir if it is in the repository

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/MavenProject.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=280333&r1=280332&r2=280333&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 12 05:47:29 2005
@@ -518,7 +518,7 @@
 
         try
         {
-            project = processProjectLogic( pomLocation, project, repositories, profileManager );
+            project = processProjectLogic( pomLocation, project, repositories, profileManager, projectDir );
         }
         catch ( ModelInterpolationException e )
         {
@@ -544,7 +544,7 @@
      * and projects are not cached or reused
      */
     private MavenProject processProjectLogic( String pomLocation, MavenProject project, List remoteRepositories,
-                                              ProfileManager profileMgr )
+                                              ProfileManager profileMgr, File projectDir )
         throws ProjectBuildingException, ModelInterpolationException
     {
         Model model = project.getModel();
@@ -571,17 +571,9 @@
         // We don't need all the project methods that are added over those in the model, but we do need basedir
         Map context = new HashMap( System.getProperties() );
 
-        // FIXME: why is project.file not filled in here? MavenProject.getBasedir() defaults
-        // to the current directory which causes all sorts of problems; might be better off
-        // setting that to null and just filling in the project file name and removing this.
-
-        if ( pomLocation != null && new File( pomLocation ).getParent() != null )
-        {
-            context.put( "basedir", new File( pomLocation ).getParent() );
-        }
-        else
+        if ( projectDir != null )
         {
-            context.put( "basedir", project.getBasedir() );
+            context.put( "basedir", projectDir.getAbsolutePath() );
         }
 
         model = modelInterpolator.interpolate( model, context );
@@ -717,7 +709,7 @@
             model = getCachedModel( parentModel.getGroupId(), parentModel.getArtifactId(), parentModel.getVersion() );
 
             // the only way this will have a value is if we find the parent on disk...
-            File parentProjectDir = null;
+            File parentDescriptor = null;
 
             String parentRelativePath = parentModel.getRelativePath();
 
@@ -725,7 +717,7 @@
             // <relativePath/>
             if ( model == null && projectDir != null && StringUtils.isNotEmpty( parentRelativePath ) )
             {
-                File parentDescriptor = new File( projectDir, parentRelativePath );
+                parentDescriptor = new File( projectDir, parentRelativePath );
 
                 try
                 {
@@ -743,16 +735,16 @@
                     Model candidateParent = readModel( parentDescriptor );
 
                     // this works because parent-version is still required...
+                    boolean versionMatches = parentModel.getVersion().equals( candidateParent.getVersion() );
+                    if ( !versionMatches && candidateParent.getParent() != null )
+                    {
+                        versionMatches = parentModel.getVersion().equals( candidateParent.getParent().getVersion() );
+                    }
                     if ( parentModel.getGroupId().equals( candidateParent.getGroupId() ) &&
-                        parentModel.getArtifactId().equals( candidateParent.getArtifactId() ) && (
-                        parentModel.getVersion().equals( candidateParent.getVersion() ) || (
-                            candidateParent.getParent() != null &&
-                                parentModel.getVersion().equals( candidateParent.getParent().getVersion() ) ) ) )
+                        parentModel.getArtifactId().equals( candidateParent.getArtifactId() ) && versionMatches )
                     {
                         model = candidateParent;
 
-                        parentProjectDir = parentDescriptor.getParentFile();
-
                         getLogger().debug( "Using parent-POM from the project hierarchy at: \'" +
                             parentModel.getRelativePath() + "\' for project: " + project.getId() );
                     }
@@ -790,8 +782,14 @@
                 model = findModelFromRepository( parentArtifact, remoteRepositories, localRepository );
             }
 
+            File parentProjectDir = null;
+            if ( parentDescriptor != null )
+            {
+                parentProjectDir = parentDescriptor.getParentFile();
+            }
             MavenProject parent = assembleLineage( model, lineage, localRepository, parentProjectDir,
                                                    parentSearchRepositories, aggregatedRemoteWagonRepositories );
+            parent.setFile( parentDescriptor );
 
             project.setParent( parent );
 
@@ -1098,11 +1096,12 @@
 
         try
         {
-            project.setFile( new File( ".", "pom.xml" ) );
+            // TODO: remove - confirm this was a correct decision
+//            project.setFile( new File( ".", "pom.xml" ) );
 
             List remoteRepositories = buildArtifactRepositories( superModel );
 
-            project = processProjectLogic( "<Super-POM>", project, remoteRepositories, null );
+            project = processProjectLogic( "<Super-POM>", project, remoteRepositories, null, null );
 
             return project;
         }

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=280333&r1=280332&r2=280333&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 Sep 12 05:47:29 2005
@@ -245,7 +245,8 @@
         }
         else
         {
-            return new File( System.getProperty( "user.dir" ) );
+            // repository based POM
+            return null;
         }
     }
 
@@ -342,8 +343,8 @@
             if ( isAddedToClasspath( a ) )
             {
                 // TODO: let the scope handler deal with this
-                if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() )
-                    || Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+                if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() ) ||
+                    Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
                 {
                     String refId = getProjectReferenceId( a.getGroupId(), a.getArtifactId() );
                     MavenProject project = (MavenProject) projectReferences.get( refId );
@@ -378,8 +379,8 @@
             if ( isAddedToClasspath( a ) )
             {
                 // TODO: let the scope handler deal with this
-                if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() )
-                    || Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+                if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() ) ||
+                    Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
                 {
                     list.add( a );
                 }
@@ -404,8 +405,8 @@
             Artifact a = (Artifact) i.next();
 
             // TODO: let the scope handler deal with this
-            if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() )
-                || Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+            if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() ) ||
+                Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
             {
                 Dependency dependency = new Dependency();
 
@@ -1139,7 +1140,7 @@
 
     /**
      * @return a list of ArtifactRepository objects constructed
-     *  from the Repository objects returned by getPluginRepositories.
+     *         from the Repository objects returned by getPluginRepositories.
      */
     public List getPluginArtifactRepositories()
     {



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