You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/05/06 19:41:05 UTC

svn commit: r168630 - /maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle /maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin /maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade /maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin /maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation /maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation /maven/components/trunk/maven-project/src/test/resources/projects/scope

Author: jdcasey
Date: Fri May  6 10:41:03 2005
New Revision: 168630

URL: http://svn.apache.org/viewcvs?rev=168630&view=rev
Log:
o Added duplicate check for mojo descriptor Parameters
o changed the exception(s) throws during mojo descriptor extraction to be derivatives of InvalidPluginDescriptorException
o changed PluginConfigurationException in plugin.descriptor to InvalidPluginDescriptorException
o changed all "true".equals(something) to Boolean.valueOf(something).booleanValue()
o added validation of 'modelVersion' back to [Default]ModelValidator
o Fixed/added tests for new 'modelVersion' validation
o changed all requiresXXX in MojoDescriptor to XXXRequired, and getRequiresXXX():boolean to isXXXRequired():boolean to help maintain bean-ness for future use



Added:
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java   (with props)
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidParameterException.java
      - copied, changed from r168523, maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/InvalidParameterException.java
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidPluginDescriptorException.java
      - copied, changed from r168481, maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginConfigurationException.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/ExtractionException.java   (with props)
Removed:
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginConfigurationException.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsException.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/InvalidParameterException.java
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateMojoDescriptorException.java
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/AbstractGeneratorTestCase.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGeneratorTest.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java
    maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
    maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
    maven/components/trunk/maven-project/src/test/resources/projects/scope/project-with-scoped-dependencies.xml

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Fri May  6 10:41:03 2005
@@ -268,7 +268,7 @@
     private void configureMojoPhaseBinding( MojoDescriptor mojoDescriptor, Map phaseMap, Settings settings )
         throws LifecycleExecutionException
     {
-        if ( settings.getActiveProfile().isOffline() && mojoDescriptor.requiresOnline() )
+        if ( settings.getActiveProfile().isOffline() && mojoDescriptor.isOnlineRequired() )
         {
             String goal = mojoDescriptor.getGoal();
             getLogger().warn( goal + " requires online mode, but maven is currently offline. Disabling " + goal + "." );

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Fri May  6 10:41:03 2005
@@ -307,7 +307,7 @@
     public void executeMojo( MavenSession session, MojoDescriptor mojoDescriptor )
         throws ArtifactResolutionException, PluginManagerException, MojoExecutionException
     {
-        if ( mojoDescriptor.getRequiresDependencyResolution() != null )
+        if ( mojoDescriptor.isDependencyResolutionRequired() != null )
         {
 
             ArtifactResolver artifactResolver = null;
@@ -319,7 +319,7 @@
                 mavenProjectBuilder = (MavenProjectBuilder) container.lookup( MavenProjectBuilder.ROLE );
 
                 resolveTransitiveDependencies( session, artifactResolver, mavenProjectBuilder,
-                                               mojoDescriptor.getRequiresDependencyResolution() );
+                                               mojoDescriptor.isDependencyResolutionRequired() );
                 downloadDependencies( session, artifactResolver );
             }
             catch ( ComponentLookupException e )

Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateMojoDescriptorException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateMojoDescriptorException.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateMojoDescriptorException.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateMojoDescriptorException.java Fri May  6 10:41:03 2005
@@ -17,7 +17,7 @@
  */
 
 public class DuplicateMojoDescriptorException
-    extends PluginConfigurationException
+    extends InvalidPluginDescriptorException
 {
 
     public DuplicateMojoDescriptorException( String goalPrefix, String goal, String existingImplementation, String newImplementation )

Added: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java?rev=168630&view=auto
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java (added)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java Fri May  6 10:41:03 2005
@@ -0,0 +1,28 @@
+package org.apache.maven.plugin.descriptor;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class DuplicateParameterException
+    extends InvalidPluginDescriptorException
+{
+
+    public DuplicateParameterException( String message )
+    {
+        super( message );
+    }
+
+}

Propchange: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author"

Copied: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidParameterException.java (from r168523, maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/InvalidParameterException.java)
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidParameterException.java?p2=maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidParameterException.java&p1=maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/InvalidParameterException.java&r1=168523&r2=168630&rev=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/InvalidParameterException.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidParameterException.java Fri May  6 10:41:03 2005
@@ -1,6 +1,4 @@
-package org.apache.maven.tools.plugin.extractor;
-
-import org.apache.maven.tools.plugin.PluginToolsException;
+package org.apache.maven.plugin.descriptor;
 
 /*
  * Copyright 2001-2004 The Apache Software Foundation.
@@ -24,7 +22,7 @@
  *          jdcasey Exp $
  */
 public class InvalidParameterException
-    extends PluginToolsException
+    extends InvalidPluginDescriptorException
 {
     public InvalidParameterException( String element, int i )
     {

Copied: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidPluginDescriptorException.java (from r168481, maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginConfigurationException.java)
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidPluginDescriptorException.java?p2=maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidPluginDescriptorException.java&p1=maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginConfigurationException.java&r1=168481&r2=168630&rev=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginConfigurationException.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/InvalidPluginDescriptorException.java Fri May  6 10:41:03 2005
@@ -18,16 +18,16 @@
  * limitations under the License.
  */
 
-public class PluginConfigurationException
+public class InvalidPluginDescriptorException
     extends PlexusConfigurationException
 {
 
-    public PluginConfigurationException( String message, Throwable cause )
+    public InvalidPluginDescriptorException( String message, Throwable cause )
     {
         super( message, cause );
     }
 
-    public PluginConfigurationException( String message )
+    public InvalidPluginDescriptorException( String message )
     {
         super( message );
     }

Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java Fri May  6 10:41:03 2005
@@ -23,6 +23,7 @@
 
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
@@ -64,11 +65,11 @@
     //
     // ----------------------------------------------------------------------
 
-    private String requiresDependencyResolution = null;
+    private String dependencyResolutionRequired = null;
 
-    private boolean requiresProject = true;
+    private boolean projectRequired = true;
 
-    private boolean requiresOnline = false;
+    private boolean onlineRequired = false;
 
     private PlexusConfiguration mojoConfiguration;
 
@@ -110,8 +111,33 @@
     }
 
     public void setParameters( List parameters )
+        throws DuplicateParameterException
     {
-        this.parameters = parameters;
+        for ( Iterator it = parameters.iterator(); it.hasNext(); )
+        {
+            Parameter parameter = (Parameter) it.next();
+            addParameter( parameter );
+        }
+    }
+    
+    public void addParameter( Parameter parameter )
+        throws DuplicateParameterException
+    {
+        if ( parameters != null && parameters.contains( parameter ) )
+        {
+            throw new DuplicateParameterException( parameter.getName()
+                + " has been declared multiple times in mojo with goal: " + getGoal() + " (implementation: "
+                + getImplementation() + ")" );
+        }
+        else
+        {
+            if ( parameters == null )
+            {
+                parameters = new LinkedList();
+            }
+
+            parameters.add( parameter );
+        }
     }
 
     public Map getParameterMap()
@@ -135,50 +161,50 @@
     // Dependency requirement
     // ----------------------------------------------------------------------
 
-    public void setRequiresDependencyResolution( String requiresDependencyResolution )
+    public void setDependencyResolutionRequired( String requiresDependencyResolution )
     {
-        this.requiresDependencyResolution = requiresDependencyResolution;
+        this.dependencyResolutionRequired = requiresDependencyResolution;
     }
 
-    public String getRequiresDependencyResolution()
+    public String isDependencyResolutionRequired()
     {
-        return requiresDependencyResolution;
+        return dependencyResolutionRequired;
     }
 
     // ----------------------------------------------------------------------
     // Project requirement
     // ----------------------------------------------------------------------
 
-    public void setRequiresProject( boolean requiresProject )
+    public void setProjectRequired( boolean requiresProject )
     {
-        this.requiresProject = requiresProject;
+        this.projectRequired = requiresProject;
     }
 
-    public boolean getRequiresProject()
+    public boolean isProjectRequired()
     {
-        return requiresProject;
+        return projectRequired;
     }
 
     // ----------------------------------------------------------------------
     // Online vs. Offline requirement
     // ----------------------------------------------------------------------
 
-    public void setRequiresOnline( boolean requiresOnline )
+    public void setOnlineRequired( boolean requiresOnline )
     {
-        this.requiresOnline = requiresOnline;
+        this.onlineRequired = requiresOnline;
     }
 
     // blech! this isn't even intelligible as a method name. provided for
     // consistency...
-    public boolean isRequiresOnline()
+    public boolean isOnlineRequired()
     {
-        return requiresOnline;
+        return onlineRequired;
     }
 
     // more english-friendly method...keep the code clean! :)
     public boolean requiresOnline()
     {
-        return requiresOnline;
+        return onlineRequired;
     }
 
     public String getPhase()

Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java Fri May  6 10:41:03 2005
@@ -129,21 +129,21 @@
 
         if ( dependencyResolution != null )
         {
-            mojo.setRequiresDependencyResolution( dependencyResolution );
+            mojo.setDependencyResolutionRequired( dependencyResolution );
         }
 
         String requiresProject = c.getChild( "requiresProject" ).getValue();
 
         if ( requiresProject != null )
         {
-            mojo.setRequiresProject( "true".equals( requiresProject ) );
+            mojo.setProjectRequired( Boolean.valueOf( requiresProject ).booleanValue() );
         }
 
         String requiresOnline = c.getChild( "requiresOnline" ).getValue();
 
         if ( requiresOnline != null )
         {
-            mojo.setRequiresOnline( "true".equals( requiresOnline ) );
+            mojo.setOnlineRequired( Boolean.valueOf( requiresOnline ).booleanValue() );
         }
 
         // ----------------------------------------------------------------------
@@ -168,7 +168,7 @@
 
             String required = d.getChild( "required" ).getValue();
 
-            parameter.setRequired( "true".equals( required ) );
+            parameter.setRequired( Boolean.valueOf( required ).booleanValue() );
 
             PlexusConfiguration editableConfig = d.getChild( "editable" );
 
@@ -177,7 +177,7 @@
             {
                 String editable = d.getChild( "editable" ).getValue();
 
-                parameter.setEditable( editable == null || "true".equals( editable ) );
+                parameter.setEditable( editable == null || Boolean.valueOf( editable ).booleanValue() );
             }
 
             parameter.setValidator( d.getChild( "validator" ).getValue() );

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java Fri May  6 10:41:03 2005
@@ -1,8 +1,8 @@
 package org.apache.maven.tools.plugin.extractor;
 
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
-import org.apache.maven.tools.plugin.PluginToolsException;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.DirectoryScanner;
 
@@ -22,7 +22,7 @@
     implements MojoDescriptorExtractor
 {
     public List execute( MavenProject project, PluginDescriptor pluginDescriptor )
-        throws PluginToolsException
+        throws ExtractionException, InvalidPluginDescriptorException
     {
         Map scriptFilesKeyedByBasedir = gatherScriptSourcesByBasedir( project.getScriptSourceRoots(),
                                                                       getScriptFileExtension() );
@@ -33,7 +33,7 @@
     }
 
     protected abstract List extractMojoDescriptors( Map scriptFilesKeyedByBasedir, PluginDescriptor pluginDescriptor )
-        throws PluginToolsException;
+        throws ExtractionException, InvalidPluginDescriptorException;
 
     protected abstract String getScriptFileExtension();
 
@@ -47,7 +47,7 @@
 
             String resourceDir = (String) it.next();
             File dir = new File( resourceDir ).getAbsoluteFile();
-            
+
             resourceDir = dir.getPath();
 
             if ( dir.exists() )

Added: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/ExtractionException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/ExtractionException.java?rev=168630&view=auto
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/ExtractionException.java (added)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/ExtractionException.java Fri May  6 10:41:03 2005
@@ -0,0 +1,33 @@
+package org.apache.maven.tools.plugin.extractor;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class ExtractionException
+    extends Exception
+{
+
+    public ExtractionException( String message, Throwable cause )
+    {
+        super( message, cause );
+    }
+
+    public ExtractionException( String message )
+    {
+        super( message );
+    }
+
+}

Propchange: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/ExtractionException.java
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author"

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/MojoDescriptorExtractor.java Fri May  6 10:41:03 2005
@@ -16,9 +16,9 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.tools.plugin.PluginToolsException;
 
 import java.util.List;
 
@@ -30,5 +30,5 @@
     String ROLE = MojoDescriptorExtractor.class.getName();
 
     List execute( MavenProject project, PluginDescriptor pluginDescriptor )
-        throws PluginToolsException;
+        throws ExtractionException, InvalidPluginDescriptorException;
 }

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java Fri May  6 10:41:03 2005
@@ -110,22 +110,22 @@
         //
         // ----------------------------------------------------------------------
 
-        if ( mojoDescriptor.getRequiresDependencyResolution() != null )
+        if ( mojoDescriptor.isDependencyResolutionRequired() != null )
         {
-            element( w, "requiresDependencyResolution", mojoDescriptor.getRequiresDependencyResolution() );
+            element( w, "requiresDependencyResolution", mojoDescriptor.isDependencyResolutionRequired() );
         }
 
         // ----------------------------------------------------------------------
         //
         // ----------------------------------------------------------------------
 
-        element( w, "requiresProject", "" + mojoDescriptor.getRequiresProject() );
+        element( w, "requiresProject", "" + mojoDescriptor.isProjectRequired() );
 
         // ----------------------------------------------------------------------
         //
         // ----------------------------------------------------------------------
 
-        element( w, "requiresOnline", "" + mojoDescriptor.requiresOnline() );
+        element( w, "requiresOnline", "" + mojoDescriptor.isOnlineRequired() );
 
         // ----------------------------------------------------------------------
         //

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java Fri May  6 10:41:03 2005
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugin.descriptor.DuplicateMojoDescriptorException;
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.tools.plugin.PluginToolsException;
+import org.apache.maven.tools.plugin.extractor.ExtractionException;
 import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.logging.Logger;
@@ -52,7 +52,7 @@
     }
 
     public void populatePluginDescriptor( MavenProject project, PluginDescriptor pluginDescriptor )
-        throws PluginToolsException
+        throws ExtractionException, InvalidPluginDescriptorException
     {
         Logger logger = getLogger();
 
@@ -79,15 +79,7 @@
 
                 descriptor.setPluginDescriptor( pluginDescriptor );
 
-                try
-                {
-                    pluginDescriptor.addMojo( descriptor );
-                }
-                catch ( DuplicateMojoDescriptorException e )
-                {
-                    throw new PluginToolsException( "Duplicate goal specification detected.\nError was: "
-                        + e.getLocalizedMessage(), e );
-                }
+                pluginDescriptor.addMojo( descriptor );
             }
         }
     }

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/MojoScanner.java Fri May  6 10:41:03 2005
@@ -16,9 +16,10 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.tools.plugin.PluginToolsException;
+import org.apache.maven.tools.plugin.extractor.ExtractionException;
 
 /**
  * @author jdcasey
@@ -28,6 +29,6 @@
     String ROLE = MojoScanner.class.getName();
 
     void populatePluginDescriptor( MavenProject project, PluginDescriptor pluginDescriptor )
-        throws PluginToolsException;
+        throws ExtractionException, InvalidPluginDescriptorException;
 
 }

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/AbstractGeneratorTestCase.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/AbstractGeneratorTestCase.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/AbstractGeneratorTestCase.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/AbstractGeneratorTestCase.java Fri May  6 10:41:03 2005
@@ -53,7 +53,7 @@
         MojoDescriptor mojoDescriptor = new MojoDescriptor();
         mojoDescriptor.setGoal( "testGoal" );
         mojoDescriptor.setImplementation( "org.apache.maven.tools.plugin.generator.TestMojo" );
-        mojoDescriptor.setRequiresDependencyResolution( "compile" );
+        mojoDescriptor.setDependencyResolutionRequired( "compile" );
 
         List params = new ArrayList();
 

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGeneratorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGeneratorTest.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGeneratorTest.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGeneratorTest.java Fri May  6 10:41:03 2005
@@ -100,7 +100,7 @@
         // The following should be defaults
         assertEquals( "per-lookup", mojoDescriptor.getInstantiationStrategy() );
 
-        assertNotNull( mojoDescriptor.getRequiresDependencyResolution() );
+        assertNotNull( mojoDescriptor.isDependencyResolutionRequired() );
 
         // check the parameter.
         checkParameter( (Parameter) mojoDescriptor.getParameters().get( 0 ) );

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java Fri May  6 10:41:03 2005
@@ -16,11 +16,12 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugin.descriptor.InvalidParameterException;
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.tools.plugin.extractor.InvalidParameterException;
 import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor;
 import org.codehaus.modello.StringUtils;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -33,14 +34,13 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.TreeMap;
 import java.util.Map.Entry;
 
+
 /**
  * @todo add example usage tag that can be shown in the doco
  * @todo need to add validation directives so that systems embedding maven2 can
@@ -110,7 +110,7 @@
     // Mojo descriptor creation from @tags
     // ----------------------------------------------------------------------
 
-    private MojoDescriptor createMojoDescriptor( JavaSource javaSource, PluginDescriptor pluginDescriptor )
+    private MojoDescriptor createMojoDescriptor( JavaSource javaSource, PluginDescriptor pluginDescriptor ) throws InvalidPluginDescriptorException
     {
         MojoDescriptor mojoDescriptor = new MojoDescriptor();
         mojoDescriptor.setPluginDescriptor( pluginDescriptor );
@@ -187,7 +187,7 @@
             {
                 value = "runtime";
             }
-            mojoDescriptor.setRequiresDependencyResolution( value );
+            mojoDescriptor.setDependencyResolutionRequired( value );
         }
 
         // ----------------------------------------------------------------------
@@ -198,7 +198,7 @@
 
         if ( requiresProject != null )
         {
-            mojoDescriptor.setRequiresProject( true );
+            mojoDescriptor.setProjectRequired( true );
         }
 
         // ----------------------------------------------------------------------
@@ -209,7 +209,7 @@
 
         if ( requiresOnline != null )
         {
-            mojoDescriptor.setRequiresOnline( true );
+            mojoDescriptor.setOnlineRequired( true );
         }
 
         extractParameters( mojoDescriptor, javaClass );
@@ -234,7 +234,7 @@
         return tag;
     }
 
-    private void extractParameters( MojoDescriptor mojoDescriptor, JavaClass javaClass )
+    private void extractParameters( MojoDescriptor mojoDescriptor, JavaClass javaClass ) throws InvalidPluginDescriptorException
     {
         // ---------------------------------------------------------------------------------
         // We're resolving class-level, ancestor-class-field, local-class-field order here.
@@ -244,8 +244,6 @@
 
         extractFieldParameterTags( javaClass, rawParams );
 
-        Set parameters = new HashSet();
-
         for ( Iterator it = rawParams.entrySet().iterator(); it.hasNext(); )
         {
             Map.Entry entry = (Entry) it.next();
@@ -282,14 +280,7 @@
 
             pd.setExpression( parameter.getNamedParameter( PARAMETER_EXPRESSION ) );
 
-            parameters.add( pd );
-        }
-
-        if ( !parameters.isEmpty() )
-        {
-            List paramList = new ArrayList( parameters );
-
-            mojoDescriptor.setParameters( paramList );
+            mojoDescriptor.addParameter( pd );
         }
     }
 
@@ -329,7 +320,7 @@
     }
 
     public List execute( MavenProject project, PluginDescriptor pluginDescriptor )
-        throws InvalidParameterException
+        throws InvalidPluginDescriptorException
     {
         JavaDocBuilder builder = new JavaDocBuilder();
 

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java Fri May  6 10:41:03 2005
@@ -16,12 +16,13 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.script.marmalade.MarmaladeMojoExecutionDirectives;
 import org.apache.maven.script.marmalade.tags.MojoTag;
-import org.apache.maven.tools.plugin.PluginToolsException;
 import org.apache.maven.tools.plugin.extractor.AbstractScriptedMojoDescriptorExtractor;
+import org.apache.maven.tools.plugin.extractor.ExtractionException;
 import org.codehaus.marmalade.launch.MarmaladeLaunchException;
 import org.codehaus.marmalade.launch.MarmaladeLauncher;
 import org.codehaus.marmalade.model.MarmaladeScript;
@@ -49,8 +50,8 @@
         return ".mmld";
     }
 
-    protected List extractMojoDescriptors( Map sourceFilesKeyedByBasedir, PluginDescriptor pluginDescriptor )
-        throws PluginToolsException
+    protected List extractMojoDescriptors( Map sourceFilesKeyedByBasedir, PluginDescriptor pluginDescriptor ) 
+        throws ExtractionException, InvalidPluginDescriptorException
     {
         ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
         try
@@ -112,11 +113,20 @@
                     }
                     catch ( IOException e )
                     {
-                        throw new PluginToolsException( "Error reading descriptor Marmalade mojo in: " + scriptFile, e );
+                        throw new ExtractionException( "Error extracting mojo descriptor from Marmalade script: " + scriptFile, e );
                     }
                     catch ( MarmaladeLaunchException e )
                     {
-                        throw new PluginToolsException( "Error extracting descriptor Marmalade mojo from: " + scriptFile, e );
+                        Throwable cause = e.getCause();
+                        
+                        if ( cause instanceof InvalidPluginDescriptorException )
+                        {
+                            throw (InvalidPluginDescriptorException) cause;
+                        }
+                        else
+                        {
+                            throw new ExtractionException( "Error extracting mojo descriptor from Marmalade script: " + scriptFile, e );
+                        }
                     }
                 }
             }

Modified: maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java Fri May  6 10:41:03 2005
@@ -121,7 +121,7 @@
             compilerConfiguration.addCompilerOption( "-target", target );
         }
 
-        if ( debug != null && "true".equals( debug ) )
+        if ( debug != null && Boolean.valueOf( debug ).booleanValue() )
         {
             compilerConfiguration.setDebug( true );
         }

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java Fri May  6 10:41:03 2005
@@ -18,9 +18,10 @@
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.tools.plugin.PluginToolsException;
+import org.apache.maven.tools.plugin.extractor.ExtractionException;
 import org.apache.maven.tools.plugin.generator.Generator;
 import org.apache.maven.tools.plugin.scanner.MojoScanner;
 import org.apache.maven.tools.plugin.util.PluginUtils;
@@ -91,9 +92,13 @@
         {
             throw new MojoExecutionException( "Error writing plugin descriptor", e );
         }
-        catch ( PluginToolsException e )
+        catch ( InvalidPluginDescriptorException e )
         {
-            throw new MojoExecutionException( "Error creatin plugin descriptor", e );
+            throw new MojoExecutionException( "Error extracting plugin descriptor: \'" + e.getLocalizedMessage() + "\'", e );
+        }
+        catch ( ExtractionException e )
+        {
+            throw new MojoExecutionException( "Error extracting plugin descriptor: \'" + e.getLocalizedMessage() + "\'", e );
         }
     }
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Fri May  6 10:41:03 2005
@@ -150,7 +150,7 @@
         // Always cache files in the source tree over those in the repository
         modelCache.put( createCacheKey( model.getGroupId(), model.getArtifactId(), model.getVersion() ), model );
 
-        MavenProject project = build( model, localRepository );
+        MavenProject project = build( projectDescriptor.getAbsolutePath(), model, localRepository );
 
         // Only translate the base directory for files in the source tree
         pathTranslator.alignToBaseDirectory( project.getModel(), projectDescriptor );
@@ -173,7 +173,7 @@
 
         Model model = findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
 
-        return build( model, localRepository );
+        return build( "Artifact [" + artifact.getId() + "]", model, localRepository );
     }
 
     private Model findModelFromRepository( Artifact artifact, List remoteArtifactRepositories,
@@ -201,7 +201,7 @@
         return model;
     }
 
-    private MavenProject build( Model model, ArtifactRepository localRepository )
+    private MavenProject build( String pomLocation, Model model, ArtifactRepository localRepository )
         throws ProjectBuildingException
     {
         Model superModel = getSuperModel();
@@ -225,11 +225,11 @@
 
         try
         {
-            project = processProjectLogic( project, aggregatedRemoteWagonRepositories );
+            project = processProjectLogic( pomLocation, project, aggregatedRemoteWagonRepositories );
         }
         catch ( ModelInterpolationException e )
         {
-            throw new ProjectBuildingException( "Error building project: " + model.getId(), e );
+            throw new ProjectBuildingException( "Error building project from \'" + pomLocation + "\': " + model.getId(), e );
         }
         return project;
     }
@@ -241,7 +241,7 @@
      * the resolved source roots, etc for the parent - that occurs for the parent when it is constructed independently
      * and projects are not cached or reused
      */
-    private MavenProject processProjectLogic( MavenProject project, List remoteRepositories )
+    private MavenProject processProjectLogic( String pomLocation, MavenProject project, List remoteRepositories )
         throws ProjectBuildingException, ModelInterpolationException
     {
         Model model = project.getModel();
@@ -277,7 +277,7 @@
 
         if ( validationResult.getMessageCount() > 0 )
         {
-            throw new ProjectBuildingException( "Exception while building project: " + validationResult.toString() );
+            throw new ProjectBuildingException( "Exception while building project from \'" + pomLocation + "\': " + validationResult.toString() );
         }
 
         return project;
@@ -489,7 +489,7 @@
 
             List remoteRepositories = buildArtifactRepositories( superModel.getRepositories() );
 
-            project = processProjectLogic( project, remoteRepositories );
+            project = processProjectLogic( "<Super-POM>", project, remoteRepositories );
 
             return project;
         }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java Fri May  6 10:41:03 2005
@@ -34,6 +34,8 @@
     public ModelValidationResult validate( Model model )
     {
         ModelValidationResult result = new ModelValidationResult();
+        
+        validateStringNotEmpty( "modelVersion", result, model.getModelVersion() );
 
         validateStringNotEmpty( "groupId", result, model.getGroupId() );
 

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java Fri May  6 10:41:03 2005
@@ -17,6 +17,7 @@
  */
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -44,6 +45,11 @@
     public String getMessage( int i )
     {
         return messages.get( i ).toString();
+    }
+    
+    public List getMessages()
+    {
+        return Collections.unmodifiableList( messages );
     }
 
     public void addMessage( String message )

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java Fri May  6 10:41:03 2005
@@ -22,6 +22,7 @@
 
 import java.io.FileReader;
 import java.io.Reader;
+import java.util.List;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
@@ -33,6 +34,15 @@
     private Model model;
 
     private ModelValidator validator;
+    
+    public void testMissingModelVersion() throws Exception
+    {
+        ModelValidationResult result = validate( "missing-modelVersion-pom.xml" );
+
+        assertEquals( 1, result.getMessageCount() );
+
+        assertEquals( "'modelVersion' is missing.", result.getMessage( 0 ) );
+    }
 
     public void testMissingArtifactId()
         throws Exception
@@ -79,18 +89,21 @@
     {
         ModelValidationResult result = validate( "missing-1-pom.xml" );
 
-        assertEquals( 3, result.getMessageCount() );
+        assertEquals( 4, result.getMessageCount() );
 
-        assertEquals( "'groupId' is missing.", result.getMessage( 0 ) );
-        assertEquals( "'artifactId' is missing.", result.getMessage( 1 ) );
+        List messages = result.getMessages();
+        
+        assertTrue( messages.contains("\'modelVersion\' is missing."));
+        assertTrue( messages.contains("\'groupId\' is missing."));
+        assertTrue( messages.contains("\'artifactId\' is missing."));
+        assertTrue( messages.contains("\'version\' is missing."));
         // type is inherited from the super pom
-        assertEquals( "'version' is missing.", result.getMessage( 2 ) );
     }
 
     private ModelValidationResult validate( String testName )
         throws Exception
     {
-        Reader input = new FileReader( getTestFile( "src/test/resources/validation/" + testName ) );
+        Reader input = new FileReader( getFileForClasspathResource( "/validation/" + testName ) );
 
         MavenXpp3Reader reader = new MavenXpp3Reader();
 

Modified: maven/components/trunk/maven-project/src/test/resources/projects/scope/project-with-scoped-dependencies.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/resources/projects/scope/project-with-scoped-dependencies.xml?rev=168630&r1=168629&r2=168630&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/projects/scope/project-with-scoped-dependencies.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/projects/scope/project-with-scoped-dependencies.xml Fri May  6 10:41:03 2005
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <model>
+  <modelVersion>4.0.0</modelVersion>
   <groupId>maven</groupId>
   <artifactId>maven-project-test</artifactId>
   <name>Maven</name>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org