diff --git a/pom.xml b/pom.xml
index 5759e9c9..3b860ef9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,7 +97,8 @@ under the License.
${javaVersion}
${javaVersion}
[3.8.7,)
- [17.0.6,18)
+
+ [17.0.6,21)
true
true
diff --git a/search-api/pom.xml b/search-api/pom.xml
index 622053be..d2e40806 100644
--- a/search-api/pom.xml
+++ b/search-api/pom.xml
@@ -31,10 +31,6 @@ under the License.
Maven :: Search API
Indexer Search API.
-
- 8
-
-
diff --git a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/Java11HttpClientRemoteRepositorySearchTransport.java b/search-api/src/main/java/org/apache/maven/search/transport/Java11HttpClientTransport.java
similarity index 89%
rename from search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/Java11HttpClientRemoteRepositorySearchTransport.java
rename to search-api/src/main/java/org/apache/maven/search/transport/Java11HttpClientTransport.java
index 42be6b9f..5a0019c6 100644
--- a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/Java11HttpClientRemoteRepositorySearchTransport.java
+++ b/search-api/src/main/java/org/apache/maven/search/transport/Java11HttpClientTransport.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.search.backend.remoterepository.internal;
+package org.apache.maven.search.transport;
import java.io.IOException;
import java.io.InputStream;
@@ -29,14 +29,12 @@
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.maven.search.backend.remoterepository.RemoteRepositorySearchTransport;
-
import static java.util.Objects.requireNonNull;
/**
* Java 11 {@link HttpClient} backed transport.
*/
-public class Java11HttpClientRemoteRepositorySearchTransport implements RemoteRepositorySearchTransport {
+public class Java11HttpClientTransport implements Transport {
private static class ResponseImpl implements Response {
private final HttpResponse> response;
@@ -78,11 +76,11 @@ public void close() throws IOException {
private final HttpClient client;
- public Java11HttpClientRemoteRepositorySearchTransport() {
+ public Java11HttpClientTransport() {
this(Duration.ofSeconds(10L));
}
- public Java11HttpClientRemoteRepositorySearchTransport(Duration timeout) {
+ public Java11HttpClientTransport(Duration timeout) {
this(
timeout,
HttpClient.newBuilder()
@@ -91,7 +89,7 @@ public Java11HttpClientRemoteRepositorySearchTransport(Duration timeout) {
.build());
}
- public Java11HttpClientRemoteRepositorySearchTransport(Duration timeout, HttpClient client) {
+ public Java11HttpClientTransport(Duration timeout, HttpClient client) {
this.timeout = requireNonNull(timeout);
this.client = requireNonNull(client);
}
diff --git a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchTransport.java b/search-api/src/main/java/org/apache/maven/search/transport/Transport.java
similarity index 79%
rename from search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchTransport.java
rename to search-api/src/main/java/org/apache/maven/search/transport/Transport.java
index e01a8598..c8fbc44d 100644
--- a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchTransport.java
+++ b/search-api/src/main/java/org/apache/maven/search/transport/Transport.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.search.backend.remoterepository;
+package org.apache.maven.search.transport;
import java.io.Closeable;
import java.io.IOException;
@@ -24,9 +24,12 @@
import java.util.Map;
/**
- * A trivial "transport abstraction" to make possible pluggable implementations.
+ * A trivial "transport abstraction" to make possible pluggable implementations. Most obviously leans toward HTTP,
+ * but is not limited to.
+ *
+ * @since TBD
*/
-public interface RemoteRepositorySearchTransport {
+public interface Transport {
/**
* Trivial response.
*/
@@ -39,12 +42,12 @@ interface Response extends Closeable {
}
/**
- * This method should issue a HTTP GET requests using {@code serviceUri} and return response.
+ * This method should issue HTTP GET requests using {@code serviceUri} and return response.
*/
Response get(String serviceUri, Map headers) throws IOException;
/**
- * This method should issue a HTTP HEAD requests using {@code serviceUri} and return response.
+ * This method should issue HTTP HEAD requests using {@code serviceUri} and return response.
*/
Response head(String serviceUri, Map headers) throws IOException;
}
diff --git a/search-backend-remoterepository/pom.xml b/search-backend-remoterepository/pom.xml
index 9f8a2ec8..6649b21e 100644
--- a/search-backend-remoterepository/pom.xml
+++ b/search-backend-remoterepository/pom.xml
@@ -31,10 +31,6 @@ under the License.
Maven :: Search API Remote Repository Backend
Indexer Search Backend implemented by remote repository (limited).
-
- 11
-
-
org.apache.maven.indexer
diff --git a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchBackendFactory.java b/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchBackendFactory.java
index 4acb6289..d2dc515b 100644
--- a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchBackendFactory.java
+++ b/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/RemoteRepositorySearchBackendFactory.java
@@ -20,8 +20,9 @@
import org.apache.maven.search.backend.remoterepository.extractor.MavenCentralResponseExtractor;
import org.apache.maven.search.backend.remoterepository.extractor.Nx2ResponseExtractor;
-import org.apache.maven.search.backend.remoterepository.internal.Java11HttpClientRemoteRepositorySearchTransport;
import org.apache.maven.search.backend.remoterepository.internal.RemoteRepositorySearchBackendImpl;
+import org.apache.maven.search.transport.Java11HttpClientTransport;
+import org.apache.maven.search.transport.Transport;
/**
* The remote repository search backend factory.
@@ -45,7 +46,7 @@ public static RemoteRepositorySearchBackend createDefaultMavenCentral() {
BACKEND_ID,
CENTRAL_REPOSITORY_ID,
CENTRAL_URI,
- new Java11HttpClientRemoteRepositorySearchTransport(),
+ new Java11HttpClientTransport(),
new MavenCentralResponseExtractor());
}
@@ -57,7 +58,7 @@ public static RemoteRepositorySearchBackend createDefaultRAOReleases() {
BACKEND_ID,
RAO_RELEASES_REPOSITORY_ID,
RAO_RELEASES_URI,
- new Java11HttpClientRemoteRepositorySearchTransport(),
+ new Java11HttpClientTransport(),
new Nx2ResponseExtractor());
}
@@ -68,7 +69,7 @@ public static RemoteRepositorySearchBackend create(
String backendId,
String repositoryId,
String baseUri,
- RemoteRepositorySearchTransport transport,
+ Transport transport,
ResponseExtractor responseExtractor) {
return new RemoteRepositorySearchBackendImpl(backendId, repositoryId, baseUri, transport, responseExtractor);
}
diff --git a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/RemoteRepositorySearchBackendImpl.java b/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/RemoteRepositorySearchBackendImpl.java
index aeba1608..748a88ad 100644
--- a/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/RemoteRepositorySearchBackendImpl.java
+++ b/search-backend-remoterepository/src/main/java/org/apache/maven/search/backend/remoterepository/internal/RemoteRepositorySearchBackendImpl.java
@@ -35,9 +35,9 @@
import org.apache.maven.search.backend.remoterepository.RecordFactory;
import org.apache.maven.search.backend.remoterepository.RemoteRepositorySearchBackend;
import org.apache.maven.search.backend.remoterepository.RemoteRepositorySearchResponse;
-import org.apache.maven.search.backend.remoterepository.RemoteRepositorySearchTransport;
import org.apache.maven.search.backend.remoterepository.ResponseExtractor;
import org.apache.maven.search.support.SearchBackendSupport;
+import org.apache.maven.search.transport.Transport;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.parser.Parser;
@@ -53,7 +53,7 @@
public class RemoteRepositorySearchBackendImpl extends SearchBackendSupport implements RemoteRepositorySearchBackend {
private final String baseUri;
- private final RemoteRepositorySearchTransport transport;
+ private final Transport transport;
private final ResponseExtractor responseExtractor;
@@ -74,7 +74,7 @@ public RemoteRepositorySearchBackendImpl(
String backendId,
String repositoryId,
String baseUri,
- RemoteRepositorySearchTransport transport,
+ Transport transport,
ResponseExtractor responseExtractor) {
super(backendId, repositoryId);
this.baseUri = requireNonNull(baseUri);
@@ -149,7 +149,7 @@ public RemoteRepositorySearchResponse search(SearchRequest searchRequest) throws
Document document = null;
if (state.ordinal() < State.GAVCE.ordinal()) {
Parser parser = state == State.GA ? Parser.xmlParser() : Parser.htmlParser();
- try (RemoteRepositorySearchTransport.Response response = transport.get(uri, commonHeaders)) {
+ try (Transport.Response response = transport.get(uri, commonHeaders)) {
if (response.getCode() == 200) {
document = Jsoup.parse(response.getBody(), StandardCharsets.UTF_8.name(), uri, parser);
}
@@ -173,12 +173,11 @@ public RemoteRepositorySearchResponse search(SearchRequest searchRequest) throws
throw new IllegalStateException("State" + state); // checkstyle
}
} else {
- try (RemoteRepositorySearchTransport.Response response = transport.head(uri, commonHeaders)) {
+ try (Transport.Response response = transport.head(uri, commonHeaders)) {
if (response.getCode() == 200) {
boolean matches = context.getSha1() == null;
if (context.getSha1() != null) {
- try (RemoteRepositorySearchTransport.Response sha1Response =
- transport.get(uri + ".sha1", commonHeaders)) {
+ try (Transport.Response sha1Response = transport.get(uri + ".sha1", commonHeaders)) {
if (response.getCode() == 200) {
try (InputStream body = sha1Response.getBody()) {
String remoteSha1 = readChecksum(body);
@@ -211,7 +210,7 @@ private static String readChecksum(InputStream inputStream) throws IOException {
break;
}
line = line.trim();
- if (line.length() > 0) {
+ if (!line.isEmpty()) {
checksum = line;
break;
}
diff --git a/search-backend-smo/pom.xml b/search-backend-smo/pom.xml
index 050fa503..333ebec1 100644
--- a/search-backend-smo/pom.xml
+++ b/search-backend-smo/pom.xml
@@ -31,10 +31,6 @@ under the License.
Maven :: Search API SMO Backend
Indexer Search Backend implemented by SMO.
-
- 8
-
-
org.apache.maven.indexer
@@ -73,39 +69,6 @@ under the License.
src/main/filtered-resources
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- compile-java-11
-
- compile
-
- compile
-
- 11
-
- ${project.basedir}/src/main/java11
-
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
-
- true
-
-
-
-
-
diff --git a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/SmoSearchBackendFactory.java b/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/SmoSearchBackendFactory.java
index 08188116..d7ad33b6 100644
--- a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/SmoSearchBackendFactory.java
+++ b/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/SmoSearchBackendFactory.java
@@ -19,7 +19,8 @@
package org.apache.maven.search.backend.smo;
import org.apache.maven.search.backend.smo.internal.SmoSearchBackendImpl;
-import org.apache.maven.search.backend.smo.internal.SmoSearchTransportSupplier;
+import org.apache.maven.search.transport.Java11HttpClientTransport;
+import org.apache.maven.search.transport.Transport;
/**
* The SMO search backend factory.
@@ -35,15 +36,13 @@ public class SmoSearchBackendFactory {
* Creates "default" SMO search backend suitable for most use cases.
*/
public SmoSearchBackend createDefault() {
- return create(
- DEFAULT_BACKEND_ID, DEFAULT_REPOSITORY_ID, DEFAULT_SMO_URI, new SmoSearchTransportSupplier().get());
+ return create(DEFAULT_BACKEND_ID, DEFAULT_REPOSITORY_ID, DEFAULT_SMO_URI, new Java11HttpClientTransport());
}
/**
* Creates SMO search backend using provided parameters.
*/
- public SmoSearchBackend create(
- String backendId, String repositoryId, String smoUri, SmoSearchTransport transportSupport) {
- return new SmoSearchBackendImpl(backendId, repositoryId, smoUri, transportSupport);
+ public SmoSearchBackend create(String backendId, String repositoryId, String smoUri, Transport transport) {
+ return new SmoSearchBackendImpl(backendId, repositoryId, smoUri, transport);
}
}
diff --git a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchBackendImpl.java b/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchBackendImpl.java
index 332dcb75..9573a1aa 100644
--- a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchBackendImpl.java
+++ b/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchBackendImpl.java
@@ -20,11 +20,10 @@
import java.io.IOException;
import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import java.net.HttpURLConnection;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -41,13 +40,13 @@
import org.apache.maven.search.SearchRequest;
import org.apache.maven.search.backend.smo.SmoSearchBackend;
import org.apache.maven.search.backend.smo.SmoSearchResponse;
-import org.apache.maven.search.backend.smo.SmoSearchTransport;
import org.apache.maven.search.request.BooleanQuery;
import org.apache.maven.search.request.Field;
import org.apache.maven.search.request.FieldQuery;
import org.apache.maven.search.request.Paging;
import org.apache.maven.search.request.Query;
import org.apache.maven.search.support.SearchBackendSupport;
+import org.apache.maven.search.transport.Transport;
import static java.util.Objects.requireNonNull;
@@ -55,38 +54,44 @@ public class SmoSearchBackendImpl extends SearchBackendSupport implements SmoSea
private static final Map FIELD_TRANSLATION;
static {
- HashMap map = new HashMap<>();
- map.put(MAVEN.GROUP_ID, "g");
- map.put(MAVEN.ARTIFACT_ID, "a");
- map.put(MAVEN.VERSION, "v");
- map.put(MAVEN.CLASSIFIER, "l");
- map.put(MAVEN.PACKAGING, "p");
- map.put(MAVEN.CLASS_NAME, "c");
- map.put(MAVEN.FQ_CLASS_NAME, "fc");
- map.put(MAVEN.SHA1, "1");
- FIELD_TRANSLATION = Collections.unmodifiableMap(map);
+ FIELD_TRANSLATION = Map.of(
+ MAVEN.GROUP_ID,
+ "g",
+ MAVEN.ARTIFACT_ID,
+ "a",
+ MAVEN.VERSION,
+ "v",
+ MAVEN.CLASSIFIER,
+ "l",
+ MAVEN.PACKAGING,
+ "p",
+ MAVEN.CLASS_NAME,
+ "c",
+ MAVEN.FQ_CLASS_NAME,
+ "fc",
+ MAVEN.SHA1,
+ "1");
}
private final String smoUri;
- private final SmoSearchTransport transportSupport;
+ private final Transport transport;
private final Map commonHeaders;
/**
* Creates a customized instance of SMO backend, like an in-house instances of SMO or different IDs.
*/
- public SmoSearchBackendImpl(
- String backendId, String repositoryId, String smoUri, SmoSearchTransport transportSupport) {
+ public SmoSearchBackendImpl(String backendId, String repositoryId, String smoUri, Transport transport) {
super(backendId, repositoryId);
this.smoUri = requireNonNull(smoUri);
- this.transportSupport = requireNonNull(transportSupport);
+ this.transport = requireNonNull(transport);
this.commonHeaders = new HashMap<>();
this.commonHeaders.put(
"User-Agent",
"Apache-Maven-Search-SMO/" + discoverVersion() + " "
- + transportSupport.getClass().getSimpleName());
+ + transport.getClass().getSimpleName());
this.commonHeaders.put("Accept", "application/json");
}
@@ -113,7 +118,7 @@ public String getSmoUri() {
@Override
public SmoSearchResponse search(SearchRequest searchRequest) throws IOException {
String searchUri = toURI(searchRequest);
- String payload = transportSupport.fetch(searchUri, commonHeaders);
+ String payload = fetch(searchUri, commonHeaders);
JsonObject raw = JsonParser.parseString(payload).getAsJsonObject();
List page = new ArrayList<>(searchRequest.getPaging().getPageSize());
int totalHits = populateFromRaw(raw, page);
@@ -133,6 +138,16 @@ private String toURI(SearchRequest searchRequest) {
return smoUri + "?q=" + smoQuery;
}
+ private String fetch(String serviceUri, Map headers) throws IOException {
+ try (Transport.Response response = transport.get(serviceUri, headers)) {
+ if (response.getCode() == HttpURLConnection.HTTP_OK) {
+ return new String(response.getBody().readAllBytes(), StandardCharsets.UTF_8);
+ } else {
+ throw new IOException("Unexpected response: " + response);
+ }
+ }
+ }
+
private String toSMOQuery(HashSet searchedFields, Query query) {
if (query instanceof BooleanQuery.And) {
BooleanQuery bq = (BooleanQuery) query;
@@ -151,12 +166,7 @@ private String toSMOQuery(HashSet searchedFields, Query query) {
}
private String encodeQueryParameterValue(String parameterValue) {
- try {
- return URLEncoder.encode(parameterValue, StandardCharsets.UTF_8.name())
- .replace("+", "%20");
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
+ return URLEncoder.encode(parameterValue, StandardCharsets.UTF_8).replace("+", "%20");
}
private int populateFromRaw(JsonObject raw, List page) {
diff --git a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchTransportSupplier.java b/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchTransportSupplier.java
deleted file mode 100644
index e6fb423e..00000000
--- a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/SmoSearchTransportSupplier.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.search.backend.smo.internal;
-
-import java.util.function.Supplier;
-
-import org.apache.maven.search.backend.smo.SmoSearchTransport;
-
-/**
- * Transport supplier.
- */
-public class SmoSearchTransportSupplier implements Supplier {
- @Override
- public SmoSearchTransport get() {
- return new UrlConnectionSmoSearchTransport();
- }
-}
diff --git a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/UrlConnectionSmoSearchTransport.java b/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/UrlConnectionSmoSearchTransport.java
deleted file mode 100644
index 4787bbfd..00000000
--- a/search-backend-smo/src/main/java/org/apache/maven/search/backend/smo/internal/UrlConnectionSmoSearchTransport.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.search.backend.smo.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.Map;
-import java.util.Scanner;
-
-import org.apache.maven.search.backend.smo.SmoSearchTransport;
-
-/**
- * {@link java.net.HttpURLConnection} backed transport.
- */
-public class UrlConnectionSmoSearchTransport implements SmoSearchTransport {
- @Override
- public String fetch(String serviceUri, Map headers) throws IOException {
- HttpURLConnection httpConnection = (HttpURLConnection) new URL(serviceUri).openConnection();
- httpConnection.setInstanceFollowRedirects(false);
- for (Map.Entry entry : headers.entrySet()) {
- httpConnection.setRequestProperty(entry.getKey(), entry.getValue());
- }
- int httpCode = httpConnection.getResponseCode();
- if (httpCode == HttpURLConnection.HTTP_OK) {
- try (InputStream inputStream = httpConnection.getInputStream()) {
- try (Scanner scanner = new Scanner(inputStream, StandardCharsets.UTF_8.name())) {
- return scanner.useDelimiter("\\A").next();
- }
- }
- } else {
- throw new IOException("Unexpected response code: " + httpCode);
- }
- }
-}
diff --git a/search-backend-smo/src/main/java11/org/apache/maven/search/backend/smo/internal/Java11HttpClientSmoSearchTransport.java b/search-backend-smo/src/main/java11/org/apache/maven/search/backend/smo/internal/Java11HttpClientSmoSearchTransport.java
deleted file mode 100644
index 2785a432..00000000
--- a/search-backend-smo/src/main/java11/org/apache/maven/search/backend/smo/internal/Java11HttpClientSmoSearchTransport.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.search.backend.smo.internal;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.util.Map;
-
-import org.apache.maven.search.backend.smo.SmoSearchTransport;
-
-/**
- * Java 11 {@link HttpClient} backed transport.
- */
-public class Java11HttpClientSmoSearchTransport implements SmoSearchTransport
-{
- private final HttpClient client = HttpClient.newBuilder().followRedirects( HttpClient.Redirect.NEVER ).build();
-
- @Override
- public String fetch( String serviceUri, Map headers ) throws IOException
- {
- HttpRequest.Builder builder = HttpRequest.newBuilder().uri( URI.create( serviceUri ) ).GET();
- for ( Map.Entry header : headers.entrySet() )
- {
- builder.header( header.getKey(), header.getValue() );
- }
- HttpRequest request = builder.build();
- try
- {
- HttpResponse response = client.send( request, HttpResponse.BodyHandlers.ofString() );
- if ( response.statusCode() == HttpURLConnection.HTTP_OK )
- {
- return response.body();
- }
- else
- {
- throw new IOException( "Unexpected response: " + response );
- }
- }
- catch ( InterruptedException e )
- {
- Thread.currentThread().interrupt();
- throw new IOException( e );
- }
- }
-}
diff --git a/search-backend-smo/src/main/java11/org/apache/maven/search/backend/smo/internal/SmoSearchTransportSupplier.java b/search-backend-smo/src/main/java11/org/apache/maven/search/backend/smo/internal/SmoSearchTransportSupplier.java
deleted file mode 100644
index 98f52c25..00000000
--- a/search-backend-smo/src/main/java11/org/apache/maven/search/backend/smo/internal/SmoSearchTransportSupplier.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.search.backend.smo.internal;
-
-import java.util.function.Supplier;
-
-import org.apache.maven.search.backend.smo.SmoSearchTransport;
-
-/**
- * Transport supplier.
- */
-public class SmoSearchTransportSupplier implements Supplier
-{
- @Override
- public SmoSearchTransport get()
- {
- return new Java11HttpClientSmoSearchTransport();
- }
-}