View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.internal.aether;
20  
21  import java.io.FileNotFoundException;
22  import org.eclipse.aether.AbstractRepositoryListener;
23  import org.eclipse.aether.RepositoryEvent;
24  import org.eclipse.aether.transfer.MetadataNotFoundException;
25  import org.slf4j.Logger;
26  
27  /**
28   * @author Benjamin Bentmann
29   */
30  class LoggingRepositoryListener extends AbstractRepositoryListener {
31  
32      private final Logger logger;
33  
34      LoggingRepositoryListener(Logger logger) {
35          this.logger = logger;
36      }
37  
38      @Override
39      public void artifactInstalling(RepositoryEvent event) {
40          logger.info("Installing " + event.getArtifact().getFile() + " to " + event.getFile());
41      }
42  
43      @Override
44      public void metadataInstalling(RepositoryEvent event) {
45          logger.debug("Installing " + event.getMetadata() + " to " + event.getFile());
46      }
47  
48      @Override
49      public void metadataResolved(RepositoryEvent event) {
50          Exception e = event.getException();
51          if (e != null) {
52              if (e instanceof MetadataNotFoundException) {
53                  logger.debug(e.getMessage());
54              } else if (logger.isDebugEnabled()) {
55                  logger.warn(e.getMessage(), e);
56              } else {
57                  logger.warn(e.getMessage());
58              }
59          }
60      }
61  
62      @Override
63      public void metadataInvalid(RepositoryEvent event) {
64          Exception exception = event.getException();
65  
66          StringBuilder buffer = new StringBuilder(256);
67          buffer.append("The metadata ");
68          if (event.getMetadata().getFile() != null) {
69              buffer.append(event.getMetadata().getFile());
70          } else {
71              buffer.append(event.getMetadata());
72          }
73  
74          if (exception instanceof FileNotFoundException) {
75              buffer.append(" is inaccessible");
76          } else {
77              buffer.append(" is invalid");
78          }
79  
80          if (exception != null) {
81              buffer.append(": ");
82              buffer.append(exception.getMessage());
83          }
84  
85          if (logger.isDebugEnabled()) {
86              logger.warn(buffer.toString(), exception);
87          } else {
88              logger.warn(buffer.toString());
89          }
90      }
91  
92      @Override
93      public void artifactDescriptorInvalid(RepositoryEvent event) {
94          StringBuilder buffer = new StringBuilder(256);
95          buffer.append("The POM for ");
96          buffer.append(event.getArtifact());
97          buffer.append(" is invalid, transitive dependencies (if any) will not be available");
98  
99          if (logger.isDebugEnabled()) {
100             logger.warn(buffer + ": " + event.getException().getMessage());
101         } else {
102             logger.warn(buffer + ", enable verbose output (-X) for more details");
103         }
104     }
105 
106     @Override
107     public void artifactDescriptorMissing(RepositoryEvent event) {
108         logger.warn("The POM for " + event.getArtifact() + " is missing, no dependency information available");
109     }
110 }