|
45 | 45 | */ |
46 | 46 | public final class RDF4JBodyHandlers { |
47 | 47 |
|
48 | | - private static JsonService jsonService; |
49 | | - private static boolean isJsonServiceInitialized = false; |
50 | | - |
51 | | - private static JsonService getJsonService() { |
52 | | - if (RDF4JBodyHandlers.isJsonServiceInitialized) { |
53 | | - return RDF4JBodyHandlers.jsonService; |
54 | | - } |
55 | | - // It is acceptable for a JenaBodyHandlers instance to be in a classpath without any implementation for |
56 | | - // JsonService, in which case the ProblemDetails exceptions will fallback to default and not be parsed. |
57 | | - JsonService js; |
58 | | - try { |
59 | | - js = ServiceProvider.getJsonService(); |
60 | | - } catch (IllegalStateException e) { |
61 | | - js = null; |
62 | | - } |
63 | | - RDF4JBodyHandlers.jsonService = js; |
64 | | - RDF4JBodyHandlers.isJsonServiceInitialized = true; |
65 | | - return RDF4JBodyHandlers.jsonService; |
| 48 | + private static Boolean isSuccess(final Response.ResponseInfo responseInfo) { |
| 49 | + return responseInfo.statusCode() < 300; |
66 | 50 | } |
67 | 51 |
|
68 | 52 | private static Model responseToModel(final Response.ResponseInfo responseInfo) { |
@@ -94,20 +78,10 @@ public static Response.BodyHandler<Model> ofModel() { |
94 | 78 | * @return an HTTP body handler |
95 | 79 | */ |
96 | 80 | public static Response.BodyHandler<Model> ofRDF4JModel() { |
97 | | - return responseInfo -> { |
98 | | - if (responseInfo.statusCode() >= 300) { |
99 | | - throw new ClientHttpException( |
100 | | - ProblemDetails.fromErrorResponse( |
101 | | - responseInfo.statusCode(), |
102 | | - responseInfo.headers(), |
103 | | - responseInfo.body().array(), |
104 | | - getJsonService() |
105 | | - ), |
106 | | - "Deserializing the RDF from " + responseInfo.uri() + " failed" |
107 | | - ); |
108 | | - } |
109 | | - return responseToModel(responseInfo); |
110 | | - }; |
| 81 | + return Response.BodyHandlers.throwOnError( |
| 82 | + RDF4JBodyHandlers::responseToModel, |
| 83 | + RDF4JBodyHandlers::isSuccess |
| 84 | + ); |
111 | 85 | } |
112 | 86 |
|
113 | 87 | private static Repository responseToRepository(final Response.ResponseInfo responseInfo) { |
@@ -142,20 +116,10 @@ public static Response.BodyHandler<Repository> ofRepository() { |
142 | 116 | * @return an HTTP body handler |
143 | 117 | */ |
144 | 118 | public static Response.BodyHandler<Repository> ofRDF4JRepository() { |
145 | | - return responseInfo -> { |
146 | | - if (responseInfo.statusCode() >= 300) { |
147 | | - throw new ClientHttpException( |
148 | | - ProblemDetails.fromErrorResponse( |
149 | | - responseInfo.statusCode(), |
150 | | - responseInfo.headers(), |
151 | | - responseInfo.body().array(), |
152 | | - getJsonService() |
153 | | - ), |
154 | | - "Deserializing the RDF from " + responseInfo.uri() + " failed" |
155 | | - ); |
156 | | - } |
157 | | - return responseToRepository(responseInfo); |
158 | | - }; |
| 119 | + return Response.BodyHandlers.throwOnError( |
| 120 | + RDF4JBodyHandlers::responseToRepository, |
| 121 | + RDF4JBodyHandlers::isSuccess |
| 122 | + ); |
159 | 123 | } |
160 | 124 |
|
161 | 125 | static RDFFormat toRDF4JFormat(final String mediaType) { |
|
0 commit comments