1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.transport.jdk;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.net.http.HttpResponse;
24 import java.nio.charset.StandardCharsets;
25 import java.util.Optional;
26
27 import org.eclipse.aether.spi.connector.transport.http.HttpTransporterException;
28 import org.eclipse.aether.spi.connector.transport.http.RFC9457.RFC9457Reporter;
29
30 public class JdkRFC9457Reporter extends RFC9457Reporter<HttpResponse<InputStream>, HttpTransporterException> {
31 public static final JdkRFC9457Reporter INSTANCE = new JdkRFC9457Reporter();
32
33 private JdkRFC9457Reporter() {}
34
35 @Override
36 protected boolean isRFC9457Message(final HttpResponse<InputStream> response) {
37 Optional<String> optionalContentType = response.headers().firstValue("Content-Type");
38 if (optionalContentType.isPresent()) {
39 String contentType = optionalContentType.get();
40 return hasRFC9457ContentType(contentType);
41 }
42 return false;
43 }
44
45 @Override
46 protected int getStatusCode(final HttpResponse<InputStream> response) {
47 return response.statusCode();
48 }
49
50 @Override
51 protected String getReasonPhrase(final HttpResponse<InputStream> response) {
52 return null;
53 }
54
55 @Override
56 protected String getBody(final HttpResponse<InputStream> response) throws IOException {
57 try (InputStream is = response.body()) {
58 return new String(is.readAllBytes(), StandardCharsets.UTF_8);
59 }
60 }
61 }