1 package org.apache.maven.usability;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.artifact.manager.WagonManager;
23 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
24 import org.apache.maven.usability.diagnostics.DiagnosisUtils;
25 import org.apache.maven.usability.diagnostics.ErrorDiagnoser;
26
27 public class ArtifactNotFoundDiagnoser
28 implements ErrorDiagnoser
29 {
30
31 private WagonManager wagonManager;
32
33 public boolean canDiagnose( Throwable error )
34 {
35 return DiagnosisUtils.containsInCausality( error, ArtifactNotFoundException.class );
36 }
37
38 public String diagnose( Throwable error )
39 {
40 ArtifactNotFoundException exception =
41 (ArtifactNotFoundException) DiagnosisUtils.getFromCausality( error, ArtifactNotFoundException.class );
42
43 StringBuffer message = new StringBuffer();
44
45 message.append( "Failed to resolve artifact.\n" );
46 message.append( "\nGroupId: " ).append( exception.getGroupId() );
47 message.append( "\nArtifactId: " ).append( exception.getArtifactId() );
48 message.append( "\nVersion: " ).append( exception.getVersion() );
49 message.append( "\n\n" );
50 message.append( "Reason: " ).append( exception.getMessage() );
51
52 if ( !wagonManager.isOnline() )
53 {
54 message.append( "\n" ).append( SystemWarnings.getOfflineWarning() );
55 }
56
57 message.append( "\n" );
58
59 return message.toString();
60 }
61
62 }