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.plugin.MojoFailureException;
23 import org.apache.maven.usability.diagnostics.DiagnosisUtils;
24 import org.apache.maven.usability.diagnostics.ErrorDiagnoser;
25
26 public class MojoFailureExceptionDiagnoser
27 implements ErrorDiagnoser
28 {
29
30 public boolean canDiagnose( Throwable error )
31 {
32 return DiagnosisUtils.containsInCausality( error, MojoFailureException.class );
33 }
34
35 public String diagnose( Throwable error )
36 {
37 MojoFailureException mfe =
38 (MojoFailureException) DiagnosisUtils.getFromCausality( error, MojoFailureException.class );
39
40 StringBuffer message = new StringBuffer();
41
42 Object source = mfe.getSource();
43 if ( source != null )
44 {
45 message.append( ": " ).append( mfe.getSource() ).append( "\n" );
46 }
47
48 String shortMessage = mfe.getMessage();
49 if ( shortMessage != null )
50 {
51 message.append( shortMessage );
52 }
53
54 String longMessage = mfe.getLongMessage();
55
56
57 if ( longMessage != null && !longMessage.equals( shortMessage ) && shortMessage.indexOf( longMessage ) < 0 )
58 {
59 message.append( "\n\n" ).append( longMessage );
60 }
61
62 return message.toString();
63 }
64
65 }