|
19 | 19 | */ |
20 | 20 | package io.wcm.devops.maven.nodejsproxy.resource; |
21 | 21 |
|
| 22 | +import static javax.ws.rs.core.HttpHeaders.CONTENT_LENGTH; |
22 | 23 | import io.wcm.devops.maven.nodejsproxy.MavenProxyConfiguration; |
23 | 24 |
|
24 | 25 | import java.io.IOException; |
@@ -187,19 +188,15 @@ public Response getBinary( |
187 | 188 | log.info("Proxy file: {}", url); |
188 | 189 | HttpGet get = new HttpGet(url); |
189 | 190 | HttpResponse response = httpClient.execute(get); |
190 | | - try { |
191 | | - if (response.getStatusLine().getStatusCode() == HttpServletResponse.SC_OK) { |
192 | | - byte[] data = EntityUtils.toByteArray(response.getEntity()); |
193 | | - return Response.ok(data) |
194 | | - .type(MediaType.APPLICATION_OCTET_STREAM) |
195 | | - .build(); |
196 | | - } |
197 | | - else { |
198 | | - return Response.status(Response.Status.NOT_FOUND).build(); |
199 | | - } |
| 191 | + if (response.getStatusLine().getStatusCode() == HttpServletResponse.SC_OK) { |
| 192 | + return Response.ok(new SpoolStreamingOutput(response.getEntity())) |
| 193 | + .type(MediaType.APPLICATION_OCTET_STREAM) |
| 194 | + .header(CONTENT_LENGTH, response.containsHeader(CONTENT_LENGTH) ? response.getFirstHeader(CONTENT_LENGTH).getValue() : null) |
| 195 | + .build(); |
200 | 196 | } |
201 | | - finally { |
| 197 | + else { |
202 | 198 | EntityUtils.consumeQuietly(response.getEntity()); |
| 199 | + return Response.status(Response.Status.NOT_FOUND).build(); |
203 | 200 | } |
204 | 201 | } |
205 | 202 | } |
@@ -242,26 +239,24 @@ public Response getBinary( |
242 | 239 | log.info("Proxy file: {}", url); |
243 | 240 | HttpGet get = new HttpGet(url); |
244 | 241 | HttpResponse response = httpClient.execute(get); |
245 | | - try { |
246 | | - if (response.getStatusLine().getStatusCode() == HttpServletResponse.SC_OK) { |
| 242 | + if (response.getStatusLine().getStatusCode() == HttpServletResponse.SC_OK) { |
| 243 | + if (getChecksum) { |
247 | 244 | byte[] data = EntityUtils.toByteArray(response.getEntity()); |
248 | | - if (getChecksum) { |
249 | | - return Response.ok(DigestUtils.sha1Hex(data)) |
250 | | - .type(MediaType.TEXT_PLAIN) |
251 | | - .build(); |
252 | | - } |
253 | | - else { |
254 | | - return Response.ok(data) |
255 | | - .type(MediaType.APPLICATION_OCTET_STREAM) |
256 | | - .build(); |
257 | | - } |
| 245 | + EntityUtils.consumeQuietly(response.getEntity()); |
| 246 | + return Response.ok(DigestUtils.sha1Hex(data)) |
| 247 | + .type(MediaType.TEXT_PLAIN) |
| 248 | + .build(); |
258 | 249 | } |
259 | 250 | else { |
260 | | - return Response.status(Response.Status.NOT_FOUND).build(); |
| 251 | + return Response.ok(new SpoolStreamingOutput(response.getEntity())) |
| 252 | + .type(MediaType.APPLICATION_OCTET_STREAM) |
| 253 | + .header(CONTENT_LENGTH, response.containsHeader(CONTENT_LENGTH) ? response.getFirstHeader(CONTENT_LENGTH).getValue() : null) |
| 254 | + .build(); |
261 | 255 | } |
262 | 256 | } |
263 | | - finally { |
| 257 | + else { |
264 | 258 | EntityUtils.consumeQuietly(response.getEntity()); |
| 259 | + return Response.status(Response.Status.NOT_FOUND).build(); |
265 | 260 | } |
266 | 261 | } |
267 | 262 |
|
|
0 commit comments