You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2005/10/29 16:31:51 UTC

svn commit: r329419 - in /maven/components/trunk/maven-project/src: main/java/org/apache/maven/project/validation/DefaultModelValidator.java test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java

Author: jvanzyl
Date: Sat Oct 29 07:31:44 2005
New Revision: 329419

URL: http://svn.apache.org/viewcvs?rev=329419&view=rev
Log:
o http://jira.codehaus.org/browse/MNG-1361

  When the version or type are missing from a dependency a g:a string will
  be displayed so you can easily find the problematic dependency in question.
  

Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java?rev=329419&r1=329418&r2=329419&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java Sat Oct 29 07:31:44 2005
@@ -65,9 +65,9 @@
 
             validateId( "dependencies.dependency.groupId", result, d.getGroupId() );
 
-            validateStringNotEmpty( "dependencies.dependency.type", result, d.getType() );
+            validateStringNotEmpty( "dependencies.dependency.type", result, d.getType(), dependencySourceHint( d ) );
 
-            validateStringNotEmpty( "dependencies.dependency.version", result, d.getVersion() );
+            validateStringNotEmpty( "dependencies.dependency.version", result, d.getVersion(), dependencySourceHint( d ) );
 
             if ( Artifact.SCOPE_SYSTEM.equals( d.getScope() ) && StringUtils.isEmpty( d.getSystemPath() ) )
             {
@@ -212,8 +212,28 @@
         }
     }
 
-    ///////////////////////////////////////////////////////////////////////////
-    // Field validator
+
+    // ----------------------------------------------------------------------
+    // Field validation
+    // ----------------------------------------------------------------------
+
+    /**
+     * Create a hint string consisting of the groupId and artifactId for user validation
+     * messages. For example when the version or type information is missing from a
+     * dependency.
+     *
+     * @param d The dependency from which to make the hint.
+     * @return String of the form g:a.
+     */
+    private String dependencySourceHint( Dependency d )
+    {
+        return d.getGroupId() + ":" + d.getArtifactId();
+    }
+
+    private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, String string )
+    {
+        return validateStringNotEmpty( fieldName, result, string, null );
+    }
 
     /**
      * Asserts:
@@ -223,9 +243,9 @@
      * <li><code>string.length > 0</code>
      * </ul>
      */
-    private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, String string )
+    private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, String string, String sourceHint )
     {
-        if ( !validateNotNull( fieldName, result, string ) )
+        if ( !validateNotNull( fieldName, result, string, sourceHint ) )
         {
             return false;
         }
@@ -235,7 +255,15 @@
             return true;
         }
 
-        result.addMessage( "'" + fieldName + "' is missing." );
+        if ( sourceHint != null )
+        {
+            result.addMessage( "'" + fieldName + "' is missing for " + sourceHint );
+        }
+        else
+        {
+            result.addMessage( "'" + fieldName + "' is missing." );
+        }
+
 
         return false;
     }
@@ -273,14 +301,21 @@
      * <li><code>string != null</code>
      * </ul>
      */
-    private boolean validateNotNull( String fieldName, ModelValidationResult result, Object object )
+    private boolean validateNotNull( String fieldName, ModelValidationResult result, Object object, String sourceHint )
     {
         if ( object != null )
         {
             return true;
         }
 
-        result.addMessage( "'" + fieldName + "' is missing." );
+        if ( sourceHint != null )
+        {
+            result.addMessage( "'" + fieldName + "' is missing for " + sourceHint );
+        }
+        else
+        {
+            result.addMessage( "'" + fieldName + "' is missing." );
+        }
 
         return false;
     }

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java?rev=329419&r1=329418&r2=329419&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java Sat Oct 29 07:31:44 2005
@@ -124,7 +124,7 @@
 
         assertEquals( 1, result.getMessageCount() );
 
-        assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.version' is missing." ) > -1 );
+        assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.version' is missing" ) > -1 );
     }
 
     public void testMissingDependencyManagementArtifactId()