You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2009/08/05 01:11:17 UTC
svn commit: r801013 [4/4] - in /maven/components/branches/MNG-4162: ./
apache-maven/ maven-compat/src/main/java/org/apache/maven/artifact/
maven-compat/src/main/java/org/apache/maven/artifact/repository/
maven-compat/src/main/java/org/apache/maven/arti...
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java Tue Aug 4 23:11:12 2009
@@ -28,6 +28,7 @@
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.codehaus.plexus.component.annotations.Component;
/**
@@ -41,7 +42,7 @@
{
public void importManagement( Model target, List<? extends DependencyManagement> sources,
- ModelBuildingRequest request )
+ ModelBuildingRequest request, ModelProblemCollector problems )
{
if ( sources != null && !sources.isEmpty() )
{
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java Tue Aug 4 23:11:12 2009
@@ -24,6 +24,7 @@
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles the import of dependency management from other models into the target model.
@@ -39,7 +40,9 @@
* @param target The model into which to import the dependency management section, must not be <code>null</code>.
* @param sources The dependency management sections to import, may be <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void importManagement( Model target, List<? extends DependencyManagement> sources, ModelBuildingRequest request );
+ void importManagement( Model target, List<? extends DependencyManagement> sources, ModelBuildingRequest request,
+ ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java Tue Aug 4 23:11:12 2009
@@ -32,6 +32,7 @@
import org.apache.maven.model.ReportPlugin;
import org.apache.maven.model.Reporting;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.merge.MavenModelMerger;
import org.codehaus.plexus.component.annotations.Component;
@@ -47,7 +48,8 @@
private InheritanceModelMerger merger = new InheritanceModelMerger();
- public void assembleModelInheritance( Model child, Model parent, ModelBuildingRequest request )
+ public void assembleModelInheritance( Model child, Model parent, ModelBuildingRequest request,
+ ModelProblemCollector problems )
{
Map<Object, Object> hints = new HashMap<Object, Object>();
hints.put( MavenModelMerger.CHILD_PATH_ADJUSTMENT, getChildPathAdjustment( child, parent ) );
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles inheritance of model values.
@@ -39,7 +40,9 @@
* <code>null</code>.
* @param parent The (read-only) parent model from which to inherit the values, may be <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void assembleModelInheritance( Model child, Model parent, ModelBuildingRequest request );
+ void assembleModelInheritance( Model child, Model parent, ModelBuildingRequest request,
+ ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.path.PathTranslator;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.interpolation.AbstractValueSource;
@@ -187,8 +188,8 @@
}
protected String interpolateInternal( String src, List<? extends ValueSource> valueSources,
- List<? extends InterpolationPostProcessor> postProcessors )
- throws ModelInterpolationException
+ List<? extends InterpolationPostProcessor> postProcessors,
+ ModelProblemCollector problems )
{
if ( src.indexOf( "${" ) < 0 )
{
@@ -215,9 +216,9 @@
{
result = interpolator.interpolate( result, recursionInterceptor );
}
- catch( InterpolationException e )
+ catch ( InterpolationException e )
{
- throw new ModelInterpolationException( e.getMessage(), e );
+ problems.addError( e.getMessage(), e );
}
interpolator.clearFeedback();
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import java.io.File;
@@ -44,11 +45,9 @@
* @param projectDir The project directory, may be {@code null} if the model does not belong to a local project but
* to some artifact's metadata.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
* @return The interpolated model, never {@code null}.
- * @throws ModelInterpolationException If the model could not be interpolated (e.g. due to expressions with cyclic
- * references).
*/
- Model interpolateModel( Model model, File projectDir, ModelBuildingRequest request )
- throws ModelInterpolationException;
+ Model interpolateModel( Model model, File projectDir, ModelBuildingRequest request, ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
import org.codehaus.plexus.interpolation.Interpolator;
@@ -47,16 +48,15 @@
private static final Map<Class<?>, Field[]> fieldsByClass = new WeakHashMap<Class<?>, Field[]>();
private static final Map<Class<?>, Boolean> fieldIsPrimitiveByClass = new WeakHashMap<Class<?>, Boolean>();
- public Model interpolateModel( Model model, File projectDir, ModelBuildingRequest config )
- throws ModelInterpolationException
+ public Model interpolateModel( Model model, File projectDir, ModelBuildingRequest config,
+ ModelProblemCollector problems )
{
- interpolateObject( model, model, projectDir, config );
+ interpolateObject( model, model, projectDir, config, problems );
return model;
}
- protected void interpolateObject( Object obj, Model model, File projectDir, ModelBuildingRequest config )
- throws ModelInterpolationException
+ protected void interpolateObject( Object obj, Model model, File projectDir, ModelBuildingRequest config, ModelProblemCollector problems )
{
try
{
@@ -64,14 +64,9 @@
List<? extends InterpolationPostProcessor> postProcessors = createPostProcessors( model, projectDir, config );
InterpolateObjectAction action =
- new InterpolateObjectAction( obj, valueSources, postProcessors, this );
+ new InterpolateObjectAction( obj, valueSources, postProcessors, this, problems );
- ModelInterpolationException error = AccessController.doPrivileged( action );
-
- if ( error != null )
- {
- throw error;
- }
+ AccessController.doPrivileged( action );
}
finally
{
@@ -87,17 +82,18 @@
return interpolator;
}
- private static final class InterpolateObjectAction implements PrivilegedAction<ModelInterpolationException>
+ private static final class InterpolateObjectAction implements PrivilegedAction<Object>
{
private final LinkedList<Object> interpolationTargets;
private final StringSearchModelInterpolator modelInterpolator;
private final List<? extends ValueSource> valueSources;
private final List<? extends InterpolationPostProcessor> postProcessors;
+ private final ModelProblemCollector problems;
public InterpolateObjectAction( Object target, List<? extends ValueSource> valueSources,
List<? extends InterpolationPostProcessor> postProcessors,
- StringSearchModelInterpolator modelInterpolator )
+ StringSearchModelInterpolator modelInterpolator, ModelProblemCollector problems )
{
this.valueSources = valueSources;
this.postProcessors = postProcessors;
@@ -106,22 +102,17 @@
interpolationTargets.add( target );
this.modelInterpolator = modelInterpolator;
+
+ this.problems = problems;
}
- public ModelInterpolationException run()
+ public Object run()
{
while( !interpolationTargets.isEmpty() )
{
Object obj = interpolationTargets.removeFirst();
- try
- {
- traverseObjectWithParents( obj.getClass(), obj );
- }
- catch ( ModelInterpolationException e )
- {
- return e;
- }
+ traverseObjectWithParents( obj.getClass(), obj );
}
return null;
@@ -129,7 +120,6 @@
@SuppressWarnings("unchecked")
private void traverseObjectWithParents( Class<?> cls, Object target )
- throws ModelInterpolationException
{
if ( cls == null )
{
@@ -166,7 +156,9 @@
String value = (String) fields[i].get( target );
if ( value != null )
{
- String interpolated = modelInterpolator.interpolateInternal( value, valueSources, postProcessors );
+ String interpolated =
+ modelInterpolator.interpolateInternal( value, valueSources, postProcessors,
+ problems );
if ( !interpolated.equals( value ) )
{
@@ -195,7 +187,10 @@
{
if( String.class == value.getClass() )
{
- String interpolated = modelInterpolator.interpolateInternal( (String) value, valueSources, postProcessors );
+ String interpolated =
+ modelInterpolator.interpolateInternal( (String) value,
+ valueSources,
+ postProcessors, problems );
if ( !interpolated.equals( value ) )
{
@@ -240,7 +235,10 @@
{
if( String.class == value.getClass() )
{
- String interpolated = modelInterpolator.interpolateInternal( (String) value, valueSources, postProcessors );
+ String interpolated =
+ modelInterpolator.interpolateInternal( (String) value,
+ valueSources,
+ postProcessors, problems );
if ( !interpolated.equals( value ) )
{
@@ -287,11 +285,13 @@
}
catch ( IllegalArgumentException e )
{
- throw new ModelInterpolationException( "Failed to interpolate field: " + fields[i] + " on class: " + cls.getName(), e );
+ problems.addError( "Failed to interpolate field: " + fields[i] + " on class: "
+ + cls.getName(), e );
}
catch ( IllegalAccessException e )
{
- throw new ModelInterpolationException( "Failed to interpolate field: " + fields[i] + " on class: " + cls.getName(), e );
+ problems.addError( "Failed to interpolate field: " + fields[i] + " on class: "
+ + cls.getName(), e );
}
}
finally
@@ -336,7 +336,6 @@
}
private void evaluateArray( Object target )
- throws ModelInterpolationException
{
int len = Array.getLength( target );
for( int i = 0; i < len; i++ )
@@ -346,7 +345,9 @@
{
if ( String.class == value.getClass() )
{
- String interpolated = modelInterpolator.interpolateInternal( (String) value, valueSources, postProcessors );
+ String interpolated =
+ modelInterpolator.interpolateInternal( (String) value, valueSources, postProcessors,
+ problems );
if ( !interpolated.equals( value ) )
{
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java Tue Aug 4 23:11:12 2009
@@ -30,6 +30,7 @@
import org.apache.maven.model.Exclusion;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.merge.MavenModelMerger;
import org.codehaus.plexus.component.annotations.Component;
@@ -45,7 +46,7 @@
private ManagementModelMerger merger = new ManagementModelMerger();
- public void injectManagement( Model model, ModelBuildingRequest request )
+ public void injectManagement( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
merger.mergeManagedDependencies( model );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java Tue Aug 4 23:11:12 2009
@@ -33,6 +33,7 @@
import org.apache.maven.model.PluginExecution;
import org.apache.maven.model.PluginManagement;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.merge.MavenModelMerger;
import org.codehaus.plexus.component.annotations.Component;
@@ -48,12 +49,12 @@
private ManagementModelMerger merger = new ManagementModelMerger();
- public void injectManagement( Model model, ModelBuildingRequest request )
+ public void injectManagement( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
merger.mergeManagedBuildPlugins( model, false );
}
- public void injectBasicManagement( Model model, ModelBuildingRequest request )
+ public void injectBasicManagement( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
merger.mergeManagedBuildPlugins( model, true );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles injection of dependency management into the model.
@@ -36,7 +37,8 @@
* @param child The model into which to merge the values specified by its dependency management sections, must not
* be <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void injectManagement( Model child, ModelBuildingRequest request );
+ void injectManagement( Model child, ModelBuildingRequest request, ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles injection of plugin management into the model.
@@ -36,8 +37,9 @@
* @param child The model into which to merge the values specified by its plugin management section, must not be
* <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void injectManagement( Model child, ModelBuildingRequest request );
+ void injectManagement( Model child, ModelBuildingRequest request, ModelProblemCollector problems );
/**
* Merges important default values from the plugin management section of the given model into itself. In detail,
@@ -47,7 +49,8 @@
* @param child The model into which to merge the values specified by its plugin management section, must not be
* <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void injectBasicManagement( Model child, ModelBuildingRequest request );
+ void injectBasicManagement( Model child, ModelBuildingRequest request, ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java Tue Aug 4 23:11:12 2009
@@ -30,6 +30,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.merge.MavenModelMerger;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.StringUtils;
@@ -46,7 +47,7 @@
private DuplicateMerger merger = new DuplicateMerger();
- public void mergeDuplicates( Model model, ModelBuildingRequest request )
+ public void mergeDuplicates( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
Build build = model.getBuild();
if ( build != null )
@@ -95,7 +96,7 @@
}
- public void injectDefaultValues( Model model, ModelBuildingRequest request )
+ public void injectDefaultValues( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
injectDependencyDefaults( model.getDependencies() );
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles normalization of a model. In this context, normalization is the process of producing a canonical
@@ -34,10 +35,11 @@
/**
* Merges duplicate elements like multiple declarations of the same build plugin in the specified model.
*
- * @param model The model whose duplicate elements should be merged, must not be <code>null</code>.
+ * @param model The model whose duplicate elements should be merged, must not be {@code null}.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void mergeDuplicates( Model model, ModelBuildingRequest request );
+ void mergeDuplicates( Model model, ModelBuildingRequest request, ModelProblemCollector problems );
/**
* Sets default values in the specified model that for technical reasons cannot be set directly in the Modello
@@ -45,7 +47,8 @@
*
* @param model The model in which to set the default values, must not be {@code null}.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void injectDefaultValues( Model model, ModelBuildingRequest request );
+ void injectDefaultValues( Model model, ModelBuildingRequest request, ModelProblemCollector problems );
}
Propchange: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/path/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 4 23:11:12 2009
@@ -4,5 +4,5 @@
/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/path:738973-739966
/maven/components/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/project/path:738757-738972
/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path:751453-767358,767708-768832
-/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path:799928-799938
+/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path:799928-800992
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/path:688587-696625,696644-699681
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java Tue Aug 4 23:11:12 2009
@@ -27,6 +27,7 @@
import org.apache.maven.model.ReportSet;
import org.apache.maven.model.Reporting;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.xml.Xpp3Dom;
@@ -40,7 +41,7 @@
implements PluginConfigurationExpander
{
- public void expandPluginConfiguration( Model model, ModelBuildingRequest request )
+ public void expandPluginConfiguration( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
Build build = model.getBuild();
Reporting reporting = model.getReporting();
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java Tue Aug 4 23:11:12 2009
@@ -20,6 +20,7 @@
*/
import org.apache.maven.model.Model;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles injection of plugin executions induced by the lifecycle bindings for a packaging.
@@ -34,7 +35,8 @@
*
* @param model The model into which to inject the default plugin executions for its packaging, must not be
* <code>null</code>.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void injectLifecycleBindings( Model model );
+ void injectLifecycleBindings( Model model, ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles expansion of general plugin configuration into individual executions and report sets.
@@ -36,7 +37,8 @@
*
* @param model The model whose plugin configuration should be expanded, must not be <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void expandPluginConfiguration( Model model, ModelBuildingRequest request );
+ void expandPluginConfiguration( Model model, ModelBuildingRequest request, ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java Tue Aug 4 23:11:12 2009
@@ -36,6 +36,7 @@
import org.apache.maven.model.ReportPlugin;
import org.apache.maven.model.Reporting;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.merge.MavenModelMerger;
import org.codehaus.plexus.component.annotations.Component;
@@ -51,7 +52,8 @@
private ProfileModelMerger merger = new ProfileModelMerger();
- public void injectProfile( Model model, Profile profile, ModelBuildingRequest request )
+ public void injectProfile( Model model, Profile profile, ModelBuildingRequest request,
+ ModelProblemCollector problems )
{
if ( profile != null )
{
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java Tue Aug 4 23:11:12 2009
@@ -26,6 +26,7 @@
import org.apache.maven.model.Activation;
import org.apache.maven.model.Profile;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.profile.activation.ProfileActivator;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
@@ -43,7 +44,8 @@
@Requirement( role = ProfileActivator.class )
private List<ProfileActivator> activators;
- public ProfileSelectionResult getActiveProfiles( Collection<Profile> profiles, ProfileActivationContext context )
+ public List<Profile> getActiveProfiles( Collection<Profile> profiles, ProfileActivationContext context,
+ ModelProblemCollector problems )
{
Collection<String> activatedIds = new HashSet<String>( context.getActiveProfileIds() );
Collection<String> deactivatedIds = new HashSet<String>( context.getInactiveProfileIds() );
@@ -52,13 +54,11 @@
List<Profile> activePomProfilesByDefault = new ArrayList<Profile>();
boolean activatedPomProfileNotByDefault = false;
- List<ProfileActivationException> activationExceptions = new ArrayList<ProfileActivationException>();
-
for ( Profile profile : profiles )
{
if ( !deactivatedIds.contains( profile.getId() ) )
{
- if ( activatedIds.contains( profile.getId() ) || isActive( profile, context, activationExceptions ) )
+ if ( activatedIds.contains( profile.getId() ) || isActive( profile, context, problems ) )
{
activeProfiles.add( profile );
@@ -87,15 +87,10 @@
activeProfiles.addAll( activePomProfilesByDefault );
}
- ProfileSelectionResult result = new ProfileSelectionResult();
- result.setActiveProfiles( activeProfiles );
- result.setActivationExceptions( activationExceptions );
-
- return result;
+ return activeProfiles;
}
- private boolean isActive( Profile profile, ProfileActivationContext context,
- List<ProfileActivationException> exceptions )
+ private boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems )
{
for ( ProfileActivator activator : activators )
{
@@ -108,7 +103,8 @@
}
catch ( ProfileActivationException e )
{
- exceptions.add( e );
+ problems.addError( "Invalid activation condition for profile " + profile.getId() + ": "
+ + e.getMessage() );
}
}
return false;
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java Tue Aug 4 23:11:12 2009
@@ -22,6 +22,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Handles profile injection into the model.
@@ -38,7 +39,8 @@
* @param model The model into which to merge the values defined by the profile, must not be <code>null</code>.
* @param profile The (read-only) profile whose values should be injected, may be <code>null</code>.
* @param request The model building request that holds further settings, must not be {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- void injectProfile( Model model, Profile profile, ModelBuildingRequest request );
+ void injectProfile( Model model, Profile profile, ModelBuildingRequest request, ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java Tue Aug 4 23:11:12 2009
@@ -20,8 +20,10 @@
*/
import java.util.Collection;
+import java.util.List;
import org.apache.maven.model.Profile;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Calculates the active profiles among a given collection of profiles.
@@ -38,8 +40,10 @@
* @param profiles The profiles whose activation status should be determined, must not be {@code null}.
* @param context The environmental context used to determine the activation status of a profile, must not be
* {@code null}.
- * @return The result of the selection process, never {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
+ * @return The profiles that have been activated, never {@code null}.
*/
- ProfileSelectionResult getActiveProfiles( Collection<Profile> profiles, ProfileActivationContext context );
+ List<Profile> getActiveProfiles( Collection<Profile> profiles, ProfileActivationContext context,
+ ModelProblemCollector problems );
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java Tue Aug 4 23:11:12 2009
@@ -36,6 +36,7 @@
import org.apache.maven.model.Repository;
import org.apache.maven.model.Resource;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.StringUtils;
@@ -50,78 +51,72 @@
private static final String ID_REGEX = "[A-Za-z0-9_\\-.]+";
- public ModelValidationResult validateRawModel( Model model, ModelBuildingRequest request )
+ public void validateRawModel( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
- ModelValidationResult result = new ModelValidationResult();
-
Parent parent = model.getParent();
if ( parent != null )
{
- validateStringNotEmpty( "parent.groupId", result, false, parent.getGroupId() );
+ validateStringNotEmpty( "parent.groupId", problems, false, parent.getGroupId() );
- validateStringNotEmpty( "parent.artifactId", result, false, parent.getArtifactId() );
+ validateStringNotEmpty( "parent.artifactId", problems, false, parent.getArtifactId() );
- validateStringNotEmpty( "parent.version", result, false, parent.getVersion() );
+ validateStringNotEmpty( "parent.version", problems, false, parent.getVersion() );
if ( parent.getGroupId().equals( model.getGroupId() )
&& parent.getArtifactId().equals( model.getArtifactId() ) )
{
- addViolation( result, false, "The parent element cannot have the same ID as the project." );
+ addViolation( problems, false, "The parent element cannot have the same ID as the project." );
}
}
if ( request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
{
- validateDependencies( result, model.getDependencies(), "dependencies.dependency", request );
+ validateDependencies( problems, model.getDependencies(), "dependencies.dependency", request );
if ( model.getDependencyManagement() != null )
{
- validateDependencies( result, model.getDependencyManagement().getDependencies(),
+ validateDependencies( problems, model.getDependencyManagement().getDependencies(),
"dependencyManagement.dependencies.dependency", request );
}
- validateRepositories( result, model.getRepositories(), "repositories.repository", request );
+ validateRepositories( problems, model.getRepositories(), "repositories.repository", request );
- validateRepositories( result, model.getPluginRepositories(), "pluginRepositories.pluginRepository", request );
+ validateRepositories( problems, model.getPluginRepositories(), "pluginRepositories.pluginRepository", request );
for ( Profile profile : model.getProfiles() )
{
- validateDependencies( result, profile.getDependencies(), "profiles.profile[" + profile.getId()
+ validateDependencies( problems, profile.getDependencies(), "profiles.profile[" + profile.getId()
+ "].dependencies.dependency", request );
if ( profile.getDependencyManagement() != null )
{
- validateDependencies( result, profile.getDependencyManagement().getDependencies(),
+ validateDependencies( problems, profile.getDependencyManagement().getDependencies(),
"profiles.profile[" + profile.getId()
+ "].dependencyManagement.dependencies.dependency", request );
}
- validateRepositories( result, profile.getRepositories(), "profiles.profile[" + profile.getId()
+ validateRepositories( problems, profile.getRepositories(), "profiles.profile[" + profile.getId()
+ "].repositories.repository", request );
- validateRepositories( result, profile.getPluginRepositories(), "profiles.profile[" + profile.getId()
+ validateRepositories( problems, profile.getPluginRepositories(), "profiles.profile[" + profile.getId()
+ "].pluginRepositories.pluginRepository", request );
}
}
-
- return result;
}
- public ModelValidationResult validateEffectiveModel( Model model, ModelBuildingRequest request )
+ public void validateEffectiveModel( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
- ModelValidationResult result = new ModelValidationResult();
+ validateStringNotEmpty( "modelVersion", problems, false, model.getModelVersion() );
- validateStringNotEmpty( "modelVersion", result, false, model.getModelVersion() );
+ validateId( "groupId", problems, model.getGroupId() );
- validateId( "groupId", result, model.getGroupId() );
+ validateId( "artifactId", problems, model.getArtifactId() );
- validateId( "artifactId", result, model.getArtifactId() );
-
- validateStringNotEmpty( "packaging", result, false, model.getPackaging() );
+ validateStringNotEmpty( "packaging", problems, false, model.getPackaging() );
if ( !model.getModules().isEmpty() && !"pom".equals( model.getPackaging() ) )
{
- addViolation( result, false, "Packaging '" + model.getPackaging() + "' is invalid. Aggregator projects " +
+ addViolation( problems, false, "Packaging '" + model.getPackaging() + "' is invalid. Aggregator projects " +
"require 'pom' as packaging." );
}
@@ -131,21 +126,21 @@
if ( parent.getGroupId().equals( model.getGroupId() ) &&
parent.getArtifactId().equals( model.getArtifactId() ) )
{
- addViolation( result, false, "The parent element cannot have the same ID as the project." );
+ addViolation( problems, false, "The parent element cannot have the same ID as the project." );
}
}
- validateStringNotEmpty( "version", result, false, model.getVersion() );
+ validateStringNotEmpty( "version", problems, false, model.getVersion() );
for ( Dependency d : model.getDependencies() )
{
- validateId( "dependencies.dependency.artifactId", result, d.getArtifactId() );
+ validateId( "dependencies.dependency.artifactId", problems, d.getArtifactId() );
- validateId( "dependencies.dependency.groupId", result, d.getGroupId() );
+ validateId( "dependencies.dependency.groupId", problems, d.getGroupId() );
- validateStringNotEmpty( "dependencies.dependency.type", result, false, d.getType(), d.getManagementKey() );
+ validateStringNotEmpty( "dependencies.dependency.type", problems, false, d.getType(), d.getManagementKey() );
- validateStringNotEmpty( "dependencies.dependency.version", result, false, d.getVersion(),
+ validateStringNotEmpty( "dependencies.dependency.version", problems, false, d.getVersion(),
d.getManagementKey() );
if ( "system".equals( d.getScope() ) )
@@ -154,20 +149,20 @@
if ( StringUtils.isEmpty( systemPath ) )
{
- addViolation( result, false, "For dependency " + d + ": system-scoped dependency must specify systemPath." );
+ addViolation( problems, false, "For dependency " + d + ": system-scoped dependency must specify systemPath." );
}
else
{
if ( !new File( systemPath ).isAbsolute() )
{
- addViolation( result, false, "For dependency " + d + ": system-scoped dependency must " +
+ addViolation( problems, false, "For dependency " + d + ": system-scoped dependency must " +
"specify an absolute path systemPath." );
}
}
}
else if ( StringUtils.isNotEmpty( d.getSystemPath() ) )
{
- addViolation( result, false,
+ addViolation( problems, false,
"For dependency " + d + ": only dependency with system scope can specify systemPath." );
}
}
@@ -177,10 +172,10 @@
{
for ( Dependency d : mgmt.getDependencies() )
{
- validateSubElementStringNotEmpty( d, "dependencyManagement.dependencies.dependency.artifactId", result,
+ validateSubElementStringNotEmpty( d, "dependencyManagement.dependencies.dependency.artifactId", problems,
d.getArtifactId() );
- validateSubElementStringNotEmpty( d, "dependencyManagement.dependencies.dependency.groupId", result,
+ validateSubElementStringNotEmpty( d, "dependencyManagement.dependencies.dependency.groupId", problems,
d.getGroupId() );
if ( "system".equals( d.getScope() ) )
@@ -189,21 +184,21 @@
if ( StringUtils.isEmpty( systemPath ) )
{
- addViolation( result, false,
+ addViolation( problems, false,
"For managed dependency " + d + ": system-scoped dependency must specify systemPath." );
}
else
{
if ( !new File( systemPath ).isAbsolute() )
{
- addViolation( result, false, "For managed dependency " + d + ": system-scoped dependency must " +
+ addViolation( problems, false, "For managed dependency " + d + ": system-scoped dependency must " +
"specify an absolute path systemPath." );
}
}
}
else if ( StringUtils.isNotEmpty( d.getSystemPath() ) )
{
- addViolation( result, false,
+ addViolation( problems, false,
"For managed dependency " + d + ": only dependency with system scope can specify systemPath." );
}
}
@@ -219,17 +214,17 @@
{
for ( Plugin p : build.getPlugins() )
{
- validateStringNotEmpty( "build.plugins.plugin.artifactId", result, false, p.getArtifactId() );
+ validateStringNotEmpty( "build.plugins.plugin.artifactId", problems, false, p.getArtifactId() );
- validateStringNotEmpty( "build.plugins.plugin.groupId", result, false, p.getGroupId() );
+ validateStringNotEmpty( "build.plugins.plugin.groupId", problems, false, p.getGroupId() );
- validateStringNotEmpty( "build.plugins.plugin.version", result, warnOnMissingPluginVersion,
+ validateStringNotEmpty( "build.plugins.plugin.version", problems, warnOnMissingPluginVersion,
p.getVersion(), p.getKey() );
}
- validateResources( result, build.getResources(), "build.resources.resource" );
+ validateResources( problems, build.getResources(), "build.resources.resource" );
- validateResources( result, build.getTestResources(), "build.testResources.testResource" );
+ validateResources( problems, build.getTestResources(), "build.testResources.testResource" );
}
Reporting reporting = model.getReporting();
@@ -237,24 +232,22 @@
{
for ( ReportPlugin p : reporting.getPlugins() )
{
- validateStringNotEmpty( "reporting.plugins.plugin.artifactId", result, false, p.getArtifactId() );
+ validateStringNotEmpty( "reporting.plugins.plugin.artifactId", problems, false, p.getArtifactId() );
- validateStringNotEmpty( "reporting.plugins.plugin.groupId", result, false, p.getGroupId() );
+ validateStringNotEmpty( "reporting.plugins.plugin.groupId", problems, false, p.getGroupId() );
- validateStringNotEmpty( "reporting.plugins.plugin.version", result, warnOnMissingPluginVersion,
+ validateStringNotEmpty( "reporting.plugins.plugin.version", problems, warnOnMissingPluginVersion,
p.getVersion(), p.getKey() );
}
}
- forcePluginExecutionIdCollision( model, result );
+ forcePluginExecutionIdCollision( model, problems );
}
-
- return result;
}
- private boolean validateId( String fieldName, ModelValidationResult result, String id )
+ private boolean validateId( String fieldName, ModelProblemCollector problems, String id )
{
- if ( !validateStringNotEmpty( fieldName, result, false, id ) )
+ if ( !validateStringNotEmpty( fieldName, problems, false, id ) )
{
return false;
}
@@ -263,13 +256,13 @@
boolean match = id.matches( ID_REGEX );
if ( !match )
{
- addViolation( result, false, "'" + fieldName + "' with value '" + id + "' does not match a valid id pattern." );
+ addViolation( problems, false, "'" + fieldName + "' with value '" + id + "' does not match a valid id pattern." );
}
return match;
}
}
- private void validateDependencies( ModelValidationResult result, List<Dependency> dependencies, String prefix,
+ private void validateDependencies( ModelProblemCollector problems, List<Dependency> dependencies, String prefix,
ModelBuildingRequest request )
{
Map<String, Dependency> index = new HashMap<String, Dependency>();
@@ -281,7 +274,7 @@
if ( "pom".equals( dependency.getType() ) && "import".equals( dependency.getScope() )
&& StringUtils.isNotEmpty( dependency.getClassifier() ) )
{
- addViolation( result, false, "'" + prefix + ".classifier' must be empty for imported POM: " + key );
+ addViolation( problems, false, "'" + prefix + ".classifier' must be empty for imported POM: " + key );
}
Dependency existing = index.get( key );
@@ -290,7 +283,7 @@
{
boolean warning = request.getValidationLevel() < ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0;
- addViolation( result, warning, "'" + prefix + ".(groupId:artifactId:type:classifier)' must be unique: "
+ addViolation( problems, warning, "'" + prefix + ".(groupId:artifactId:type:classifier)' must be unique: "
+ key + " -> " + existing.getVersion() + " vs " + dependency.getVersion() );
}
else
@@ -300,16 +293,16 @@
}
}
- private void validateRepositories( ModelValidationResult result, List<Repository> repositories, String prefix,
+ private void validateRepositories( ModelProblemCollector problems, List<Repository> repositories, String prefix,
ModelBuildingRequest request )
{
Map<String, Repository> index = new HashMap<String, Repository>();
for ( Repository repository : repositories )
{
- validateStringNotEmpty( prefix + ".id", result, false, repository.getId() );
+ validateStringNotEmpty( prefix + ".id", problems, false, repository.getId() );
- validateStringNotEmpty( prefix + ".url", result, false, repository.getUrl() );
+ validateStringNotEmpty( prefix + "[" + repository.getId() + "].url", problems, false, repository.getUrl() );
String key = repository.getId();
@@ -319,7 +312,7 @@
{
boolean warning = request.getValidationLevel() < ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0;
- addViolation( result, warning, "'" + prefix + ".id' must be unique: " + repository.getId() + " -> "
+ addViolation( problems, warning, "'" + prefix + ".id' must be unique: " + repository.getId() + " -> "
+ existing.getUrl() + " vs " + repository.getUrl() );
}
else
@@ -329,15 +322,15 @@
}
}
- private void validateResources( ModelValidationResult result, List<Resource> resources, String prefix )
+ private void validateResources( ModelProblemCollector problems, List<Resource> resources, String prefix )
{
for ( Resource resource : resources )
{
- validateStringNotEmpty( prefix + ".directory", result, false, resource.getDirectory() );
+ validateStringNotEmpty( prefix + ".directory", problems, false, resource.getDirectory() );
}
}
- private void forcePluginExecutionIdCollision( Model model, ModelValidationResult result )
+ private void forcePluginExecutionIdCollision( Model model, ModelProblemCollector problems )
{
Build build = model.getBuild();
@@ -356,7 +349,7 @@
}
catch ( IllegalStateException collisionException )
{
- addViolation( result, false, collisionException.getMessage() );
+ addViolation( problems, false, collisionException.getMessage() );
}
}
}
@@ -367,9 +360,9 @@
// Field validation
// ----------------------------------------------------------------------
- private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, boolean warning, String string )
+ private boolean validateStringNotEmpty( String fieldName, ModelProblemCollector problems, boolean warning, String string )
{
- return validateStringNotEmpty( fieldName, result, warning, string, null );
+ return validateStringNotEmpty( fieldName, problems, warning, string, null );
}
/**
@@ -380,10 +373,10 @@
* <li><code>string.length > 0</code>
* </ul>
*/
- private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, boolean warning,
+ private boolean validateStringNotEmpty( String fieldName, ModelProblemCollector problems, boolean warning,
String string, String sourceHint )
{
- if ( !validateNotNull( fieldName, result, warning, string, sourceHint ) )
+ if ( !validateNotNull( fieldName, problems, warning, string, sourceHint ) )
{
return false;
}
@@ -395,11 +388,11 @@
if ( sourceHint != null )
{
- addViolation( result, false, "'" + fieldName + "' is missing for " + sourceHint );
+ addViolation( problems, false, "'" + fieldName + "' is missing for " + sourceHint );
}
else
{
- addViolation( result, false, "'" + fieldName + "' is missing." );
+ addViolation( problems, false, "'" + fieldName + "' is missing." );
}
return false;
@@ -414,9 +407,9 @@
* </ul>
*/
private boolean validateSubElementStringNotEmpty( Object subElementInstance, String fieldName,
- ModelValidationResult result, String string )
+ ModelProblemCollector problems, String string )
{
- if ( !validateSubElementNotNull( subElementInstance, fieldName, result, string ) )
+ if ( !validateSubElementNotNull( subElementInstance, fieldName, problems, string ) )
{
return false;
}
@@ -426,7 +419,7 @@
return true;
}
- addViolation( result, false, "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." );
+ addViolation( problems, false, "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." );
return false;
}
@@ -438,7 +431,7 @@
* <li><code>string != null</code>
* </ul>
*/
- private boolean validateNotNull( String fieldName, ModelValidationResult result, boolean warning, Object object, String sourceHint )
+ private boolean validateNotNull( String fieldName, ModelProblemCollector problems, boolean warning, Object object, String sourceHint )
{
if ( object != null )
{
@@ -447,11 +440,11 @@
if ( sourceHint != null )
{
- addViolation( result, warning, "'" + fieldName + "' is missing for " + sourceHint );
+ addViolation( problems, warning, "'" + fieldName + "' is missing for " + sourceHint );
}
else
{
- addViolation( result, warning, "'" + fieldName + "' is missing." );
+ addViolation( problems, warning, "'" + fieldName + "' is missing." );
}
return false;
@@ -465,27 +458,27 @@
* </ul>
*/
private boolean validateSubElementNotNull( Object subElementInstance, String fieldName,
- ModelValidationResult result, Object object )
+ ModelProblemCollector problems, Object object )
{
if ( object != null )
{
return true;
}
- addViolation( result, false, "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." );
+ addViolation( problems, false, "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." );
return false;
}
- private void addViolation( ModelValidationResult result, boolean warning, String message )
+ private void addViolation( ModelProblemCollector problems, boolean warning, String message )
{
if ( warning )
{
- result.addWarning( message );
+ problems.addWarning( message );
}
else
{
- result.addError( message );
+ problems.addError( message );
}
}
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java Tue Aug 4 23:11:12 2009
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
/**
* Checks the model for missing or invalid values.
@@ -37,9 +38,9 @@
*
* @param model The model to validate, must not be {@code null}.
* @param request The model building request that holds further settings, must not be {@code null}.
- * @return The result of the validation, never {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- ModelValidationResult validateRawModel( Model model, ModelBuildingRequest request );
+ void validateRawModel( Model model, ModelBuildingRequest request, ModelProblemCollector problems );
/**
* Checks the specified (effective) model for missing or invalid values. The effective model is fully assembled and
@@ -47,8 +48,8 @@
*
* @param model The model to validate, must not be {@code null}.
* @param request The model building request that holds further settings, must not be {@code null}.
- * @return The result of the validation, never {@code null}.
+ * @param problems The container used to collect problems that were encountered, must not be {@code null}.
*/
- ModelValidationResult validateEffectiveModel( Model model, ModelBuildingRequest request );
+ void validateEffectiveModel( Model model, ModelBuildingRequest request, ModelProblemCollector problems );
}
Propchange: maven/components/branches/MNG-4162/maven-model-builder/src/main/mdo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 4 23:11:12 2009
@@ -3,4 +3,4 @@
/maven/components/branches/maven-2.0.x/maven-profile/src/main/mdo:679206
/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/mdo:738973-739966
/maven/components/sisbell-plugin-manager/maven-project/src/main/mdo:738757-738972
-/maven/components/trunk/maven-model-builder/src/main/mdo:767708-768832,799928-799938
+/maven/components/trunk/maven-model-builder/src/main/mdo:767708-768832,799928-800992
Propchange: maven/components/branches/MNG-4162/maven-model-builder/src/main/resources/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 4 23:11:12 2009
@@ -3,5 +3,5 @@
/maven/components/branches/maven-2.0.x/maven-project/src/main/resources:679206,720042
/maven/components/branches/sisbell-plugin-manager/maven-project-builder/src/main/resources:738973-739966
/maven/components/sisbell-plugin-manager/maven-project-builder/src/main/resources:738757-738972
-/maven/components/trunk/maven-model-builder/src/main/resources:767708-768832,799928-799938
+/maven/components/trunk/maven-model-builder/src/main/resources:767708-768832,799928-800992
/maven/components/trunk/maven-project/src/main/resources:688587-696625,696644-699681
Propchange: maven/components/branches/MNG-4162/maven-model-builder/src/test/java/org/apache/maven/model/validation/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 4 23:11:12 2009
@@ -4,5 +4,5 @@
/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/validation:739385,741841,747468,747683,748815,749612,766523,768817
/maven/components/branches/sisbell-plugin-manager/maven-project/src/test/java/org/apache/maven/project/validation:738973-739966
/maven/components/sisbell-plugin-manager/maven-project/src/test/java/org/apache/maven/project/validation:738757-738972
-/maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation:799928-799938
+/maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation:799928-800992
/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation:751453-767358,767708-768832
Modified: maven/components/branches/MNG-4162/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java (original)
+++ maven/components/branches/MNG-4162/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java Tue Aug 4 23:11:12 2009
@@ -20,11 +20,13 @@
*/
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.List;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.DefaultModelBuildingRequest;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.codehaus.plexus.PlexusTestCase;
@@ -38,6 +40,46 @@
private DefaultModelValidator validator;
+ private static class SimpleProblemCollector
+ implements ModelProblemCollector
+ {
+
+ private List<String> warnings = new ArrayList<String>();
+
+ private List<String> errors = new ArrayList<String>();
+
+ public void addError( String message )
+ {
+ errors.add( message );
+ }
+
+ public void addError( String message, Exception cause )
+ {
+ addError( message );
+ }
+
+ public void addWarning( String message )
+ {
+ warnings.add( message );
+ }
+
+ public void addWarning( String message, Exception cause )
+ {
+ addWarning( message );
+ }
+
+ public List<String> getWarnings()
+ {
+ return warnings;
+ }
+
+ public List<String> getErrors()
+ {
+ return errors;
+ }
+
+ }
+
private Model read( String pom )
throws Exception
{
@@ -47,26 +89,34 @@
return new MavenXpp3Reader().read( is );
}
- private ModelValidationResult validate( String pom )
+ private SimpleProblemCollector validate( String pom )
throws Exception
{
return validateEffective( pom, ModelBuildingRequest.VALIDATION_LEVEL_STRICT );
}
- private ModelValidationResult validateEffective( String pom, int level )
+ private SimpleProblemCollector validateEffective( String pom, int level )
throws Exception
{
ModelBuildingRequest request = new DefaultModelBuildingRequest().setValidationLevel( level );
- return validator.validateEffectiveModel( read( pom ), request );
+ SimpleProblemCollector problems = new SimpleProblemCollector();
+
+ validator.validateEffectiveModel( read( pom ), request, problems );
+
+ return problems;
}
- private ModelValidationResult validateRaw( String pom, int level )
+ private SimpleProblemCollector validateRaw( String pom, int level )
throws Exception
{
ModelBuildingRequest request = new DefaultModelBuildingRequest().setValidationLevel( level );
- return validator.validateRawModel( read( pom ), request );
+ SimpleProblemCollector problems = new SimpleProblemCollector();
+
+ validator.validateRawModel( read( pom ), request, problems );
+
+ return problems;
}
@Override
@@ -87,7 +137,7 @@
super.tearDown();
}
- private void assertViolations( ModelValidationResult result, int errors, int warnings )
+ private void assertViolations( SimpleProblemCollector result, int errors, int warnings )
{
assertEquals( errors, result.getErrors().size() );
assertEquals( warnings, result.getWarnings().size() );
@@ -96,7 +146,7 @@
public void testMissingModelVersion()
throws Exception
{
- ModelValidationResult result = validate( "missing-modelVersion-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-modelVersion-pom.xml" );
assertViolations( result, 1, 0 );
@@ -106,7 +156,7 @@
public void testMissingArtifactId()
throws Exception
{
- ModelValidationResult result = validate( "missing-artifactId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-artifactId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -116,7 +166,7 @@
public void testMissingGroupId()
throws Exception
{
- ModelValidationResult result = validate( "missing-groupId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-groupId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -126,7 +176,7 @@
public void testInvalidIds()
throws Exception
{
- ModelValidationResult result = validate( "invalid-ids-pom.xml" );
+ SimpleProblemCollector result = validate( "invalid-ids-pom.xml" );
assertViolations( result, 2, 0 );
@@ -138,7 +188,7 @@
public void testMissingType()
throws Exception
{
- ModelValidationResult result = validate( "missing-type-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-type-pom.xml" );
assertViolations( result, 1, 0 );
@@ -148,7 +198,7 @@
public void testMissingVersion()
throws Exception
{
- ModelValidationResult result = validate( "missing-version-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-version-pom.xml" );
assertViolations( result, 1, 0 );
@@ -158,7 +208,7 @@
public void testInvalidAggregatorPackaging()
throws Exception
{
- ModelValidationResult result = validate( "invalid-aggregator-packaging-pom.xml" );
+ SimpleProblemCollector result = validate( "invalid-aggregator-packaging-pom.xml" );
assertViolations( result, 1, 0 );
@@ -168,7 +218,7 @@
public void testMissingDependencyArtifactId()
throws Exception
{
- ModelValidationResult result = validate( "missing-dependency-artifactId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-dependency-artifactId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -178,7 +228,7 @@
public void testMissingDependencyGroupId()
throws Exception
{
- ModelValidationResult result = validate( "missing-dependency-groupId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-dependency-groupId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -188,7 +238,7 @@
public void testMissingDependencyVersion()
throws Exception
{
- ModelValidationResult result = validate( "missing-dependency-version-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-dependency-version-pom.xml" );
assertViolations( result, 1, 0 );
@@ -198,7 +248,7 @@
public void testMissingDependencyManagementArtifactId()
throws Exception
{
- ModelValidationResult result = validate( "missing-dependency-mgmt-artifactId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-dependency-mgmt-artifactId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -209,7 +259,7 @@
public void testMissingDependencyManagementGroupId()
throws Exception
{
- ModelValidationResult result = validate( "missing-dependency-mgmt-groupId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-dependency-mgmt-groupId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -220,7 +270,7 @@
public void testMissingAll()
throws Exception
{
- ModelValidationResult result = validate( "missing-1-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-1-pom.xml" );
assertViolations( result, 4, 0 );
@@ -236,7 +286,7 @@
public void testMissingPluginArtifactId()
throws Exception
{
- ModelValidationResult result = validate( "missing-plugin-artifactId-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-plugin-artifactId-pom.xml" );
assertViolations( result, 1, 0 );
@@ -246,7 +296,7 @@
public void testMissingPluginVersion()
throws Exception
{
- ModelValidationResult result =
+ SimpleProblemCollector result =
validateEffective( "missing-plugin-version-pom.xml", ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_1 );
assertViolations( result, 1, 0 );
@@ -262,24 +312,24 @@
public void testMissingRepositoryId()
throws Exception
{
- ModelValidationResult result =
+ SimpleProblemCollector result =
validateRaw( "missing-repository-id-pom.xml", ModelBuildingRequest.VALIDATION_LEVEL_STRICT );
assertViolations( result, 4, 0 );
assertEquals( "'repositories.repository.id' is missing.", result.getErrors().get( 0 ) );
- assertEquals( "'repositories.repository.url' is missing.", result.getErrors().get( 1 ) );
+ assertEquals( "'repositories.repository[null].url' is missing.", result.getErrors().get( 1 ) );
assertEquals( "'pluginRepositories.pluginRepository.id' is missing.", result.getErrors().get( 2 ) );
- assertEquals( "'pluginRepositories.pluginRepository.url' is missing.", result.getErrors().get( 3 ) );
+ assertEquals( "'pluginRepositories.pluginRepository[null].url' is missing.", result.getErrors().get( 3 ) );
}
public void testMissingResourceDirectory()
throws Exception
{
- ModelValidationResult result = validate( "missing-resource-directory-pom.xml" );
+ SimpleProblemCollector result = validate( "missing-resource-directory-pom.xml" );
assertViolations( result, 2, 0 );
Propchange: maven/components/branches/MNG-4162/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 4 23:11:12 2009
@@ -5,4 +5,4 @@
/maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java:738973-739966
/maven/components/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java:738757-738972
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java:688587-696625,696644-699681
-/maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java:799928-799938
+/maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java:799928-800992
Modified: maven/components/branches/MNG-4162/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4162/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java?rev=801013&r1=801012&r2=801013&view=diff
==============================================================================
--- maven/components/branches/MNG-4162/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java (original)
+++ maven/components/branches/MNG-4162/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java Tue Aug 4 23:11:12 2009
@@ -227,6 +227,12 @@
this.inheritedByDefault = inheritedByDefault;
}
+ /**
+ * Gets the artifacts that make up the plugin's class realm, excluding artifacts shadowed by the Maven core realm
+ * like {@code maven-project}.
+ *
+ * @return The plugin artifacts, never {@code null}.
+ */
public List<Artifact> getArtifacts()
{
return artifacts;
@@ -277,7 +283,7 @@
MojoDescriptor mojoDescriptor = null;
- for ( Iterator i = getMojos().iterator(); i.hasNext() && mojoDescriptor == null; )
+ for ( Iterator<?> i = getMojos().iterator(); i.hasNext() && mojoDescriptor == null; )
{
MojoDescriptor desc = (MojoDescriptor) i.next();