1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.client;
20
21 import java.util.List;
22
23 import org.eclipse.jetty.client.api.Request;
24 import org.eclipse.jetty.util.log.Log;
25 import org.eclipse.jetty.util.log.Logger;
26
27 public class RequestNotifier
28 {
29 private static final Logger LOG = Log.getLogger(ResponseNotifier.class);
30
31 private final HttpClient client;
32
33 public RequestNotifier(HttpClient client)
34 {
35 this.client = client;
36 }
37
38 public void notifyQueued(Request request)
39 {
40
41 List<Request.RequestListener> requestListeners = request.getRequestListeners(null);
42 for (int i = 0; i < requestListeners.size(); ++i)
43 {
44 Request.RequestListener listener = requestListeners.get(i);
45 if (listener instanceof Request.QueuedListener)
46 notifyQueued((Request.QueuedListener)listener, request);
47 }
48 List<Request.Listener> listeners = client.getRequestListeners();
49 for (int i = 0; i < listeners.size(); ++i)
50 {
51 Request.Listener listener = listeners.get(i);
52 notifyQueued(listener, request);
53 }
54 }
55
56 private void notifyQueued(Request.QueuedListener listener, Request request)
57 {
58 try
59 {
60 listener.onQueued(request);
61 }
62 catch (Exception x)
63 {
64 LOG.info("Exception while notifying listener " + listener, x);
65 }
66 }
67
68 public void notifyBegin(Request request)
69 {
70
71 List<Request.RequestListener> requestListeners = request.getRequestListeners(null);
72 for (int i = 0; i < requestListeners.size(); ++i)
73 {
74 Request.RequestListener listener = requestListeners.get(i);
75 if (listener instanceof Request.BeginListener)
76 notifyBegin((Request.BeginListener)listener, request);
77 }
78 List<Request.Listener> listeners = client.getRequestListeners();
79 for (int i = 0; i < listeners.size(); ++i)
80 {
81 Request.Listener listener = listeners.get(i);
82 notifyBegin(listener, request);
83 }
84 }
85
86 private void notifyBegin(Request.BeginListener listener, Request request)
87 {
88 try
89 {
90 listener.onBegin(request);
91 }
92 catch (Exception x)
93 {
94 LOG.info("Exception while notifying listener " + listener, x);
95 }
96 }
97
98 public void notifyHeaders(Request request)
99 {
100
101 List<Request.RequestListener> requestListeners = request.getRequestListeners(null);
102 for (int i = 0; i < requestListeners.size(); ++i)
103 {
104 Request.RequestListener listener = requestListeners.get(i);
105 if (listener instanceof Request.HeadersListener)
106 notifyHeaders((Request.HeadersListener)listener, request);
107 }
108 List<Request.Listener> listeners = client.getRequestListeners();
109 for (int i = 0; i < listeners.size(); ++i)
110 {
111 Request.Listener listener = listeners.get(i);
112 notifyHeaders(listener, request);
113 }
114 }
115
116 private void notifyHeaders(Request.HeadersListener listener, Request request)
117 {
118 try
119 {
120 listener.onHeaders(request);
121 }
122 catch (Exception x)
123 {
124 LOG.info("Exception while notifying listener " + listener, x);
125 }
126 }
127
128 public void notifyCommit(Request request)
129 {
130
131 List<Request.RequestListener> requestListeners = request.getRequestListeners(null);
132 for (int i = 0; i < requestListeners.size(); ++i)
133 {
134 Request.RequestListener listener = requestListeners.get(i);
135 if (listener instanceof Request.CommitListener)
136 notifyCommit((Request.CommitListener)listener, request);
137 }
138 List<Request.Listener> listeners = client.getRequestListeners();
139 for (int i = 0; i < listeners.size(); ++i)
140 {
141 Request.Listener listener = listeners.get(i);
142 notifyCommit(listener, request);
143 }
144 }
145
146 private void notifyCommit(Request.CommitListener listener, Request request)
147 {
148 try
149 {
150 listener.onCommit(request);
151 }
152 catch (Exception x)
153 {
154 LOG.info("Exception while notifying listener " + listener, x);
155 }
156 }
157
158 public void notifySuccess(Request request)
159 {
160
161 List<Request.RequestListener> requestListeners = request.getRequestListeners(null);
162 for (int i = 0; i < requestListeners.size(); ++i)
163 {
164 Request.RequestListener listener = requestListeners.get(i);
165 if (listener instanceof Request.SuccessListener)
166 notifySuccess((Request.SuccessListener)listener, request);
167 }
168 List<Request.Listener> listeners = client.getRequestListeners();
169 for (int i = 0; i < listeners.size(); ++i)
170 {
171 Request.Listener listener = listeners.get(i);
172 notifySuccess(listener, request);
173 }
174 }
175
176 private void notifySuccess(Request.SuccessListener listener, Request request)
177 {
178 try
179 {
180 listener.onSuccess(request);
181 }
182 catch (Exception x)
183 {
184 LOG.info("Exception while notifying listener " + listener, x);
185 }
186 }
187
188 public void notifyFailure(Request request, Throwable failure)
189 {
190
191 List<Request.RequestListener> requestListeners = request.getRequestListeners(null);
192 for (int i = 0; i < requestListeners.size(); ++i)
193 {
194 Request.RequestListener listener = requestListeners.get(i);
195 if (listener instanceof Request.FailureListener)
196 notifyFailure((Request.FailureListener)listener, request, failure);
197 }
198 List<Request.Listener> listeners = client.getRequestListeners();
199 for (int i = 0; i < listeners.size(); ++i)
200 {
201 Request.Listener listener = listeners.get(i);
202 notifyFailure(listener, request, failure);
203 }
204 }
205
206 private void notifyFailure(Request.FailureListener listener, Request request, Throwable failure)
207 {
208 try
209 {
210 listener.onFailure(request, failure);
211 }
212 catch (Exception x)
213 {
214 LOG.info("Exception while notifying listener " + listener, x);
215 }
216 }
217 }