Author: bentmann
Date: Thu Aug 13 19:17:19 2009
New Revision: 803995

URL: http://svn.apache.org/viewvc?rev=803995&view=rev
Log:
[MNG-4297] Disallow use of properties in the project coordinates

o For Maven 3.0, started to produce a warning

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=803995&r1=803994&r2=803995&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 Thu Aug 13 19:17:19 2009
@@ -322,7 +322,7 @@
                 logger.warn( "It is highly recommended to fix these problems"
                     + " because they threaten the stability of your build." );
                 logger.warn( "" );
-                logger.warn( "For this reason, future Maven versions will no"
+                logger.warn( "For this reason, future Maven versions might no"
                     + " longer support building such malformed projects." );
                 logger.warn( "" );
             }

Modified: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java?rev=803995&r1=803994&r2=803995&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
 Thu Aug 13 19:17:19 2009
@@ -289,6 +289,7 @@
 
         model.setPomFile( pomFile );
 
+        problems.setSourceHint( model );
         modelValidator.validateRawModel( model, request, problems );
 
         return model;

Modified: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java?rev=803995&r1=803994&r2=803995&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
 Thu Aug 13 19:17:19 2009
@@ -71,6 +71,10 @@
 
         if ( request.getValidationLevel() >= 
ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
         {
+            validateStringNoExpression( "groupId", problems, true, 
model.getGroupId() );
+            validateStringNoExpression( "artifactId", problems, true, 
model.getArtifactId() );
+            validateStringNoExpression( "version", problems, true, 
model.getVersion() );
+
             validateDependencies( problems, model.getDependencies(), 
"dependencies.dependency", request );
 
             if ( model.getDependencyManagement() != null )
@@ -385,6 +389,24 @@
     // Field validation
     // ----------------------------------------------------------------------
 
+    private boolean validateStringNoExpression( String fieldName, 
ModelProblemCollector problems, boolean warning,
+                                                String string )
+    {
+        if ( !hasExpression( string ) )
+        {
+            return true;
+        }
+
+        addViolation( problems, warning, "'" + fieldName + "' contains an 
expression but should be a constant." );
+
+        return false;
+    }
+
+    private boolean hasExpression( String value )
+    {
+        return value != null && value.indexOf( "${" ) >= 0;
+    }
+
     private boolean validateStringNotEmpty( String fieldName, 
ModelProblemCollector problems, boolean warning, String string )
     {
         return validateStringNotEmpty( fieldName, problems, warning, string, 
null );


Reply via email to