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.transfer.AbstractTransferListener;
24 import org.eclipse.aether.transfer.TransferCancelledException;
25 import org.eclipse.aether.transfer.TransferEvent;
26 import org.eclipse.aether.transfer.TransferListener;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 class SafeTransferListener
31 extends AbstractTransferListener
32 {
33
34 private static final Logger LOGGER = LoggerFactory.getLogger( SafeTransferListener.class );
35
36 private final TransferListener listener;
37
38 public static TransferListener wrap( RepositorySystemSession session )
39 {
40 TransferListener listener = session.getTransferListener();
41 if ( listener == null )
42 {
43 return null;
44 }
45 return new SafeTransferListener( listener );
46 }
47
48 protected SafeTransferListener( RepositorySystemSession session )
49 {
50 this( session.getTransferListener() );
51 }
52
53 private SafeTransferListener( TransferListener listener )
54 {
55 this.listener = listener;
56 }
57
58 private void logError( TransferEvent event, Throwable e )
59 {
60 LOGGER.debug( "Failed to dispatch transfer event '{}' to {}", event, listener.getClass().getCanonicalName(), e );
61 }
62
63 @Override
64 public void transferInitiated( TransferEvent event )
65 throws TransferCancelledException
66 {
67 if ( listener != null )
68 {
69 try
70 {
71 listener.transferInitiated( event );
72 }
73 catch ( RuntimeException | LinkageError e )
74 {
75 logError( event, e );
76 }
77 }
78 }
79
80 @Override
81 public void transferStarted( TransferEvent event )
82 throws TransferCancelledException
83 {
84 if ( listener != null )
85 {
86 try
87 {
88 listener.transferStarted( event );
89 }
90 catch ( RuntimeException | LinkageError e )
91 {
92 logError( event, e );
93 }
94 }
95 }
96
97 @Override
98 public void transferProgressed( TransferEvent event )
99 throws TransferCancelledException
100 {
101 if ( listener != null )
102 {
103 try
104 {
105 listener.transferProgressed( event );
106 }
107 catch ( RuntimeException | LinkageError e )
108 {
109 logError( event, e );
110 }
111 }
112 }
113
114 @Override
115 public void transferCorrupted( TransferEvent event )
116 throws TransferCancelledException
117 {
118 if ( listener != null )
119 {
120 try
121 {
122 listener.transferCorrupted( event );
123 }
124 catch ( RuntimeException | LinkageError e )
125 {
126 logError( event, e );
127 }
128 }
129 }
130
131 @Override
132 public void transferSucceeded( TransferEvent event )
133 {
134 if ( listener != null )
135 {
136 try
137 {
138 listener.transferSucceeded( event );
139 }
140 catch ( RuntimeException | LinkageError e )
141 {
142 logError( event, e );
143 }
144 }
145 }
146
147 @Override
148 public void transferFailed( TransferEvent event )
149 {
150 if ( listener != null )
151 {
152 try
153 {
154 listener.transferFailed( event );
155 }
156 catch ( RuntimeException | LinkageError e )
157 {
158 logError( event, e );
159 }
160 }
161 }
162
163 }