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/03/30 00:58:15 UTC

svn commit: r928934 - in /maven/maven-3/trunk/maven-core/src: main/java/org/apache/maven/settings/ main/java/org/apache/maven/settings/building/ main/java/org/apache/maven/settings/validation/ test/java/org/apache/maven/settings/validation/

Author: bentmann
Date: Mon Mar 29 22:58:14 2010
New Revision: 928934

URL: http://svn.apache.org/viewvc?rev=928934&view=rev
Log:
o Refactored settings validation to support more extensive problem descriptor

Added:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java   (with props)
Removed:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/SettingsValidationResult.java
Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/settings/validation/DefaultSettingsValidatorTest.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?rev=928934&r1=928933&r2=928934&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Mon Mar 29 22:58:14 2010
@@ -27,8 +27,6 @@ import org.apache.maven.settings.buildin
 import org.apache.maven.settings.building.SettingsBuilder;
 import org.apache.maven.settings.building.SettingsBuildingException;
 import org.apache.maven.settings.building.SettingsBuildingRequest;
-import org.apache.maven.settings.building.SettingsProblem;
-import org.apache.maven.settings.validation.SettingsValidationResult;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -108,28 +106,6 @@ public class DefaultMavenSettingsBuilder
         return build(settingsRequest);
     }
 
-    public SettingsValidationResult validateSettings( File settingsFile )
-    {
-        SettingsBuildingRequest request = new DefaultSettingsBuildingRequest();
-        request.setUserSettingsFile( settingsFile );
-
-        SettingsValidationResult result = new SettingsValidationResult();
-
-        try
-        {
-            settingsBuilder.build( request );
-        }
-        catch ( SettingsBuildingException e )
-        {
-            for ( SettingsProblem problem : e.getProblems() )
-            {
-                result.addMessage( problem.getMessage() );
-            }
-        }
-
-        return result;
-    }
-
     private File getFile( String pathPattern, String basedirSysProp, String altLocationSysProp )
     {
         // -------------------------------------------------------------------------------------

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java?rev=928934&r1=928933&r2=928934&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java Mon Mar 29 22:58:14 2010
@@ -23,7 +23,6 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.maven.execution.MavenExecutionRequest;
-import org.apache.maven.settings.validation.SettingsValidationResult;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 /**
@@ -43,8 +42,6 @@ public interface MavenSettingsBuilder
     Settings buildSettings( MavenExecutionRequest request )
         throws IOException, XmlPullParserException;
 
-    SettingsValidationResult validateSettings( File settingsFile );
-
     /**
      * @return a <code>Settings</code> object from the user settings file.
      * @throws IOException if any

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java?rev=928934&r1=928933&r2=928934&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java Mon Mar 29 22:58:14 2010
@@ -23,7 +23,6 @@ import java.io.File;
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.StringWriter;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -34,7 +33,6 @@ import org.apache.maven.settings.Trackab
 import org.apache.maven.settings.io.SettingsParseException;
 import org.apache.maven.settings.io.SettingsReader;
 import org.apache.maven.settings.io.SettingsWriter;
-import org.apache.maven.settings.validation.SettingsValidationResult;
 import org.apache.maven.settings.validation.SettingsValidator;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
@@ -65,7 +63,7 @@ public class DefaultSettingsBuilder
     public SettingsBuildingResult build( SettingsBuildingRequest request )
         throws SettingsBuildingException
     {
-        List<SettingsProblem> problems = new ArrayList<SettingsProblem>();
+        DefaultSettingsProblemCollector problems = new DefaultSettingsProblemCollector( null );
 
         Settings globalSettings = readSettings( request.getGlobalSettingsFile(), request, problems );
 
@@ -73,6 +71,8 @@ public class DefaultSettingsBuilder
 
         SettingsUtils.merge( userSettings, globalSettings, TrackableBase.GLOBAL_LEVEL );
 
+        problems.setSource( "" );
+
         userSettings = interpolate( userSettings, request, problems );
 
         // for the special case of a drive-relative Windows path, make sure it's absolute to save plugins from trouble
@@ -86,12 +86,12 @@ public class DefaultSettingsBuilder
             }
         }
 
-        if ( hasErrors( problems ) )
+        if ( hasErrors( problems.getProblems() ) )
         {
-            throw new SettingsBuildingException( problems );
+            throw new SettingsBuildingException( problems.getProblems() );
         }
 
-        return new DefaultSettingsBuildingResult( userSettings, problems );
+        return new DefaultSettingsBuildingResult( userSettings, problems.getProblems() );
     }
 
     private boolean hasErrors( List<SettingsProblem> problems )
@@ -110,13 +110,16 @@ public class DefaultSettingsBuilder
         return false;
     }
 
-    private Settings readSettings( File settingsFile, SettingsBuildingRequest request, List<SettingsProblem> problems )
+    private Settings readSettings( File settingsFile, SettingsBuildingRequest request,
+                                   DefaultSettingsProblemCollector problems )
     {
         if ( settingsFile == null || !settingsFile.exists() )
         {
             return new Settings();
         }
 
+        problems.setSource( settingsFile.getAbsolutePath() );
+
         Settings settings;
 
         try
@@ -133,38 +136,29 @@ public class DefaultSettingsBuilder
 
                 settings = settingsReader.read( settingsFile, options );
 
-                problems.add( new DefaultSettingsProblem( e.getMessage(), SettingsProblem.Severity.WARNING,
-                                                          settingsFile.getAbsolutePath(), e.getLineNumber(),
-                                                          e.getColumnNumber(), e ) );
+                problems.add( SettingsProblem.Severity.WARNING, e.getMessage(), e.getLineNumber(), e.getColumnNumber(),
+                              e );
             }
         }
         catch ( SettingsParseException e )
         {
-            problems.add( new DefaultSettingsProblem( "Non-parseable settings " + settingsFile + ": " + e.getMessage(),
-                                                      SettingsProblem.Severity.FATAL, settingsFile.getAbsolutePath(),
-                                                      e.getLineNumber(), e.getColumnNumber(), e ) );
+            problems.add( SettingsProblem.Severity.FATAL, "Non-parseable settings " + settingsFile + ": "
+                + e.getMessage(), e.getLineNumber(), e.getColumnNumber(), e );
             return new Settings();
         }
         catch ( IOException e )
         {
-            problems.add( new DefaultSettingsProblem( "Non-readable settings " + settingsFile + ": " + e.getMessage(),
-                                                      SettingsProblem.Severity.FATAL, settingsFile.getAbsolutePath(),
-                                                      -1, -1, e ) );
+            problems.add( SettingsProblem.Severity.FATAL, "Non-readable settings " + settingsFile + ": "
+                + e.getMessage(), -1, -1, e );
             return new Settings();
         }
 
-        SettingsValidationResult result = settingsValidator.validate( settings );
-
-        for ( String error : result.getMessages() )
-        {
-            problems.add( new DefaultSettingsProblem( error, SettingsProblem.Severity.ERROR,
-                                                      settingsFile.getAbsolutePath(), -1, -1, null ) );
-        }
+        settingsValidator.validate( settings, problems );
 
         return settings;
     }
 
-    private Settings interpolate( Settings settings, SettingsBuildingRequest request, List<SettingsProblem> problems )
+    private Settings interpolate( Settings settings, SettingsBuildingRequest request, SettingsProblemCollector problems )
     {
         StringWriter writer = new StringWriter( 1024 * 4 );
 
@@ -191,8 +185,8 @@ public class DefaultSettingsBuilder
         }
         catch ( IOException e )
         {
-            problems.add( new DefaultSettingsProblem( "Failed to use environment variables for interpolation: "
-                + e.getMessage(), SettingsProblem.Severity.WARNING, "", -1, -1, e ) );
+            problems.add( SettingsProblem.Severity.WARNING, "Failed to use environment variables for interpolation: "
+                + e.getMessage(), -1, -1, e );
         }
 
         try
@@ -201,8 +195,8 @@ public class DefaultSettingsBuilder
         }
         catch ( InterpolationException e )
         {
-            problems.add( new DefaultSettingsProblem( "Failed to interpolate settings: " + e.getMessage(),
-                                                      SettingsProblem.Severity.ERROR, "", -1, -1, e ) );
+            problems.add( SettingsProblem.Severity.ERROR, "Failed to interpolate settings: " + e.getMessage(), -1, -1,
+                          e );
 
             return settings;
         }
@@ -215,8 +209,8 @@ public class DefaultSettingsBuilder
         }
         catch ( IOException e )
         {
-            problems.add( new DefaultSettingsProblem( "Failed to interpolate settings: " + e.getMessage(),
-                                                      SettingsProblem.Severity.ERROR, "", -1, -1, e ) );
+            problems.add( SettingsProblem.Severity.ERROR, "Failed to interpolate settings: " + e.getMessage(), -1, -1,
+                          e );
             return settings;
         }
 

Added: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java?rev=928934&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java (added)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java Mon Mar 29 22:58:14 2010
@@ -0,0 +1,69 @@
+package org.apache.maven.settings.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.settings.io.SettingsParseException;
+
+/**
+ * Collects problems that are encountered during settings building.
+ * 
+ * @author Benjamin Bentmann
+ */
+class DefaultSettingsProblemCollector
+    implements SettingsProblemCollector
+{
+
+    private List<SettingsProblem> problems;
+
+    private String source;
+
+    public DefaultSettingsProblemCollector( List<SettingsProblem> problems )
+    {
+        this.problems = ( problems != null ) ? problems : new ArrayList<SettingsProblem>();
+    }
+
+    public List<SettingsProblem> getProblems()
+    {
+        return problems;
+    }
+
+    public void setSource( String source )
+    {
+        this.source = source;
+    }
+
+    public void add( SettingsProblem.Severity severity, String message, int line, int column, Exception cause )
+    {
+        if ( line <= 0 && column <= 0 && ( cause instanceof SettingsParseException ) )
+        {
+            SettingsParseException e = (SettingsParseException) cause;
+            line = e.getLineNumber();
+            column = e.getColumnNumber();
+        }
+
+        SettingsProblem problem = new DefaultSettingsProblem( message, severity, source, line, column, cause );
+
+        problems.add( problem );
+    }
+
+}

Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java?rev=928934&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java (added)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java Mon Mar 29 22:58:14 2010
@@ -0,0 +1,41 @@
+package org.apache.maven.settings.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Collects problems that are encountered during settings building.
+ * 
+ * @author Benjamin Bentmann
+ */
+public interface SettingsProblemCollector
+{
+
+    /**
+     * Adds the specified problem.
+     * 
+     * @param severity The severity of the problem, must not be {@code null}.
+     * @param message The detail message of the problem, may be {@code null}.
+     * @param line The one-based index of the line containing the problem or {@code -1} if unknown.
+     * @param column The one-based index of the column containing the problem or {@code -1} if unknown.
+     * @param cause The cause of the problem, may be {@code null}.
+     */
+    void add( SettingsProblem.Severity severity, String message, int line, int column, Exception cause );
+
+}

Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java?rev=928934&r1=928933&r2=928934&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java Mon Mar 29 22:58:14 2010
@@ -24,6 +24,8 @@ import java.util.List;
 import org.apache.maven.settings.Profile;
 import org.apache.maven.settings.Repository;
 import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.building.SettingsProblem;
+import org.apache.maven.settings.building.SettingsProblemCollector;
 import org.codehaus.plexus.component.annotations.Component;
 
 /**
@@ -33,43 +35,38 @@ import org.codehaus.plexus.component.ann
 public class DefaultSettingsValidator
     implements SettingsValidator
 {
-    public SettingsValidationResult validate( Settings model )
+
+    public void validate( Settings settings, SettingsProblemCollector problems )
     {
-        SettingsValidationResult result = new SettingsValidationResult();
+        List<Profile> profiles = settings.getProfiles();
 
-        List<Profile> profiles = model.getProfiles();
         if ( profiles != null )
         {
-            for (Profile prof : profiles )
+            for ( Profile prof : profiles )
             {
-                validateRepositories( result, prof.getRepositories(), "repositories.repository" );
-                validateRepositories( result, prof.getPluginRepositories(), "pluginRepositories.pluginRepository" );
+                validateRepositories( problems, prof.getRepositories(), "repositories.repository" );
+                validateRepositories( problems, prof.getPluginRepositories(), "pluginRepositories.pluginRepository" );
             }
         }
-
-        return result;
     }
 
-    private void validateRepositories( SettingsValidationResult result, List<Repository> repositories, String prefix )
+    private void validateRepositories( SettingsProblemCollector problems, List<Repository> repositories, String prefix )
     {
         for ( Repository repository : repositories )
         {
-            validateStringNotEmpty( prefix + ".id", result, repository.getId() );
+            validateStringNotEmpty( problems, prefix + ".id", repository.getId() );
 
-            validateStringNotEmpty( prefix + ".url", result, repository.getUrl() );
+            validateStringNotEmpty( problems, prefix + ".url", repository.getUrl() );
         }
     }
 
-
-
     // ----------------------------------------------------------------------
     // Field validation
     // ----------------------------------------------------------------------
 
-
-    private boolean validateStringNotEmpty( String fieldName, SettingsValidationResult result, String string )
+    private boolean validateStringNotEmpty( SettingsProblemCollector problems, String fieldName, String string )
     {
-        return validateStringNotEmpty( fieldName, result, string, null );
+        return validateStringNotEmpty( problems, fieldName, string, null );
     }
 
     /**
@@ -80,9 +77,9 @@ public class DefaultSettingsValidator
      * <li><code>string.length > 0</code>
      * </ul>
      */
-    private boolean validateStringNotEmpty( String fieldName, SettingsValidationResult result, String string, String sourceHint )
+    private boolean validateStringNotEmpty( SettingsProblemCollector problems, String fieldName, String string, String sourceHint )
     {
-        if ( !validateNotNull( fieldName, result, string, sourceHint ) )
+        if ( !validateNotNull( problems, fieldName, string, sourceHint ) )
         {
             return false;
         }
@@ -92,14 +89,16 @@ public class DefaultSettingsValidator
             return true;
         }
 
+        String msg;
         if ( sourceHint != null )
         {
-            result.addMessage( "'" + fieldName + "' is missing for " + sourceHint );
+            msg = "'" + fieldName + "' is missing for " + sourceHint;
         }
         else
         {
-            result.addMessage( "'" + fieldName + "' is missing." );
+            msg = "'" + fieldName + "' is missing.";
         }
+        addError( problems, msg );
 
         return false;
     }
@@ -111,23 +110,31 @@ public class DefaultSettingsValidator
      * <li><code>string != null</code>
      * </ul>
      */
-    private boolean validateNotNull( String fieldName, SettingsValidationResult result, Object object, String sourceHint )
+    private boolean validateNotNull( SettingsProblemCollector problems, String fieldName, Object object,
+                                     String sourceHint )
     {
         if ( object != null )
         {
             return true;
         }
 
+        String msg;
         if ( sourceHint != null )
         {
-            result.addMessage( "'" + fieldName + "' is missing for " + sourceHint );
+            msg = "'" + fieldName + "' is missing for " + sourceHint;
         }
         else
         {
-            result.addMessage( "'" + fieldName + "' is missing." );
+            msg = "'" + fieldName + "' is missing.";
         }
+        addError( problems, msg );
 
         return false;
     }
 
+    private void addError( SettingsProblemCollector problems, String msg )
+    {
+        problems.add( SettingsProblem.Severity.ERROR, msg, -1, -1, null );
+    }
+
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java?rev=928934&r1=928933&r2=928934&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java Mon Mar 29 22:58:14 2010
@@ -20,21 +20,22 @@ package org.apache.maven.settings.valida
  */
 
 import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.building.SettingsProblemCollector;
 
 /**
  * Validate a model settings
- *
+ * 
  * @author Milos Kleint
  */
 public interface SettingsValidator
 {
-    String ROLE = SettingsValidator.class.getName();
 
     /**
-     * Validate a model settings
-     *
-     * @param model
-     * @return a <code>SettingsValidationResult</code> instance
+     * Validate the specified settings.
+     * 
+     * @param settings The settings to validate, must not be {@code null}.
+     * @param problems The container used to collect problems that were encountered, must not be {@code null}.
      */
-    SettingsValidationResult validate( Settings model );
+    void validate( Settings settings, SettingsProblemCollector problems );
+
 }

Modified: maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/settings/validation/DefaultSettingsValidatorTest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/settings/validation/DefaultSettingsValidatorTest.java?rev=928934&r1=928933&r2=928934&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/settings/validation/DefaultSettingsValidatorTest.java (original)
+++ maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/settings/validation/DefaultSettingsValidatorTest.java Mon Mar 29 22:58:14 2010
@@ -19,11 +19,16 @@ package org.apache.maven.settings.valida
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.List;
+
 import junit.framework.TestCase;
 
 import org.apache.maven.settings.Profile;
 import org.apache.maven.settings.Repository;
 import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.building.SettingsProblemCollector;
+import org.apache.maven.settings.building.SettingsProblem.Severity;
 
 /**
  *
@@ -57,21 +62,38 @@ public class DefaultSettingsValidatorTes
         prof.setId( "xxx" );
         model.addProfile( prof );
         DefaultSettingsValidator instance = new DefaultSettingsValidator();
-        SettingsValidationResult result = instance.validate( model );
-        assertEquals( 0, result.getMessageCount() );
+        SimpleProblemCollector problems = new SimpleProblemCollector();
+        instance.validate( model, problems );
+        assertEquals( 0, problems.messages.size() );
 
         Repository repo = new Repository();
         prof.addRepository( repo );
-        result = instance.validate( model );
-        assertEquals( 2, result.getMessageCount() );
+        problems = new SimpleProblemCollector();
+        instance.validate( model, problems );
+        assertEquals( 2, problems.messages.size() );
 
         repo.setUrl( "http://xxx.xxx.com" );
-        result = instance.validate( model );
-        assertEquals( 1, result.getMessageCount() );
+        problems = new SimpleProblemCollector();
+        instance.validate( model, problems );
+        assertEquals( 1, problems.messages.size() );
 
         repo.setId( "xxx" );
-        result = instance.validate( model );
-        assertEquals( 0, result.getMessageCount() );
+        problems = new SimpleProblemCollector();
+        instance.validate( model, problems );
+        assertEquals( 0, problems.messages.size() );
+
+    }
+
+    private static class SimpleProblemCollector
+        implements SettingsProblemCollector
+    {
+
+        public List<String> messages = new ArrayList<String>();
+
+        public void add( Severity severity, String message, int line, int column, Exception cause )
+        {
+            messages.add( message );
+        }
 
     }