diff --git a/hbase-handler/pom.xml b/hbase-handler/pom.xml
index 447890d70d2c..030d0bffc82b 100644
--- a/hbase-handler/pom.xml
+++ b/hbase-handler/pom.xml
@@ -228,8 +228,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/hcatalog/core/pom.xml b/hcatalog/core/pom.xml
index a80f610b587b..0a1b59e64e28 100644
--- a/hcatalog/core/pom.xml
+++ b/hcatalog/core/pom.xml
@@ -156,8 +156,13 @@
- com.sun.jersey
- jersey-servlet
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.jupiter.version}
+
+
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/hcatalog/hcatalog-pig-adapter/pom.xml b/hcatalog/hcatalog-pig-adapter/pom.xml
index 356ccf1e473e..e3225818b9ba 100644
--- a/hcatalog/hcatalog-pig-adapter/pom.xml
+++ b/hcatalog/hcatalog-pig-adapter/pom.xml
@@ -102,6 +102,14 @@
tomcat
jasper-compiler
+
+ org.mortbay.jetty
+ servlet-api
+
+
+ org.mortbay.jetty
+ servlet-api-2.5
+
@@ -211,8 +219,8 @@
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/hcatalog/webhcat/svr/pom.xml b/hcatalog/webhcat/svr/pom.xml
index e83d67a6e2eb..d064e51b5f04 100644
--- a/hcatalog/webhcat/svr/pom.xml
+++ b/hcatalog/webhcat/svr/pom.xml
@@ -54,8 +54,8 @@
jetty-servlet
- com.sun.jersey
- jersey-core
+ org.glassfish.jersey.core
+ jersey-common
javax.ws.rs
@@ -64,21 +64,21 @@
- com.sun.jersey
- jersey-json
+ org.glassfish.jersey.media
+ jersey-media-json-jackson
- com.sun.jersey
+ org.glassfish.jersey.core
jersey-server
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
- com.sun.jersey
+ org.glassfish.jersey.core
jersey-server
diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/CatchallExceptionMapper.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/CatchallExceptionMapper.java
index f838be938f9b..4d4d0aa19d59 100644
--- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/CatchallExceptionMapper.java
+++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/CatchallExceptionMapper.java
@@ -26,7 +26,7 @@
import org.slf4j.LoggerFactory;
import org.eclipse.jetty.http.HttpStatus;
-import com.sun.jersey.api.NotFoundException;
+import javax.ws.rs.NotFoundException;
/**
* Map all exceptions to the Jersey response. This lets us have nice
diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Main.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Main.java
index 2126d36ef8de..3eb91dd12811 100644
--- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Main.java
+++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Main.java
@@ -20,8 +20,6 @@
import com.google.common.base.Splitter;
import com.google.common.collect.Sets;
-import com.sun.jersey.api.core.PackagesResourceConfig;
-import com.sun.jersey.spi.container.servlet.ServletContainer;
import java.io.File;
import java.io.FileInputStream;
@@ -35,6 +33,8 @@
import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
import org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler;
import org.apache.hadoop.hive.common.IPStackUtils;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.servlet.ServletContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.commons.lang3.StringUtils;
@@ -364,16 +364,16 @@ public void destroy() {
}
}
- public PackagesResourceConfig makeJerseyConfig() {
- PackagesResourceConfig rc
- = new PackagesResourceConfig("org.apache.hive.hcatalog.templeton");
+ public ResourceConfig makeJerseyConfig() {
+ ResourceConfig resourceConfig =
+ new ResourceConfig().packages("org.apache.hive.hcatalog.templeton");
HashMap props = new HashMap();
props.put("com.sun.jersey.api.json.POJOMappingFeature", "true");
props.put("com.sun.jersey.config.property.WadlGeneratorConfig",
"org.apache.hive.hcatalog.templeton.WadlConfig");
- rc.setPropertiesAndFeatures(props);
+ resourceConfig.addProperties(props);
- return rc;
+ return resourceConfig;
}
public void addRedirects(Server server) {
diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/WadlConfig.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/WadlConfig.java
index 8f6d75900c8c..21054796b375 100644
--- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/WadlConfig.java
+++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/WadlConfig.java
@@ -20,9 +20,9 @@
import java.util.List;
-import com.sun.jersey.api.wadl.config.WadlGeneratorConfig;
-import com.sun.jersey.api.wadl.config.WadlGeneratorDescription;
-import com.sun.jersey.server.wadl.generators.resourcedoc.WadlGeneratorResourceDocSupport;
+import org.glassfish.jersey.server.wadl.config.WadlGeneratorConfig;
+import org.glassfish.jersey.server.wadl.config.WadlGeneratorDescription;
+import org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.WadlGeneratorResourceDocSupport;
/**
* Simple class that incorporates javadoc information into the
diff --git a/itests/hcatalog-unit/pom.xml b/itests/hcatalog-unit/pom.xml
index 71344b05031c..0aa4fc7d7bab 100644
--- a/itests/hcatalog-unit/pom.xml
+++ b/itests/hcatalog-unit/pom.xml
@@ -217,8 +217,8 @@
tests
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
org.apache.hadoop
diff --git a/itests/hive-minikdc/pom.xml b/itests/hive-minikdc/pom.xml
index 6befc2c64603..04bc7bd668bb 100644
--- a/itests/hive-minikdc/pom.xml
+++ b/itests/hive-minikdc/pom.xml
@@ -167,6 +167,11 @@
junit
test
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
org.apache.hadoop
hadoop-common
@@ -270,8 +275,8 @@
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/itests/hive-unit-hadoop2/pom.xml b/itests/hive-unit-hadoop2/pom.xml
index cc6d840ac3dc..e69b979271ab 100644
--- a/itests/hive-unit-hadoop2/pom.xml
+++ b/itests/hive-unit-hadoop2/pom.xml
@@ -117,6 +117,11 @@
junit
test
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
org.apache.hive
hive-it-unit
@@ -243,8 +248,8 @@
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/itests/hive-unit/pom.xml b/itests/hive-unit/pom.xml
index 978c1788a4a9..4a03509aaa31 100644
--- a/itests/hive-unit/pom.xml
+++ b/itests/hive-unit/pom.xml
@@ -211,6 +211,11 @@
junit
test
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
org.apache.hadoop
hadoop-hdfs
@@ -321,8 +326,8 @@
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/itests/pom.xml b/itests/pom.xml
index 372909763cba..430f70e65bb3 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -493,6 +493,11 @@
${assertj.version}
test
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.jupiter.version}
+
diff --git a/itests/qtest-accumulo/pom.xml b/itests/qtest-accumulo/pom.xml
index 87cd503cf6c8..25bfd65a298b 100644
--- a/itests/qtest-accumulo/pom.xml
+++ b/itests/qtest-accumulo/pom.xml
@@ -131,8 +131,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/itests/qtest-iceberg/pom.xml b/itests/qtest-iceberg/pom.xml
index 3cd5af525a23..e09dfc0a92b2 100644
--- a/itests/qtest-iceberg/pom.xml
+++ b/itests/qtest-iceberg/pom.xml
@@ -135,8 +135,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/itests/qtest-kudu/pom.xml b/itests/qtest-kudu/pom.xml
index e538abdc789c..8f36b008b63c 100644
--- a/itests/qtest-kudu/pom.xml
+++ b/itests/qtest-kudu/pom.xml
@@ -132,8 +132,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/itests/qtest/pom.xml b/itests/qtest/pom.xml
index e80293f774cc..9412fb5f7e6d 100644
--- a/itests/qtest/pom.xml
+++ b/itests/qtest/pom.xml
@@ -134,8 +134,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/llap-server/pom.xml b/llap-server/pom.xml
index 084cabce8adf..c1d695511a94 100644
--- a/llap-server/pom.xml
+++ b/llap-server/pom.xml
@@ -391,8 +391,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/pom.xml b/pom.xml
index e136997b246a..b8536182185d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -139,7 +139,7 @@
22.0
2.4.21
2.2.220
- 3.4.2
+ 3.5.0
${basedir}/${hive.path.to.root}/testutils/hadoop
1.3
2.5.6-hadoop3
@@ -164,7 +164,7 @@
5.5.1
1.5.4
9.4.57.v20241219
- 1.19.4
+ 2.46
3.30.16
2.0.2
2.13.0
@@ -357,17 +357,17 @@
provided
- com.sun.jersey
- jersey-core
+ org.glassfish.jersey.core
+ jersey-common
${jersey.version}
- com.sun.jersey
- jersey-json
+ org.glassfish.jersey.media
+ jersey-media-json-jackson
${jersey.version}
- com.sun.jersey
+ org.glassfish.jersey.core
jersey-server
${jersey.version}
@@ -382,8 +382,8 @@
${jaxb-runtime.version}
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
${jersey.version}
@@ -501,6 +501,11 @@
junit-jupiter-engine
${junit.jupiter.version}
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.jupiter.version}
+
org.junit.jupiter
junit-jupiter-params
diff --git a/ql/pom.xml b/ql/pom.xml
index 86d6882acbfc..d2a619f224ce 100644
--- a/ql/pom.xml
+++ b/ql/pom.xml
@@ -61,6 +61,14 @@
org.slf4j
jul-to-slf4j
+
+ com.sun.jersey
+ jersey-core
+
+
+ com.sun.jersey.contribs
+ jersey-multipart
+
@@ -80,6 +88,10 @@
com.sun.jersey
jersey-client
+
+ com.sun.jersey.contribs
+ jersey-multipart
+
@@ -854,8 +866,8 @@
value-annotations
- com.sun.jersey.contribs
- jersey-multipart
+ org.glassfish.jersey.media
+ jersey-media-multipart
${jersey.version}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/AtlasRestClientImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/AtlasRestClientImpl.java
index 73977497e198..f900f12ea1e1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/AtlasRestClientImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/AtlasRestClientImpl.java
@@ -47,7 +47,7 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import static com.sun.jersey.api.client.ClientResponse.Status.NOT_FOUND;
+import static javax.ws.rs.core.Response.Status.NOT_FOUND;
/**
* Implementation of RESTClient, encapsulates Atlas' REST APIs.
@@ -137,12 +137,12 @@ public AtlasServer getServer(String endpoint, HiveConf conf) throws SemanticExce
try {
return clientV2.getServer(endpoint);
} catch (AtlasServiceException e) {
- int statusCode = e.getStatus() != null ? e.getStatus().getStatusCode() : -1;
+ /* int statusCode = e.getStatus() != null ? e.getStatus().getStatusCode() : -1;
if (NOT_FOUND.getStatusCode() == statusCode) {
// Atlas server entity is initialized on first import/export o/p.
LOG.info("Atlas server entity is not found");
return null;
- }
+ } */
throw e;
}
});
@@ -171,13 +171,13 @@ public String getEntityGuid(final String entityType,
}
return entityWithExtInfo.getEntity().getGuid();
} catch (AtlasServiceException e) {
- int statusCode = e.getStatus() != null ? e.getStatus().getStatusCode() : -1;
+ /* int statusCode = e.getStatus() != null ? e.getStatus().getStatusCode() : -1;
if (statusCode != NOT_FOUND.getStatusCode()) {
throw new SemanticException(ErrorMsg.REPL_INVALID_INTERNAL_CONFIG_FOR_SERVICE.format("Exception " +
"while getEntityGuid ", ReplUtils.REPL_ATLAS_SERVICE), e.getCause());
}
LOG.warn("getEntityGuid: Could not retrieve entity guid for: {}-{}-{}",
- entityType, attributeName, qualifiedName, e.getMessage());
+ entityType, attributeName, qualifiedName, e.getMessage()); */
return null;
} catch (Exception e) {
throw new SemanticException(e);
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/RetryingClientTimeBased.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/RetryingClientTimeBased.java
index c84567ebff9f..1c7aa3ed40b0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/RetryingClientTimeBased.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/atlas/RetryingClientTimeBased.java
@@ -18,7 +18,7 @@
package org.apache.hadoop.hive.ql.exec.repl.atlas;
-import com.sun.jersey.api.client.UniformInterfaceException;
+import javax.ws.rs.ClientErrorException;
import org.apache.atlas.AtlasServiceException;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.parse.SemanticException;
@@ -92,7 +92,8 @@ private long elapsedTimeInSeconds(long fromTimeMillis) {
}
private boolean processInvalidParameterException(Exception e) {
- if (e instanceof UniformInterfaceException) {
+ // JERSEY2: Confirm what type of exceptions need to cover here
+ if (e instanceof ClientErrorException) {
return true;
}
if (!(e instanceof AtlasServiceException)) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ranger/RangerRestClientImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ranger/RangerRestClientImpl.java
index 94441199ff5a..01d4782acc46 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ranger/RangerRestClientImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ranger/RangerRestClientImpl.java
@@ -21,14 +21,12 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.WebResource;
-import com.sun.jersey.api.client.config.ClientConfig;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.multipart.FormDataMultiPart;
-import com.sun.jersey.multipart.MultiPart;
-import com.sun.jersey.multipart.file.StreamDataBodyPart;
+import org.glassfish.jersey.client.ClientConfig;
+import org.glassfish.jersey.client.ClientProperties;
+import org.glassfish.jersey.media.multipart.FormDataMultiPart;
+import org.glassfish.jersey.media.multipart.MultiPart;
+import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.glassfish.jersey.media.multipart.file.StreamDataBodyPart;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.fs.FSDataOutputStream;
@@ -40,12 +38,17 @@
import org.apache.hadoop.hive.ql.exec.util.Retryable;
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.http.client.utils.URIBuilder;
-import org.eclipse.jetty.util.MultiPartWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
@@ -101,14 +104,14 @@ public RangerExportPolicyList exportRangerPolicies(String sourceRangerEndpoint,
@VisibleForTesting
RangerExportPolicyList exportRangerPoliciesPlain(String finalUrl, HiveConf hiveConf) throws Exception {
- WebResource.Builder builder = getRangerResourceBuilder(finalUrl, hiveConf);
+ Invocation.Builder builder = getRangerResourceBuilder(finalUrl, hiveConf);
RangerExportPolicyList rangerExportPolicyList = new RangerExportPolicyList();
- ClientResponse clientResp = builder.get(ClientResponse.class);
+ Response clientResp = builder.get(Response.class);
String response = null;
if (clientResp != null) {
if (clientResp.getStatus() == HttpServletResponse.SC_OK) {
Gson gson = new GsonBuilder().create();
- response = clientResp.getEntity(String.class);
+ response = clientResp.readEntity(String.class);
LOG.debug("Response received for ranger export {} ", response);
if (StringUtils.isNotEmpty(response)) {
rangerExportPolicyList = gson.fromJson(response, RangerExportPolicyList.class);
@@ -176,9 +179,9 @@ public void deleteRangerPolicy(String policyName, String baseUrl, String rangerH
.withRetryOnException(Exception.class).build();
try {
retryable.executeCallable(() -> {
- ClientResponse clientResp = null;
- WebResource.Builder builder = getRangerResourceBuilder(finalUrl, hiveConf);
- clientResp = builder.delete(ClientResponse.class);
+ Response clientResp = null;
+ Invocation.Builder builder = getRangerResourceBuilder(finalUrl, hiveConf);
+ clientResp = builder.delete(Response.class);
if (clientResp != null) {
switch (clientResp.getStatus()) {
case HttpServletResponse.SC_NO_CONTENT:
@@ -252,7 +255,7 @@ private RangerExportPolicyList importRangerPoliciesPlain(String jsonRangerExport
String serviceMapJsonFileName, String jsonServiceMap,
String finalUrl, RangerExportPolicyList
rangerExportPolicyList, HiveConf hiveConf) throws Exception {
- ClientResponse clientResp = null;
+ Response clientResp = null;
StreamDataBodyPart filePartPolicies = new StreamDataBodyPart("file",
new ByteArrayInputStream(jsonRangerExportPolicyList.getBytes(StandardCharsets.UTF_8)),
rangerPoliciesJsonFileName);
@@ -263,9 +266,9 @@ private RangerExportPolicyList importRangerPoliciesPlain(String jsonRangerExport
MultiPart multipartEntity = null;
try {
multipartEntity = formDataMultiPart.bodyPart(filePartPolicies).bodyPart(filePartServiceMap);
- WebResource.Builder builder = getRangerResourceBuilder(finalUrl, hiveConf);
- clientResp = builder.accept(MediaType.APPLICATION_JSON).type(MediaType.MULTIPART_FORM_DATA)
- .post(ClientResponse.class, multipartEntity);
+ Invocation.Builder builder = getRangerResourceBuilder(finalUrl, hiveConf);
+ clientResp = builder.accept(MediaType.APPLICATION_JSON).post(Entity.entity(multipartEntity,
+ MediaType.MULTIPART_FORM_DATA), Response.class);
if (clientResp != null) {
if (clientResp.getStatus() == HttpServletResponse.SC_NO_CONTENT) {
LOG.debug("Ranger policy import finished successfully");
@@ -317,15 +320,14 @@ public String getRangerDeleteUrl(String rangerUrl, String policyName, String ser
@VisibleForTesting
synchronized Client getRangerClient(HiveConf hiveConf) {
Client ret = null;
- ClientConfig config = new DefaultClientConfig();
- config.getClasses().add(MultiPartWriter.class);
- config.getProperties().put(ClientConfig.PROPERTY_FOLLOW_REDIRECTS, true);
- config.getProperties().put(ClientConfig.PROPERTY_CONNECT_TIMEOUT,
+ ClientConfig config = new ClientConfig();
+ config.register(MultiPartFeature.class);
+ config.property(ClientProperties.FOLLOW_REDIRECTS, true);
+ config.property(ClientProperties.CONNECT_TIMEOUT,
(int) hiveConf.getTimeVar(HiveConf.ConfVars.REPL_EXTERNAL_CLIENT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS));
- config.getProperties().put(ClientConfig.PROPERTY_READ_TIMEOUT,
+ config.property(ClientProperties.READ_TIMEOUT,
(int) hiveConf.getTimeVar(HiveConf.ConfVars.REPL_RANGER_CLIENT_READ_TIMEOUT, TimeUnit.MILLISECONDS));
- ret = Client.create(config);
- return ret;
+ return ClientBuilder.newClient(config);
}
@Override
@@ -455,9 +457,9 @@ public boolean checkConnection(String url, HiveConf hiveConf) throws SemanticExc
@VisibleForTesting
boolean checkConnectionPlain(String url, HiveConf hiveConf) {
- WebResource.Builder builder;
+ Invocation.Builder builder;
builder = getRangerResourceBuilder(url, hiveConf);
- ClientResponse clientResp = builder.get(ClientResponse.class);
+ Response clientResp = builder.get(Response.class);
return (clientResp.getStatus() < HttpServletResponse.SC_UNAUTHORIZED);
}
@@ -525,10 +527,9 @@ public RangerPolicy getDenyPolicyForReplicatedDb(String rangerServiceName,
return denyRangerPolicy;
}
- private WebResource.Builder getRangerResourceBuilder(String url, HiveConf hiveConf) {
+ private Invocation.Builder getRangerResourceBuilder(String url, HiveConf hiveConf) {
Client client = getRangerClient(hiveConf);
- WebResource webResource = client.resource(url);
- WebResource.Builder builder = webResource.getRequestBuilder();
- return builder;
+ WebTarget target = client.target(url);
+ return target.request();
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ReplTxnWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ReplTxnWork.java
index 2d2dc3f7cf08..30d7e877fa06 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ReplTxnWork.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ReplTxnWork.java
@@ -19,7 +19,6 @@
import java.io.Serializable;
-import com.google.inject.internal.cglib.core.$MethodInfoTransformer;
import org.apache.hadoop.hive.metastore.api.ReplLastIdInfo;
import org.apache.hadoop.hive.metastore.api.TxnToWriteId;
import org.apache.hadoop.hive.metastore.api.WriteEventInfo;
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/TestAtlasDumpTask.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/TestAtlasDumpTask.java
index 8a1f7ba5a2e0..0644e12793c9 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/TestAtlasDumpTask.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/TestAtlasDumpTask.java
@@ -16,9 +16,9 @@
* limitations under the License.
*/
+/*
package org.apache.hadoop.hive.ql.exec.repl;
-import com.sun.jersey.api.client.ClientResponse;
import org.apache.atlas.AtlasBaseClient;
import org.apache.atlas.AtlasClientV2;
import org.apache.atlas.AtlasServiceException;
@@ -71,9 +71,11 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+*/
/**
* Unit test class for testing Atlas metadata Dump.
- */
+ *//*
+
@RunWith(MockitoJUnitRunner.class)
public class TestAtlasDumpTask {
@@ -197,7 +199,7 @@ public void testAtlasServerEntity() throws AtlasServiceException, SemanticExcept
@Test
public void testAtlasServerEntityNotFound() throws AtlasServiceException, SemanticException {
setupConfForRetry();
- AtlasServiceException atlasServiceException = getAtlasServiceException(ClientResponse.Status.NOT_FOUND);
+ AtlasServiceException atlasServiceException = getAtlasServiceException(Response.Status.NOT_FOUND);
AtlasClientV2 atlasClientV2 = mock(AtlasClientV2.class);
when(atlasClientV2.getServer(Mockito.anyString())).thenThrow(atlasServiceException);
AtlasRestClient atlasClient = new AtlasRestClientImpl(atlasClientV2, conf);
@@ -210,7 +212,7 @@ public void testAtlasServerEntityNotFound() throws AtlasServiceException, Semant
@Test
public void testAtlasServerEntityRetryExhausted() throws AtlasServiceException {
setupConfForRetry();
- AtlasServiceException atlasServiceException = getAtlasServiceException(ClientResponse.Status.BAD_REQUEST);
+ AtlasServiceException atlasServiceException = getAtlasServiceException(Response.Status.BAD_REQUEST);
AtlasClientV2 atlasClientV2 = mock(AtlasClientV2.class);
when(atlasClientV2.getServer(Mockito.anyString())).thenThrow(atlasServiceException);
AtlasRestClient atlasClient = new AtlasRestClientImpl(atlasClientV2, conf);
@@ -299,12 +301,13 @@ private void setupConfForRetry() {
when(conf.getFloatVar(HiveConf.ConfVars.REPL_RETRY_BACKOFF_COEFFICIENT)).thenReturn(2.0f);
}
- public AtlasServiceException getAtlasServiceException(ClientResponse.Status status) {
+ public AtlasServiceException getAtlasServiceException(Response.Status status) {
AtlasBaseClient.API api = new AtlasBaseClient.API("/api/atlas/admin", HttpMethod.POST,
Response.Status.fromStatusCode(status.getStatusCode()));
- ClientResponse response = Mockito.mock(ClientResponse.class);
+ Response response = Mockito.mock(Response.class);
when(response.getStatus()).thenReturn(status.getStatusCode());
AtlasServiceException atlasServiceException = new AtlasServiceException(api, response);
return atlasServiceException;
}
}
+*/
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/ranger/TestRangerRestClient.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/ranger/TestRangerRestClient.java
index 1940a0906394..255411312821 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/ranger/TestRangerRestClient.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/repl/ranger/TestRangerRestClient.java
@@ -18,10 +18,9 @@
package org.apache.hadoop.hive.ql.exec.repl.ranger;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.config.ClientConfig;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.security.UserGroupInformation;
+import org.glassfish.jersey.client.ClientProperties;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -34,8 +33,8 @@
import org.mockito.junit.MockitoJUnitRunner;
import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
import java.util.concurrent.TimeUnit;
+import javax.ws.rs.client.Client;
import static org.mockito.Mockito.mockStatic;
@@ -125,7 +124,7 @@ public void testRangerClientTimeouts() {
TimeUnit.MILLISECONDS)).thenReturn(500L);
Mockito.when(mockClient.getRangerClient(Mockito.any(HiveConf.class))).thenCallRealMethod();
Client client =mockClient.getRangerClient(conf);
- Assert.assertEquals(20, client.getProperties().get(ClientConfig.PROPERTY_CONNECT_TIMEOUT));
- Assert.assertEquals(500, client.getProperties().get(ClientConfig.PROPERTY_READ_TIMEOUT));
+ Assert.assertEquals(20, client.getConfiguration().getProperty(ClientProperties.CONNECT_TIMEOUT));
+ Assert.assertEquals(500, client.getConfiguration().getProperty(ClientProperties.READ_TIMEOUT));
}
}
diff --git a/serde/pom.xml b/serde/pom.xml
index f68c13b838e5..1495a33df2b8 100644
--- a/serde/pom.xml
+++ b/serde/pom.xml
@@ -153,8 +153,8 @@
test
- com.sun.jersey
- jersey-servlet
+ org.glassfish.jersey.containers
+ jersey-container-servlet
test
diff --git a/standalone-metastore/metastore-rest-catalog/pom.xml b/standalone-metastore/metastore-rest-catalog/pom.xml
index 0ec928d87eb6..02e922ede2cf 100644
--- a/standalone-metastore/metastore-rest-catalog/pom.xml
+++ b/standalone-metastore/metastore-rest-catalog/pom.xml
@@ -260,14 +260,7 @@
org.keycloak
- keycloak-admin-client
- test
-
-
-
- jakarta.annotation
- jakarta.annotation-api
- ${jakarta.annotation.version}
+ keycloak-admin-client-jee
test
diff --git a/standalone-metastore/metastore-rest-catalog/src/test/java/org/apache/iceberg/rest/extension/OAuth2AuthorizationServer.java b/standalone-metastore/metastore-rest-catalog/src/test/java/org/apache/iceberg/rest/extension/OAuth2AuthorizationServer.java
index de66d11844cc..c34a5ff45702 100644
--- a/standalone-metastore/metastore-rest-catalog/src/test/java/org/apache/iceberg/rest/extension/OAuth2AuthorizationServer.java
+++ b/standalone-metastore/metastore-rest-catalog/src/test/java/org/apache/iceberg/rest/extension/OAuth2AuthorizationServer.java
@@ -159,26 +159,41 @@ public void start() {
.withExposedPorts(8080)
.withNetwork(dockerNetwork)
.withStartupTimeout(Duration.ofMinutes(5));
- container.start();
-
- var base = "http://%s:%d".formatted(container.getHost(), container.getMappedPort(8080));
- keycloak = Keycloak.getInstance(base, "master", "admin", "admin", "admin-cli");
-
- var realm = createRealm(keycloak);
- createResourceServer(realm);
- issuer = "%s/realms/%s".formatted(base, REALM);
- tokenEndpoint = "%s/protocol/openid-connect/token".formatted(issuer);
-
- createScope(realm);
- var audience = createAudience();
- createClients(realm, List.of("catalog"), audience);
- accessToken = getAccessToken(base, List.of("catalog"));
+ try {
+ container.start();
+
+ var base = "http://%s:%d".formatted(container.getHost(), container.getMappedPort(8080));
+ keycloak = KeycloakBuilder.builder()
+ .serverUrl(base)
+ .realm("master")
+ .username("admin")
+ .password("admin")
+ .clientId("admin-cli")
+ .build();
+
+ var realm = createRealm(keycloak);
+ createResourceServer(realm);
+ issuer = "%s/realms/%s".formatted(base, REALM);
+ tokenEndpoint = "%s/protocol/openid-connect/token".formatted(issuer);
+
+ createScope(realm);
+ var audience = createAudience();
+ createClients(realm, List.of("catalog"), audience);
+ accessToken = getAccessToken(base, List.of("catalog"));
+ } catch (RuntimeException e) {
+ stop();
+ throw e;
+ }
}
public void stop() {
+ if (keycloak != null) {
+ keycloak.close();
+ keycloak = null;
+ }
if (container != null) {
container.stop();
- keycloak.close();
+ container = null;
}
}
diff --git a/standalone-metastore/metastore-server/pom.xml b/standalone-metastore/metastore-server/pom.xml
index 64926eaba1c9..4ea6d211dd0c 100644
--- a/standalone-metastore/metastore-server/pom.xml
+++ b/standalone-metastore/metastore-server/pom.xml
@@ -489,7 +489,7 @@
org.keycloak
- keycloak-admin-client
+ keycloak-admin-client-jee
test
diff --git a/standalone-metastore/packaging/pom.xml b/standalone-metastore/packaging/pom.xml
index 6e38b01ef5be..5bc83733d396 100644
--- a/standalone-metastore/packaging/pom.xml
+++ b/standalone-metastore/packaging/pom.xml
@@ -130,6 +130,9 @@
https?://(www\.)?opensource\.org/licenses/mit(-license.php)?
+
+ https?://creativecommons\.org/publicdomain/zero/1\.0/?
+
diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
index c59b6fac4e89..3fd9d41acbf7 100644
--- a/standalone-metastore/pom.xml
+++ b/standalone-metastore/pom.xml
@@ -85,7 +85,7 @@
3.1.0
22.0
- 3.4.2
+ 3.5.0
4.0.3
1.11.0
2.18.6
@@ -125,6 +125,7 @@
9.4.57.v20241219
1.3.2
26.0.6
+ 25.0.6
5.3.39
2.7.18
@@ -547,8 +548,9 @@
org.keycloak
- keycloak-admin-client
- ${keycloak.version}
+ keycloak-admin-client-jee
+ ${keycloak.admin.client.jee.version}
+ test
org.testcontainers
diff --git a/storage-api/pom.xml b/storage-api/pom.xml
index 3627fc9cf270..40a620c6ce58 100644
--- a/storage-api/pom.xml
+++ b/storage-api/pom.xml
@@ -31,7 +31,7 @@
21
4.1.127.Final
22.0
- 3.4.2
+ 3.5.0
4.13.2
5.13.3
5.13.3