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