You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/28 16:54:14 UTC

svn commit: r225788 - in /maven/components/trunk: maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/ maven-artifact/src/main/java/org/apache/maven/artifact/resolver/

Author: brett
Date: Thu Jul 28 07:54:04 2005
New Revision: 225788

URL: http://svn.apache.org/viewcvs?rev=225788&view=rev
Log:
PR: MNG-670
stronger warning if scope gets updated over the root POM

Added:
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java   (with props)
Modified:
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java?rev=225788&r1=225787&r2=225788&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java Thu Jul 28 07:54:04 2005
@@ -66,9 +66,14 @@
         logger.debug( indent + omitted.getId() + " (removed - causes a cycle in the graph)" );
     }
 
+    public void updateScopeCurrentPom( Artifact artifact, String scope )
+    {
+        updateScope( artifact, scope );
+    }
+
     public void updateScope( Artifact artifact, String scope )
     {
-        logger.debug( indent + artifact.getId() + " (settings scope to: " + scope + ")" );
+        logger.debug( indent + artifact.getId() + " (setting scope to: " + scope + ")" );
     }
 
     public void manageArtifact( Artifact artifact, Artifact replacement )

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=225788&r1=225787&r2=225788&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Thu Jul 28 07:54:04 2005
@@ -170,6 +170,8 @@
             listeners.add( new DebugResolutionListener( getLogger() ) );
         }
 
+        listeners.add( new WarningResolutionListener( getLogger() ) );
+
         return resolveTransitively( artifacts, originatingArtifact, managedVersions, localRepository,
                                     remoteRepositories, source, filter, listeners );
 

Added: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java?rev=225788&view=auto
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java (added)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java Thu Jul 28 07:54:04 2005
@@ -0,0 +1,77 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * Send resolution warning events to the warning log.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class WarningResolutionListener
+    implements ResolutionListener
+{
+    private Logger logger;
+
+    public WarningResolutionListener( Logger logger )
+    {
+        this.logger = logger;
+    }
+
+    public void testArtifact( Artifact node )
+    {
+    }
+
+    public void startProcessChildren( Artifact artifact )
+    {
+    }
+
+    public void endProcessChildren( Artifact artifact )
+    {
+    }
+
+    public void includeArtifact( Artifact artifact )
+    {
+    }
+
+    public void omitForNearer( Artifact omitted, Artifact kept )
+    {
+    }
+
+    public void omitForCycle( Artifact omitted )
+    {
+    }
+
+    public void updateScopeCurrentPom( Artifact artifact, String scope )
+    {
+        logger.warn( "\n\tArtifact " + artifact.getId() + " is having scope '" + artifact + "' replaced with '" +
+            scope + "'\n" +
+            "\tas a dependency has given a broader scope. If this is not intended, use -X to locate the dependency,\n" +
+            "\tor force the desired scope using dependencyManagement.\n" );
+    }
+
+    public void updateScope( Artifact artifact, String scope )
+    {
+    }
+
+    public void manageArtifact( Artifact artifact, Artifact replacement )
+    {
+    }
+}

Propchange: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=225788&r1=225787&r2=225788&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Thu Jul 28 07:54:04 2005
@@ -230,7 +230,17 @@
 
         if ( updateScope )
         {
-            fireEvent( ResolutionListener.UPDATE_SCOPE, listeners, previous, newArtifact );
+            int event;
+            if ( previous.getDepth() < 2 )
+            {
+                event = ResolutionListener.UPDATE_SCOPE_CURRENT_POM;
+            }
+            else
+            {
+                event = ResolutionListener.UPDATE_SCOPE;
+            }
+
+            fireEvent( event, listeners, previous, newArtifact );
 
             // previously we cloned the artifact, but it is more effecient to just update the scope
             // if problems are later discovered that the original object needs its original scope value, cloning may
@@ -272,6 +282,9 @@
                     break;
                 case ResolutionListener.UPDATE_SCOPE:
                     listener.updateScope( node.getArtifact(), replacement.getScope() );
+                    break;
+                case ResolutionListener.UPDATE_SCOPE_CURRENT_POM:
+                    listener.updateScopeCurrentPom( node.getArtifact(), replacement.getScope() );
                     break;
                 case ResolutionListener.MANAGE_ARTIFACT:
                     listener.manageArtifact( node.getArtifact(), replacement );

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java?rev=225788&r1=225787&r2=225788&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java Thu Jul 28 07:54:04 2005
@@ -19,7 +19,7 @@
 */
 
 /**
- * TODO: describe
+ * Listens to the resolution process and handles events.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
@@ -44,6 +44,8 @@
 
     int OMIT_FOR_CYCLE = 8;
 
+    int UPDATE_SCOPE_CURRENT_POM = 9;
+
     void testArtifact( Artifact node );
 
     void startProcessChildren( Artifact artifact );
@@ -59,4 +61,6 @@
     void manageArtifact( Artifact artifact, Artifact replacement );
 
     void omitForCycle( Artifact artifact );
+
+    void updateScopeCurrentPom( Artifact artifact, String scope );
 }



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