View Javadoc
1   package org.apache.maven;
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 java.io.FileNotFoundException;
23  
24  import org.codehaus.plexus.logging.Logger;
25  import org.eclipse.aether.AbstractRepositoryListener;
26  import org.eclipse.aether.RepositoryEvent;
27  import org.eclipse.aether.transfer.MetadataNotFoundException;
28  
29  /**
30   * @author Benjamin Bentmann
31   */
32  class LoggingRepositoryListener
33      extends AbstractRepositoryListener
34  {
35  
36      private final Logger logger;
37  
38      public LoggingRepositoryListener( Logger logger )
39      {
40          this.logger = logger;
41      }
42  
43      @Override
44      public void artifactInstalling( RepositoryEvent event )
45      {
46          logger.info( "Installing " + event.getArtifact().getFile() + " to " + event.getFile() );
47      }
48  
49      @Override
50      public void metadataInstalling( RepositoryEvent event )
51      {
52          logger.debug( "Installing " + event.getMetadata() + " to " + event.getFile() );
53      }
54  
55      @Override
56      public void metadataResolved( RepositoryEvent event )
57      {
58          Exception e = event.getException();
59          if ( e != null )
60          {
61              if ( e instanceof MetadataNotFoundException )
62              {
63                  logger.debug( e.getMessage() );
64              }
65              else if ( logger.isDebugEnabled() )
66              {
67                  logger.warn( e.getMessage(), e );
68              }
69              else
70              {
71                  logger.warn( e.getMessage() );
72              }
73          }
74      }
75  
76      @Override
77      public void metadataInvalid( RepositoryEvent event )
78      {
79          Exception exception = event.getException();
80  
81          StringBuilder buffer = new StringBuilder( 256 );
82          buffer.append( "The metadata " );
83          if ( event.getMetadata().getFile() != null )
84          {
85              buffer.append( event.getMetadata().getFile() );
86          }
87          else
88          {
89              buffer.append( event.getMetadata() );
90          }
91  
92          if ( exception instanceof FileNotFoundException )
93          {
94              buffer.append( " is inaccessible" );
95          }
96          else
97          {
98              buffer.append( " is invalid" );
99          }
100 
101         if ( exception != null )
102         {
103             buffer.append( ": " );
104             buffer.append( exception.getMessage() );
105         }
106 
107         if ( logger.isDebugEnabled() )
108         {
109             logger.warn( buffer.toString(), exception );
110         }
111         else
112         {
113             logger.warn( buffer.toString() );
114         }
115     }
116 
117     @Override
118     public void artifactDescriptorInvalid( RepositoryEvent event )
119     {
120         StringBuilder buffer = new StringBuilder( 256 );
121         buffer.append( "The POM for " );
122         buffer.append( event.getArtifact() );
123         buffer.append( " is invalid, transitive dependencies (if any) will not be available" );
124 
125         if ( logger.isDebugEnabled() )
126         {
127             logger.warn( buffer + ": " + event.getException().getMessage() );
128         }
129         else
130         {
131             logger.warn( buffer + ", enable debug logging for more details" );
132         }
133     }
134 
135     @Override
136     public void artifactDescriptorMissing( RepositoryEvent event )
137     {
138         logger.warn( "The POM for " + event.getArtifact() + " is missing, no dependency information available" );
139     }
140 
141 }