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