1 package org.eclipse.aether.internal.impl;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.eclipse.aether.RepositorySystemSession;
23 import org.eclipse.aether.spi.log.Logger;
24 import org.eclipse.aether.transfer.AbstractTransferListener;
25 import org.eclipse.aether.transfer.TransferCancelledException;
26 import org.eclipse.aether.transfer.TransferEvent;
27 import org.eclipse.aether.transfer.TransferListener;
28
29 class SafeTransferListener
30 extends AbstractTransferListener
31 {
32
33 private final Logger logger;
34
35 private final TransferListener listener;
36
37 public static TransferListener wrap( RepositorySystemSession session, Logger logger )
38 {
39 TransferListener listener = session.getTransferListener();
40 if ( listener == null )
41 {
42 return null;
43 }
44 return new SafeTransferListener( listener, logger );
45 }
46
47 protected SafeTransferListener( RepositorySystemSession session, Logger logger )
48 {
49 this( session.getTransferListener(), logger );
50 }
51
52 private SafeTransferListener( TransferListener listener, Logger logger )
53 {
54 this.listener = listener;
55 this.logger = logger;
56 }
57
58 private void logError( TransferEvent event, Throwable e )
59 {
60 String msg = "Failed to dispatch transfer event '" + event + "' to " + listener.getClass().getCanonicalName();
61 logger.debug( msg, e );
62 }
63
64 @Override
65 public void transferInitiated( TransferEvent event )
66 throws TransferCancelledException
67 {
68 if ( listener != null )
69 {
70 try
71 {
72 listener.transferInitiated( event );
73 }
74 catch ( RuntimeException e )
75 {
76 logError( event, e );
77 }
78 catch ( LinkageError e )
79 {
80 logError( event, e );
81 }
82 }
83 }
84
85 @Override
86 public void transferStarted( TransferEvent event )
87 throws TransferCancelledException
88 {
89 if ( listener != null )
90 {
91 try
92 {
93 listener.transferStarted( event );
94 }
95 catch ( RuntimeException e )
96 {
97 logError( event, e );
98 }
99 catch ( LinkageError e )
100 {
101 logError( event, e );
102 }
103 }
104 }
105
106 @Override
107 public void transferProgressed( TransferEvent event )
108 throws TransferCancelledException
109 {
110 if ( listener != null )
111 {
112 try
113 {
114 listener.transferProgressed( event );
115 }
116 catch ( RuntimeException e )
117 {
118 logError( event, e );
119 }
120 catch ( LinkageError e )
121 {
122 logError( event, e );
123 }
124 }
125 }
126
127 @Override
128 public void transferCorrupted( TransferEvent event )
129 throws TransferCancelledException
130 {
131 if ( listener != null )
132 {
133 try
134 {
135 listener.transferCorrupted( event );
136 }
137 catch ( RuntimeException e )
138 {
139 logError( event, e );
140 }
141 catch ( LinkageError e )
142 {
143 logError( event, e );
144 }
145 }
146 }
147
148 @Override
149 public void transferSucceeded( TransferEvent event )
150 {
151 if ( listener != null )
152 {
153 try
154 {
155 listener.transferSucceeded( event );
156 }
157 catch ( RuntimeException e )
158 {
159 logError( event, e );
160 }
161 catch ( LinkageError e )
162 {
163 logError( event, e );
164 }
165 }
166 }
167
168 @Override
169 public void transferFailed( TransferEvent event )
170 {
171 if ( listener != null )
172 {
173 try
174 {
175 listener.transferFailed( event );
176 }
177 catch ( RuntimeException e )
178 {
179 logError( event, e );
180 }
181 catch ( LinkageError e )
182 {
183 logError( event, e );
184 }
185 }
186 }
187
188 }