2323import com .atomgraph .linkeddatahub .server .security .AgentContext ;
2424import com .atomgraph .linkeddatahub .server .security .IDTokenSecurityContext ;
2525import com .atomgraph .linkeddatahub .server .security .WebIDSecurityContext ;
26+ import static jakarta .ws .rs .HttpMethod .PATCH ;
2627import java .net .URI ;
2728import jakarta .ws .rs .client .Client ;
2829import jakarta .ws .rs .client .Entity ;
30+ import jakarta .ws .rs .client .Invocation ;
2931import jakarta .ws .rs .client .WebTarget ;
3032import jakarta .ws .rs .core .HttpHeaders ;
31- import jakarta .ws .rs .core .MediaType ;
3233import jakarta .ws .rs .core .MultivaluedMap ;
3334import jakarta .ws .rs .core .Response ;
34- import org .apache .jena .rdf .model .Model ;
35+ import java .util .List ;
36+ import java .util .Map ;
3537import org .apache .jena .update .UpdateRequest ;
3638import org .slf4j .Logger ;
3739import org .slf4j .LoggerFactory ;
@@ -184,54 +186,42 @@ protected WebTarget getWebTarget(URI uri)
184186 }
185187
186188 @ Override
187- public Response get ( URI uri , jakarta . ws . rs . core . MediaType [] acceptedTypes )
189+ protected Invocation . Builder applyHeaders ( Invocation . Builder builder , MultivaluedMap < String , Object > headers )
188190 {
189- WebTarget webTarget = getWebTarget (uri );
190- return new RetryAfterHelper (getDefaultDelayMillis (), getMaxRetryCount ()).invokeWithRetry (() ->
191- webTarget .request (acceptedTypes )
192- .header (HttpHeaders .USER_AGENT , getUserAgentHeaderValue ())
193- .get ());
191+ if (headers != null )
192+ for (Map .Entry <String , List <Object >> entry : headers .entrySet ())
193+ for (Object value : entry .getValue ())
194+ builder = builder .header (entry .getKey (), value );
195+
196+ return builder .header (HttpHeaders .USER_AGENT , getUserAgentHeaderValue ());
194197 }
195-
198+
196199 @ Override
197- public Response post (URI uri , Entity entity , MediaType [] acceptedTypes )
200+ public Response get (URI uri , jakarta . ws . rs . core . MediaType [] acceptedTypes , MultivaluedMap < String , Object > headers )
198201 {
199- WebTarget webTarget = getWebTarget (uri );
200202 return new RetryAfterHelper (getDefaultDelayMillis (), getMaxRetryCount ()).invokeWithRetry (() ->
201- webTarget .request (acceptedTypes ). post ( entity ));
203+ applyHeaders ( getWebTarget ( uri ) .request (acceptedTypes ), headers ). get ( ));
202204 }
203-
205+
204206 @ Override
205- public Response put (URI uri , Entity entity , MediaType [] acceptedTypes )
207+ public Response post (URI uri , Entity entity , jakarta . ws . rs . core . MediaType [] acceptedTypes , MultivaluedMap < String , Object > headers )
206208 {
207- WebTarget webTarget = getWebTarget (uri );
208209 return new RetryAfterHelper (getDefaultDelayMillis (), getMaxRetryCount ()).invokeWithRetry (() ->
209- webTarget .request (acceptedTypes ). put (entity ));
210+ applyHeaders ( getWebTarget ( uri ) .request (acceptedTypes ), headers ). post (entity ));
210211 }
211212
212- /**
213- * Sends a PUT request with RDF model data to the specified URI.
214- *
215- * @param uri the target URI
216- * @param model the RDF model to send
217- * @param headers additional HTTP headers
218- * @return the HTTP response
219- */
220- public Response put (URI uri , Model model , MultivaluedMap <String , Object > headers )
213+ @ Override
214+ public Response put (URI uri , Entity entity , jakarta .ws .rs .core .MediaType [] acceptedTypes , MultivaluedMap <String , Object > headers )
221215 {
222- WebTarget webTarget = getWebTarget (uri );
223216 return new RetryAfterHelper (getDefaultDelayMillis (), getMaxRetryCount ()).invokeWithRetry (() ->
224- webTarget .request (getReadableMediaTypes (Model .class )).
225- headers (headers ).
226- put (Entity .entity (model , getDefaultMediaType ())));
217+ applyHeaders (getWebTarget (uri ).request (acceptedTypes ), headers ).put (entity ));
227218 }
228219
229220 @ Override
230- public Response delete (URI uri )
221+ public Response delete (URI uri , jakarta . ws . rs . core . MediaType [] acceptedTypes , MultivaluedMap < String , String > params , MultivaluedMap < String , Object > headers )
231222 {
232- WebTarget webTarget = getWebTarget (uri );
233223 return new RetryAfterHelper (getDefaultDelayMillis (), getMaxRetryCount ()).invokeWithRetry (() ->
234- webTarget .request ().delete ());
224+ applyHeaders ( getWebTarget ( uri ) .request (acceptedTypes ), headers ).delete ());
235225 }
236226
237227 /**
@@ -249,7 +239,7 @@ public Response patch(URI uri, UpdateRequest updateRequest)
249239 String updateString = updateRequest .toString ();
250240
251241 return new RetryAfterHelper (getDefaultDelayMillis (), getMaxRetryCount ()).invokeWithRetry (() ->
252- webTarget .request ().method (" PATCH" , Entity .entity (updateString , "application/sparql-update" )));
242+ webTarget .request ().method (PATCH , Entity .entity (updateString , com . atomgraph . linkeddatahub . MediaType . APPLICATION_SPARQL_UPDATE_TYPE )));
253243 }
254244
255245 /**
0 commit comments