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 );