You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/09/04 23:28:54 UTC

svn commit: r992683 - /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java

Author: bentmann
Date: Sat Sep  4 21:28:53 2010
New Revision: 992683

URL: http://svn.apache.org/viewvc?rev=992683&view=rev
Log:
[MNG-4796] add a warning when profiles.xml is used (Maven 2) or detected (Maven 3)

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=992683&r1=992682&r2=992683&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java Sat Sep  4 21:28:53 2010
@@ -19,8 +19,10 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.maven.RepositoryUtils;
@@ -139,7 +141,7 @@ public class DefaultProjectBuilder
 
                 modelProblems = result.getProblems();
 
-                initProject( project, result );
+                initProject( project, result, new HashMap<File, Boolean>() );
             }
             else if ( configuration.isResolveDependencies() )
             {
@@ -309,7 +311,9 @@ public class DefaultProjectBuilder
 
         try
         {
-            noErrors = build( results, new ArrayList<MavenProject>(), interimResults, config ) && noErrors;
+            noErrors =
+                build( results, new ArrayList<MavenProject>(), interimResults, config, new HashMap<File, Boolean>() )
+                    && noErrors;
         }
         finally
         {
@@ -467,7 +471,7 @@ public class DefaultProjectBuilder
     }
 
     private boolean build( List<ProjectBuildingResult> results, List<MavenProject> projects,
-                           List<InterimResult> interimResults, ProjectBuildingRequest config )
+                           List<InterimResult> interimResults, ProjectBuildingRequest config, Map<File, Boolean> profilesXmls )
     {
         boolean noErrors = true;
 
@@ -478,10 +482,10 @@ public class DefaultProjectBuilder
                 ModelBuildingResult result = modelBuilder.build( interimResult.request, interimResult.result );
 
                 MavenProject project = interimResult.listener.getProject();
-                initProject( project, result );
+                initProject( project, result, profilesXmls );
 
                 List<MavenProject> modules = new ArrayList<MavenProject>();
-                noErrors = build( results, modules, interimResult.modules, config ) && noErrors;
+                noErrors = build( results, modules, interimResult.modules, config, profilesXmls ) && noErrors;
 
                 projects.addAll( modules );
                 projects.add( project );
@@ -502,7 +506,7 @@ public class DefaultProjectBuilder
         return noErrors;
     }
 
-    private void initProject( MavenProject project, ModelBuildingResult result )
+    private void initProject( MavenProject project, ModelBuildingResult result, Map<File, Boolean> profilesXmls )
     {
         Model model = result.getEffectiveModel();
 
@@ -537,6 +541,43 @@ public class DefaultProjectBuilder
         {
             project.setInjectedProfileIds( modelId, getProfileIds( result.getActivePomProfiles( modelId ) ) );
         }
+
+        String modelId = findProfilesXml( result, profilesXmls );
+        if ( modelId != null )
+        {
+            ModelProblem problem =
+                new DefaultModelProblem( "Detected profiles.xml alongside " + modelId
+                    + ", this file is no longer supported and was ignored" + ", please use the settings.xml instead",
+                                         ModelProblem.Severity.WARNING, model, -1, -1, null );
+            result.getProblems().add( problem );
+        }
+    }
+
+    private String findProfilesXml( ModelBuildingResult result, Map<File, Boolean> profilesXmls )
+    {
+        for ( String modelId : result.getModelIds() )
+        {
+            Model model = result.getRawModel( modelId );
+
+            File basedir = model.getProjectDirectory();
+            if ( basedir == null )
+            {
+                break;
+            }
+
+            Boolean profilesXml = profilesXmls.get( basedir );
+            if ( profilesXml == null )
+            {
+                profilesXml = Boolean.valueOf( new File( basedir, "profiles.xml" ).exists() );
+                profilesXmls.put( basedir, profilesXml );
+            }
+            if ( profilesXml.booleanValue() )
+            {
+                return modelId;
+            }
+        }
+
+        return null;
     }
 
 }