3232import org .eclipse .rdf4j .model .vocabulary .LDP ;
3333import org .eclipse .rdf4j .model .vocabulary .RDF ;
3434import org .eclipse .rdf4j .rio .RDFFormat ;
35- import org .springframework .beans .factory .annotation .Autowired ;
3635import org .springframework .http .*;
3736import org .springframework .scheduling .annotation .Async ;
3837import org .springframework .stereotype .Service ;
3938import org .springframework .web .client .HttpClientErrorException ;
39+ import org .springframework .web .client .RestClient ;
4040import org .springframework .web .client .RestClientException ;
41- import org .springframework .web .client .RestTemplate ;
4241
4342import java .util .*;
4443
@@ -57,11 +56,17 @@ public class HarvesterService {
5756
5857 private static final String DEFAULT_NAVIGATION_SHACL = "defaultNavigationShacl.ttl" ;
5958
60- @ Autowired
61- private GenericMetadataRepository genericMetadataRepository ;
59+ private final GenericMetadataRepository genericMetadataRepository ;
6260
63- @ Autowired
64- private RestTemplate restTemplate ;
61+ private final RestClient client ;
62+
63+ /**
64+ * Constructor (autowired)
65+ */
66+ public HarvesterService (GenericMetadataRepository genericMetadataRepository , RestClient client ) {
67+ this .genericMetadataRepository = genericMetadataRepository ;
68+ this .client = client ;
69+ }
6570
6671 public void deleteHarvestedData (String clientUrl ) throws MetadataRepositoryException {
6772 genericMetadataRepository .remove (i (clientUrl ));
@@ -137,12 +142,14 @@ model, i(container.stringValue()), LDP.CONTAINS
137142
138143 private Model makeRequest (String uri ) {
139144 log .info ("Making request to '{}'" , uri );
140- final HttpHeaders headers = new HttpHeaders ();
141- headers .setAccept (List .of (MediaType .parseMediaType (RDFFormat .TURTLE .getDefaultMIMEType ())));
142- final HttpEntity <Void > entity = new HttpEntity <>(null , headers );
143145 try {
144146 final ResponseEntity <String > response =
145- restTemplate .exchange (uri , HttpMethod .GET , entity , String .class );
147+ client .method (HttpMethod .GET )
148+ .uri (uri )
149+ .headers (httpHeaders -> httpHeaders .setAccept (
150+ List .of (MediaType .parseMediaType (RDFFormat .TURTLE .getDefaultMIMEType ()))))
151+ .retrieve ()
152+ .toEntity (String .class );
146153 if (!response .getStatusCode ().is2xxSuccessful ()) {
147154 log .info ("Request to '{}' failed ({})" , uri , response .getStatusCode ());
148155 throw new HttpClientErrorException (response .getStatusCode ());
0 commit comments