View Javadoc

1   package org.apache.maven.artifact.ant;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.maven.artifact.Artifact;
23  import org.apache.maven.artifact.resolver.ResolutionListener;
24  import org.apache.maven.artifact.versioning.VersionRange;
25  import org.apache.tools.ant.Project;
26  
27  /**
28   * Show resolution information in Ant.
29   *
30   * @author <a href="mailto:brett@apache.org">Brett Porter</a>
31   * @version $Id: AntResolutionListener.html 806929 2012-03-01 18:57:40Z hboutemy $
32   */
33  public class AntResolutionListener
34      implements ResolutionListener
35  {
36      private String indent = "  ";
37  
38      private final Project project;
39      
40      public AntResolutionListener( Project project )
41      {
42          this.project = project;
43      }
44  
45      public void testArtifact( Artifact node )
46      {
47      }
48  
49      public void startProcessChildren( Artifact artifact )
50      {
51          indent += "  ";
52      }
53  
54      public void endProcessChildren( Artifact artifact )
55      {
56          indent = indent.substring( 2 );
57      }
58  
59      public void includeArtifact( Artifact artifact )
60      {
61          project.log( indent + artifact + " (selected)", Project.MSG_VERBOSE );
62      }
63  
64      public void omitForNearer( Artifact omitted, Artifact kept )
65      {
66          project.log( indent + omitted + " (removed - nearer found: " + kept.getVersion() + ")", Project.MSG_VERBOSE );
67      }
68  
69      public void omitForCycle( Artifact omitted )
70      {
71          project.log( indent + omitted + " (removed - causes a cycle in the graph)", Project.MSG_VERBOSE );
72      }
73  
74      public void updateScope( Artifact artifact, String scope )
75      {
76          project.log( indent + artifact + " (setting scope to: " + scope + ")", Project.MSG_VERBOSE );
77      }
78  
79      public void updateScopeCurrentPom( Artifact artifact, String scope )
80      {
81          project.log( indent + artifact + " (not setting scope to: " + scope + "; local scope " + artifact.getScope()
82                       + " wins)", Project.MSG_VERBOSE );
83      }
84  
85      public void selectVersionFromRange( Artifact artifact )
86      {
87          project.log( indent + artifact + " (setting version to: " + artifact.getVersion() + " from range: "
88                       + artifact.getVersionRange() + ")", Project.MSG_VERBOSE );
89      }
90  
91      public void restrictRange( Artifact artifact, Artifact replacement, VersionRange newRange )
92      {
93          project.log( indent + artifact + " (range restricted from: " + artifact.getVersionRange() + " and: "
94                       + replacement.getVersionRange() + " to: " + newRange + " )", Project.MSG_VERBOSE );
95      }
96  
97      public void manageArtifact( Artifact artifact, Artifact replacement )
98      {
99          String msg = indent + artifact;
100         msg += " (";
101         if ( replacement.getVersion() != null )
102         {
103             msg += "applying version: " + replacement.getVersion() + ";";
104         }
105         if ( replacement.getScope() != null )
106         {
107             msg += "applying scope: " + replacement.getScope();
108         }
109         msg += ")";
110         project.log( msg, Project.MSG_VERBOSE );
111     }
112 }