You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/01/09 06:34:15 UTC

svn commit: r732929 - in /maven/components/trunk: maven-compat/src/main/java/org/apache/maven/artifact/ maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ maven-core/src/main/java/org/apache/maven/plugin/ maven-project/src/main/java/...

Author: jvanzyl
Date: Thu Jan  8 21:34:14 2009
New Revision: 732929

URL: http://svn.apache.org/viewvc?rev=732929&view=rev
Log:
MNG-3586: system scope is working again, the IT does not appear to work on OS/X. Both 2.0.9 and this snapshot fail the first test of the IT. Brian helped me verify and on Windows with 2.0.9 and this snapshot both tests pass.

Modified:
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/Artifact.java
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/Artifact.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/Artifact.java?rev=732929&r1=732928&r2=732929&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/Artifact.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/Artifact.java Thu Jan  8 21:34:14 2009
@@ -55,6 +55,8 @@
 
     String SCOPE_RUNTIME = ArtifactScopeEnum.runtime.toString();
 
+    String SCOPE_RUNTIME_PLUS_SYSTEM = ArtifactScopeEnum.runtime_plus_system.toString();
+
     String SCOPE_PROVIDED = ArtifactScopeEnum.provided.toString();
 
     String SCOPE_SYSTEM = ArtifactScopeEnum.system.toString();

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java?rev=732929&r1=732928&r2=732929&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java Thu Jan  8 21:34:14 2009
@@ -10,7 +10,7 @@
 
 public enum ArtifactScopeEnum
 {
-    compile( 1 ), test( 2 ), runtime( 3 ), provided( 4 ), system( 5 );
+    compile( 1 ), test( 2 ), runtime( 3 ), provided( 4 ), system( 5 ), runtime_plus_system( 6 );
 
     public static final ArtifactScopeEnum DEFAULT_SCOPE = compile;
 
@@ -21,7 +21,7 @@
     {
         this.id = id;
     }
-
+    
     int getId()
     {
         return id;
@@ -62,10 +62,14 @@
         {
             return Artifact.SCOPE_PROVIDED;
         }
-        else
+        else if ( id == 5 )
         {
             return Artifact.SCOPE_SYSTEM;
         }
+        else
+        {
+            return Artifact.SCOPE_RUNTIME_PLUS_SYSTEM;
+        }
     }
     
     private static final ArtifactScopeEnum [][][] _compliancySets = {

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java?rev=732929&r1=732928&r2=732929&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java Thu Jan  8 21:34:14 2009
@@ -39,7 +39,7 @@
     private final boolean providedScope;
 
     private final boolean systemScope;
-
+    
     public ScopeArtifactFilter( String scope )
     {
         if ( Artifact.SCOPE_COMPILE.equals( scope ) )
@@ -58,6 +58,14 @@
             runtimeScope = true;
             testScope = false;
         }
+        else if ( Artifact.SCOPE_RUNTIME_PLUS_SYSTEM.equals( scope ) )
+        {
+            systemScope = true;
+            providedScope = false;
+            compileScope = true;
+            runtimeScope = true;
+            testScope = false;
+        }
         else if ( Artifact.SCOPE_TEST.equals( scope ) )
         {
             systemScope = true;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=732929&r1=732928&r2=732929&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 Thu Jan  8 21:34:14 2009
@@ -377,9 +377,15 @@
                                     ArtifactRepository localRepository )
         throws InvalidPluginException, ArtifactNotFoundException, ArtifactResolutionException
     {
+        ArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME_PLUS_SYSTEM );
 
         Set<Artifact> projectPluginDependencies;
 
+        // The case where we have a plugin that can host multiple versions of a particular tool. Say the 
+        // Antlr plugin which has many versions and you may want the plugin to execute with version 2.7.1 of
+        // Antlr versus 2.7.2. In this case the project itself would specify dependencies within the plugin
+        // element.
+        
         try
         {
             projectPluginDependencies = MavenMetadataSource.createArtifacts(
@@ -387,7 +393,7 @@
                                                                              plugin.getDependencies(),
                                                                              null,
                                                                              coreArtifactFilterManager.getCoreArtifactFilter(),
-                                                                             project );
+                                                                             project );            
         }
         catch ( InvalidDependencyVersionException e )
         {
@@ -399,10 +405,7 @@
 
         try
         {
-            resolutionGroup = artifactMetadataSource.retrieve(
-                                                               pluginArtifact,
-                                                               localRepository,
-                                                               project.getRemoteArtifactRepositories() );
+            resolutionGroup = artifactMetadataSource.retrieve( pluginArtifact, localRepository, project.getRemoteArtifactRepositories() );
         }
         catch ( ArtifactMetadataRetrievalException e )
         {
@@ -418,8 +421,8 @@
         try
         {
             MavenProject pluginProject =
-                mavenProjectBuilder.buildFromRepository( pluginArtifact, project.getRemoteArtifactRepositories(),
-                                                         localRepository );
+                mavenProjectBuilder.buildFromRepository( pluginArtifact, project.getRemoteArtifactRepositories(), localRepository );
+            
             if ( pluginProject != null )
             {
                 pluginManagedDependencies = pluginProject.getManagedVersionMap();
@@ -430,8 +433,6 @@
             // this can't happen, it would have blowed up at artifactMetadataSource.retrieve()
         }
 
-//        checkPlexusUtils( resolutionGroup, artifactFactory );
-
         Set<Artifact> dependencies = new LinkedHashSet<Artifact>();
 
         // resolve the plugin dependencies specified in <plugin><dependencies> first:
@@ -446,8 +447,6 @@
 
         repositories.addAll( project.getRemoteArtifactRepositories() );
 
-        ArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME );
-
         ArtifactResolutionResult result = artifactResolver.resolveTransitively(
                                                                                 dependencies,
                                                                                 pluginArtifact,
@@ -455,8 +454,7 @@
                                                                                 localRepository,
                                                                                 repositories.isEmpty()
                                                                                                 ? Collections.EMPTY_LIST
-                                                                                                : new ArrayList(
-                                                                                                                 repositories ),
+                                                                                                : new ArrayList( repositories ),
                                                                                 artifactMetadataSource,
                                                                                 filter );
 

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=732929&r1=732928&r2=732929&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Thu Jan  8 21:34:14 2009
@@ -457,8 +457,10 @@
      * @return {@link Set} &lt; {@link Artifact} >
      * @todo desperately needs refactoring. It's just here because it's implementation is maven-project specific
      */
-    public static Set<Artifact> createArtifacts( ArtifactFactory artifactFactory, List<Dependency> dependencies,
-                                                 String inheritedScope, ArtifactFilter dependencyFilter,
+    public static Set<Artifact> createArtifacts( ArtifactFactory artifactFactory, 
+                                                 List<Dependency> dependencies,
+                                                 String inheritedScope, 
+                                                 ArtifactFilter dependencyFilter,
                                                  MavenProject project )
         throws InvalidDependencyVersionException
     {



Re: svn commit: r732929 - in /maven/components/trunk: maven-compat/src/main/java/org/apache/maven/artifact/ maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ maven-core/src/main/java/org/apache/maven/plugin/ maven-project/src/main/java/...

Posted by Jason van Zyl <jv...@sonatype.com>.
Sure, I can give you mine. Contegix wired in the MAC to the grid so I  
didn't actually look at the specs but I doubt it's as up-to-date as my  
machine here. I'll send the contents along.

On 9-Jan-09, at 5:34 AM, Benjamin Bentmann wrote:

> Hi Jason,
>
>> Author: jvanzyl
>> Date: Thu Jan  8 21:34:14 2009
>> New Revision: 732929
>> URL: http://svn.apache.org/viewvc?rev=732929&view=rev
>> Log:
>> MNG-3586: system scope is working again, the IT does not appear to  
>> work on OS/X. Both 2.0.9 and this snapshot fail the first test of  
>> the IT.
>
> I just fired an IT run with Maven 2.1.x and it passed on all nodes  
> except Windows (due to problems locating JAVA_HOME in /opt/java/sdk/ 
> 1.4), in particular the OS/X node passed [0].
>
> Since I don't have a Mac box around, I would appreciate if somebody  
> could provide me the zipped contents of the working directory for  
> the test IT mng-3586 for analysis.
>
>
> Benjamin
>
>
> [0] http://grid.sonatype.org/ci/job/Maven-2.1.x-bootstrap/jdk=1.4,label=osx/51/console
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

Three may keep a secret if two of them are dead.

  -- Benjamin Franklin


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


Re: svn commit: r732929 - in /maven/components/trunk: maven-compat/src/main/java/org/apache/maven/artifact/ maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ maven-core/src/main/java/org/apache/maven/plugin/ maven-project/src/main/java/...

Posted by Benjamin Bentmann <be...@udo.edu>.
Hi Jason,

> Author: jvanzyl
> Date: Thu Jan  8 21:34:14 2009
> New Revision: 732929
> 
> URL: http://svn.apache.org/viewvc?rev=732929&view=rev
> Log:
> MNG-3586: system scope is working again, the IT does not appear to work on OS/X. Both 2.0.9 and this snapshot fail the first test of the IT.

I just fired an IT run with Maven 2.1.x and it passed on all nodes 
except Windows (due to problems locating JAVA_HOME in 
/opt/java/sdk/1.4), in particular the OS/X node passed [0].

Since I don't have a Mac box around, I would appreciate if somebody 
could provide me the zipped contents of the working directory for the 
test IT mng-3586 for analysis.


Benjamin


[0] 
http://grid.sonatype.org/ci/job/Maven-2.1.x-bootstrap/jdk=1.4,label=osx/51/console

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