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.java 649861 2008-04-19 23:03:55Z hboutemy $
32   */
33  public class AntResolutionListener
34      implements ResolutionListener
35  {
36      private String indent = "";
37  
38      private final Project project;
39      
40      private int logLevel;
41  
42      public AntResolutionListener( Project project, boolean verbose )
43      {
44          this.project = project;
45          logLevel = verbose ? Project.MSG_INFO : Project.MSG_VERBOSE;
46      }
47  
48      public void testArtifact( Artifact node )
49      {
50      }
51  
52      public void startProcessChildren( Artifact artifact )
53      {
54          indent += "  ";
55      }
56  
57      public void endProcessChildren( Artifact artifact )
58      {
59          indent = indent.substring( 2 );
60      }
61  
62      public void includeArtifact( Artifact artifact )
63      {
64          project.log( indent + artifact + " (selected)", logLevel );
65      }
66  
67      public void omitForNearer( Artifact omitted, Artifact kept )
68      {
69          project.log( indent + omitted + " (removed - nearer found: " + kept.getVersion() + ")", logLevel );
70      }
71  
72      public void omitForCycle( Artifact omitted )
73      {
74          project.log( indent + omitted + " (removed - causes a cycle in the graph)", logLevel );
75      }
76  
77      public void updateScope( Artifact artifact, String scope )
78      {
79          project.log( indent + artifact + " (setting scope to: " + scope + ")", logLevel );
80      }
81  
82      public void updateScopeCurrentPom( Artifact artifact, String scope )
83      {
84          project.log( indent + artifact + " (not setting scope to: " + scope + "; local scope " + artifact.getScope()
85                       + " wins)", logLevel );
86      }
87  
88      public void selectVersionFromRange( Artifact artifact )
89      {
90          project.log( indent + artifact + " (setting version to: " + artifact.getVersion() + " from range: "
91                       + artifact.getVersionRange() + ")", logLevel );
92      }
93  
94      public void restrictRange( Artifact artifact, Artifact replacement, VersionRange newRange )
95      {
96          project.log( indent + artifact + " (range restricted from: " + artifact.getVersionRange() + " and: "
97                       + replacement.getVersionRange() + " to: " + newRange + " )", logLevel );
98      }
99  
100     public void manageArtifact( Artifact artifact, Artifact replacement )
101     {
102         String msg = indent + artifact;
103         msg += " (";
104         if ( replacement.getVersion() != null )
105         {
106             msg += "applying version: " + replacement.getVersion() + ";";
107         }
108         if ( replacement.getScope() != null )
109         {
110             msg += "applying scope: " + replacement.getScope();
111         }
112         msg += ")";
113         project.log( msg, logLevel );
114     }
115 }