errors = auth.getErrors();
if (!errors.isEmpty()) {
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLoginServlet.java b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLoginServlet.java
index 4f2a90db5ca..3f9b11044b1 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLoginServlet.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLoginServlet.java
@@ -13,38 +13,47 @@
package org.openmetadata.service.security.saml;
-import static org.openmetadata.service.security.AuthenticationCodeFlowHandler.checkAndStoreRedirectUriInSession;
+import static org.openmetadata.service.security.AuthenticationCodeFlowHandler.SESSION_REDIRECT_URI;
import com.onelogin.saml2.Auth;
+import com.onelogin.saml2.exception.SAMLException;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
+import org.apache.felix.http.javaxwrappers.HttpServletRequestWrapper;
+import org.apache.felix.http.javaxwrappers.HttpServletResponseWrapper;
/**
* This Servlet initiates a login and sends a login request to the IDP. After a successful processing it redirects user
* to the relayState which is the callback setup in the config.
*/
-@WebServlet("/api/v1/saml/login")
@Slf4j
+@WebServlet("/api/v1/saml/login")
public class SamlLoginServlet extends HttpServlet {
@Override
- protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
- throws IOException {
- Auth auth;
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
try {
- checkAndStoreRedirectUriInSession(req);
- auth = new Auth(SamlSettingsHolder.getInstance().getSaml2Settings(), req, resp);
- auth.login(SamlSettingsHolder.getInstance().getRelayState());
- } catch (Exception e) {
- resp.setContentType("text/html; charset=UTF-8");
- LOG.error("[SamlLoginServlet] Failed in Auth Login : {}", e.getMessage());
- resp.getOutputStream()
- .println(
- String.format(
- " [SamlLoginServlet] Failed in Auth Login : %s
", e.getMessage()));
+ checkAndStoreRedirectUriInSession(request);
+ javax.servlet.http.HttpServletRequest wrappedRequest = new HttpServletRequestWrapper(request);
+ javax.servlet.http.HttpServletResponse wrappedResponse =
+ new HttpServletResponseWrapper(response);
+ Auth auth = new Auth(SamlSettingsHolder.getSaml2Settings(), wrappedRequest, wrappedResponse);
+ auth.login();
+ } catch (SAMLException ex) {
+ LOG.error("Error initiating SAML login", ex);
+ throw new ServletException("Error initiating SAML login", ex);
+ }
+ }
+
+ private void checkAndStoreRedirectUriInSession(HttpServletRequest request) {
+ String redirectUri = request.getParameter("callback");
+ if (redirectUri != null) {
+ request.getSession().setAttribute(SESSION_REDIRECT_URI, redirectUri);
}
}
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLogoutServlet.java b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLogoutServlet.java
index f1162fa6fa9..9a17ac0ad4d 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLogoutServlet.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlLogoutServlet.java
@@ -19,6 +19,11 @@ import static org.openmetadata.service.security.SecurityUtil.findUserNameFromCla
import static org.openmetadata.service.security.SecurityUtil.writeJsonResponse;
import com.auth0.jwt.interfaces.Claim;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -26,11 +31,6 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.api.security.AuthenticationConfiguration;
import org.openmetadata.schema.api.security.AuthorizerConfiguration;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlMetadataServlet.java b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlMetadataServlet.java
index e8062cea031..653afe28194 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlMetadataServlet.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlMetadataServlet.java
@@ -14,37 +14,38 @@
package org.openmetadata.service.security.saml;
import com.onelogin.saml2.Auth;
-import com.onelogin.saml2.settings.Saml2Settings;
-import java.util.List;
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import lombok.SneakyThrows;
+import com.onelogin.saml2.exception.SAMLException;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.security.cert.CertificateEncodingException;
import lombok.extern.slf4j.Slf4j;
+import org.apache.felix.http.javaxwrappers.HttpServletRequestWrapper;
+import org.apache.felix.http.javaxwrappers.HttpServletResponseWrapper;
/** This Servlet outputs a login metadata config of the SP that is Openmetadata */
-@WebServlet("/api/v1/saml/metadata")
@Slf4j
+@WebServlet("/api/v1/saml/metadata")
public class SamlMetadataServlet extends HttpServlet {
@Override
- @SneakyThrows
- protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) {
- Auth auth = new Auth(SamlSettingsHolder.getInstance().getSaml2Settings(), req, resp);
- Saml2Settings settings = auth.getSettings();
- String metadata = settings.getSPMetadata();
- List errors = Saml2Settings.validateMetadata(metadata);
- if (errors.isEmpty()) {
- resp.getOutputStream().println(metadata);
- } else {
- resp.setContentType("text/html; charset=UTF-8");
- for (String error : errors) {
- LOG.error(
- "[SamlMetadataServlet] Errors in getting Metadata : {} : Errors : {}",
- metadata,
- errors);
- resp.getOutputStream().println("" + error + "
");
- }
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ try {
+ // Convert Jakarta servlet types to javax servlet types using Apache Felix wrappers
+ javax.servlet.http.HttpServletRequest wrappedRequest = new HttpServletRequestWrapper(request);
+ javax.servlet.http.HttpServletResponse wrappedResponse =
+ new HttpServletResponseWrapper(response);
+
+ Auth auth = new Auth(SamlSettingsHolder.getSaml2Settings(), wrappedRequest, wrappedResponse);
+ String metadata = auth.getSettings().getSPMetadata();
+ response.setContentType("text/xml");
+ response.getWriter().write(metadata);
+ } catch (SAMLException | CertificateEncodingException ex) {
+ LOG.error("Error generating SAML metadata", ex);
+ throw new ServletException("Error generating SAML metadata", ex);
}
}
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlSettingsHolder.java b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlSettingsHolder.java
index f9994a4df26..b64a8289e0e 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlSettingsHolder.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlSettingsHolder.java
@@ -30,10 +30,10 @@ import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.service.OpenMetadataApplicationConfig;
public class SamlSettingsHolder {
- private static SamlSettingsHolder instance;
+ private static volatile Saml2Settings saml2Settings;
+ private static final Object lock = new Object();
private Map samlData;
private SettingsBuilder builder;
- @Getter private Saml2Settings saml2Settings;
@Getter private String relayState;
@Getter private long tokenValidity;
@Getter private String domain;
@@ -44,10 +44,7 @@ public class SamlSettingsHolder {
}
public static SamlSettingsHolder getInstance() {
- if (instance == null) {
- instance = new SamlSettingsHolder();
- }
- return instance;
+ return new SamlSettingsHolder();
}
public void initDefaultSettings(OpenMetadataApplicationConfig catalogApplicationConfig)
@@ -140,4 +137,19 @@ public class SamlSettingsHolder {
samlData.put(SettingsBuilder.UNIQUE_ID_PREFIX_PROPERTY_KEY, "OPENMETADATA_");
saml2Settings = builder.fromValues(samlData).build();
}
+
+ public static void setSaml2Settings(Saml2Settings settings) {
+ synchronized (lock) {
+ saml2Settings = settings;
+ }
+ }
+
+ public static Saml2Settings getSaml2Settings() {
+ synchronized (lock) {
+ if (saml2Settings == null) {
+ throw new IllegalStateException("SAML settings have not been initialized");
+ }
+ return saml2Settings;
+ }
+ }
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlTokenRefreshServlet.java b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlTokenRefreshServlet.java
index 3679ea8d353..6e2b5234a23 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlTokenRefreshServlet.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/security/saml/SamlTokenRefreshServlet.java
@@ -13,22 +13,22 @@
package org.openmetadata.service.security.saml;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
import static org.openmetadata.service.exception.CatalogExceptionMessage.PASSWORD_RESET_TOKEN_EXPIRED;
import static org.openmetadata.service.security.AuthenticationCodeFlowHandler.getErrorMessage;
import static org.openmetadata.service.security.SecurityUtil.writeJsonResponse;
import static org.openmetadata.service.util.UserUtil.getRoleListFromUser;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.ws.rs.BadRequestException;
import java.io.BufferedReader;
import java.io.IOException;
import java.time.Instant;
import java.util.UUID;
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.BadRequestException;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.TokenInterface;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/socket/FeedServlet.java b/openmetadata-service/src/main/java/org/openmetadata/service/socket/FeedServlet.java
index aeb193890c8..e9fc0d99afa 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/socket/FeedServlet.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/socket/FeedServlet.java
@@ -13,13 +13,14 @@
package org.openmetadata.service.socket;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
+import org.apache.felix.http.javaxwrappers.HttpServletRequestWrapper;
+import org.apache.felix.http.javaxwrappers.HttpServletResponseWrapper;
@Slf4j
@WebServlet("/api/v1/push/feed/*")
@@ -28,16 +29,13 @@ public class FeedServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException {
try {
+ // EngineIO server expects javax servlet types, so we need to use wrappers
+ HttpServletRequestWrapper wrappedRequest = new HttpServletRequestWrapper(request);
+ HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(response);
+
WebSocketManager.getInstance()
.getEngineIoServer()
- .handleRequest(
- new HttpServletRequestWrapper(request) {
- @Override
- public boolean isAsyncSupported() {
- return true;
- }
- },
- response);
+ .handleRequest(wrappedRequest, wrappedResponse);
} catch (Exception ex) {
LOG.error("[FeedServlet] Error Encountered : {}", ex.getMessage());
response
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/socket/HeaderRequestWrapper.java b/openmetadata-service/src/main/java/org/openmetadata/service/socket/HeaderRequestWrapper.java
index 95e9b926825..cd9cbf30faa 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/socket/HeaderRequestWrapper.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/socket/HeaderRequestWrapper.java
@@ -13,13 +13,13 @@
package org.openmetadata.service.socket;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
public class HeaderRequestWrapper extends HttpServletRequestWrapper {
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/socket/OpenMetadataAssetServlet.java b/openmetadata-service/src/main/java/org/openmetadata/service/socket/OpenMetadataAssetServlet.java
index eff91f94529..247272acc1d 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/socket/OpenMetadataAssetServlet.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/socket/OpenMetadataAssetServlet.java
@@ -16,11 +16,11 @@ package org.openmetadata.service.socket;
import static org.openmetadata.service.exception.OMErrorPageHandler.setSecurityHeader;
import io.dropwizard.servlets.assets.AssetServlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import org.jetbrains.annotations.Nullable;
import org.openmetadata.service.config.OMWebConfiguration;
import org.openmetadata.service.resources.system.IndexResource;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/socket/SocketAddressFilter.java b/openmetadata-service/src/main/java/org/openmetadata/service/socket/SocketAddressFilter.java
index 99fe7182619..08dc8a8c888 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/socket/SocketAddressFilter.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/socket/SocketAddressFilter.java
@@ -15,13 +15,13 @@ package org.openmetadata.service.socket;
import com.auth0.jwt.interfaces.Claim;
import io.socket.engineio.server.utils.ParseQS;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Map;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.api.security.AuthenticationConfiguration;
import org.openmetadata.schema.api.security.AuthorizerConfiguration;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/EntityUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/EntityUtil.java
index f98603b069e..591605ca522 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/EntityUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/EntityUtil.java
@@ -21,6 +21,9 @@ import static org.openmetadata.service.jdbi3.ListFilter.NULL_PARAM;
import static org.openmetadata.service.jdbi3.RoleRepository.DOMAIN_ONLY_ACCESS_ROLE;
import static org.openmetadata.service.security.DefaultAuthorizer.getSubjectContext;
+import jakarta.validation.constraints.NotNull;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.core.SecurityContext;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URLEncoder;
@@ -41,9 +44,6 @@ import java.util.UUID;
import java.util.function.BiPredicate;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import javax.validation.constraints.NotNull;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.SecurityContext;
import lombok.Getter;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/FullyQualifiedName.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/FullyQualifiedName.java
index f341ad1ee4a..4fcd54102e2 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/FullyQualifiedName.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/FullyQualifiedName.java
@@ -142,6 +142,9 @@ public class FullyQualifiedName {
/** Adds quotes to name as required */
public static String quoteName(String name) {
+ if (name == null) {
+ throw new IllegalArgumentException(CatalogExceptionMessage.invalidName(name));
+ }
Matcher matcher = namePattern.matcher(name);
if (!matcher.find() || matcher.end() != name.length()) {
throw new IllegalArgumentException(CatalogExceptionMessage.invalidName(name));
@@ -170,6 +173,9 @@ public class FullyQualifiedName {
/** Adds quotes to name as required */
public static String unquoteName(String name) {
+ if (name == null) {
+ throw new IllegalArgumentException(CatalogExceptionMessage.invalidName(name));
+ }
Matcher matcher = namePattern.matcher(name);
if (!matcher.find() || matcher.end() != name.length()) {
throw new IllegalArgumentException(CatalogExceptionMessage.invalidName(name));
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonPatchUtils.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonPatchUtils.java
index 8897caa026a..e7d0bb9208f 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonPatchUtils.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonPatchUtils.java
@@ -17,14 +17,16 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.fge.jsonpatch.JsonPatchException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonPatch;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-import javax.json.JsonPatch;
-import javax.json.JsonValue;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.EntityInterface;
import org.openmetadata.schema.type.MetadataOperation;
@@ -149,8 +151,23 @@ public class JsonPatchUtils {
}
public static MetadataOperation getMetadataOperation(Object jsonPatchObject) {
- Map jsonPatchMap = JsonUtils.getMap(jsonPatchObject);
- String path = jsonPatchMap.get("path").toString(); // Get "path" node - "/defaultRoles/0"
+ String path;
+
+ // Handle jakarta JSON patch objects efficiently
+ if (jsonPatchObject instanceof JsonObject) {
+ JsonObject jsonPatchObj = (JsonObject) jsonPatchObject;
+ JsonValue pathValue = jsonPatchObj.get("path");
+ if (pathValue instanceof JsonString) {
+ path = ((JsonString) pathValue).getString();
+ } else {
+ path = pathValue.toString();
+ }
+ } else {
+ // Fallback for other object types
+ Map jsonPatchMap = JsonUtils.getMap(jsonPatchObject);
+ path = jsonPatchMap.get("path").toString();
+ }
+
return getMetadataOperation(path);
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonUtils.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonUtils.java
index 35c51c2a2f9..b6bd1a49993 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonUtils.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/JsonUtils.java
@@ -36,6 +36,19 @@ import com.jayway.jsonpath.JsonPath;
import com.networknt.schema.JsonSchema;
import com.networknt.schema.JsonSchemaFactory;
import com.networknt.schema.SpecVersion.VersionFlag;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonPatch;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonStructure;
+import jakarta.json.JsonValue;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.ConstraintViolationException;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
import java.io.IOException;
import java.io.StringReader;
import java.nio.file.Paths;
@@ -51,19 +64,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonPatch;
-import javax.json.JsonReader;
-import javax.json.JsonStructure;
-import javax.json.JsonValue;
-import javax.validation.ConstraintViolation;
-import javax.validation.ConstraintViolationException;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.annotations.ExposedField;
@@ -148,7 +148,16 @@ public final class JsonUtils {
}
public static JsonStructure getJsonStructure(Object o) {
- return OBJECT_MAPPER.convertValue(o, JsonStructure.class);
+ try {
+ // Convert object to JSON string using Jackson
+ String jsonString = OBJECT_MAPPER.writeValueAsString(o);
+ // Parse the JSON string using Jakarta JSON API to get a JsonStructure
+ try (JsonReader reader = Json.createReader(new java.io.StringReader(jsonString))) {
+ return reader.read();
+ }
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to convert object to JsonStructure", e);
+ }
}
public static Map getMap(Object o) {
@@ -310,24 +319,33 @@ public final class JsonUtils {
public static T applyPatch(T original, JsonPatch patch, Class clz) {
JsonValue value = applyPatch(original, patch);
- return OBJECT_MAPPER.convertValue(value, clz);
+ // Convert Jakarta JSON JsonValue to Jackson JsonNode
+ try {
+ String jsonString = value.toString();
+ JsonNode jsonNode = OBJECT_MAPPER.readTree(jsonString);
+ return OBJECT_MAPPER.convertValue(jsonNode, clz);
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to convert JsonValue to target class", e);
+ }
}
public static JsonPatch getJsonPatch(String v1, String v2) {
JsonNode source = readTree(v1);
JsonNode dest = readTree(v2);
- return Json.createPatch(treeToValue(JsonDiff.asJson(source, dest), JsonArray.class));
+ JsonNode patchNode = JsonDiff.asJson(source, dest);
+ return Json.createPatch(Json.createReader(new StringReader(patchNode.toString())).readArray());
}
public static JsonPatch getJsonPatch(Object v1, Object v2) {
JsonNode source = valueToTree(v1);
JsonNode dest = valueToTree(v2);
- return Json.createPatch(treeToValue(JsonDiff.asJson(source, dest), JsonArray.class));
+ JsonNode patchNode = JsonDiff.asJson(source, dest);
+ return Json.createPatch(Json.createReader(new StringReader(patchNode.toString())).readArray());
}
private static JsonNode applyJsonPatch(JsonPatch patch, JsonNode targetNode)
throws JsonPatchException, IOException {
- // Convert javax.json.JsonPatch to com.github.fge.jsonpatch.JsonPatch
+ // Convert jakarta.json.JsonPatch to com.github.fge.jsonpatch.JsonPatch
String patchString = patch.toString();
JsonNode patchNode;
try {
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java
index 32ebbdaa618..95bfaa68a36 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java
@@ -1,72 +1,94 @@
-/*
- * Copyright 2022 Collate
- * Licensed 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.openmetadata.service.util;
-import static io.github.maksymdolgykh.dropwizard.micrometer.MicrometerBundle.prometheusRegistry;
-
-import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerBundle;
-import io.micrometer.core.instrument.Timer;
-import io.micrometer.prometheus.PrometheusMeterRegistry;
-import io.prometheus.client.Counter;
-import io.prometheus.client.Histogram;
+import com.codahale.metrics.MetricRegistry;
+import io.micrometer.core.instrument.Clock;
+import io.micrometer.core.instrument.dropwizard.DropwizardConfig;
+import io.micrometer.core.instrument.dropwizard.DropwizardMeterRegistry;
+import io.micrometer.core.instrument.util.HierarchicalNameMapper;
+import io.micrometer.prometheusmetrics.PrometheusConfig;
+import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;
+import io.prometheus.client.CollectorRegistry;
+import io.prometheus.client.dropwizard.DropwizardExports;
import lombok.Getter;
-import org.openmetadata.service.OpenMetadataApplicationConfig;
public class MicrometerBundleSingleton {
- @Getter private static final MicrometerBundle instance = new MicrometerBundle();
- // We'll use this registry to add monitoring around Ingestion Pipelines
- public static final PrometheusMeterRegistry prometheusMeterRegistry = prometheusRegistry;
- @Getter private static Timer requestsLatencyTimer;
- @Getter private static Timer jdbiLatencyTimer;
+ @Getter private static final MetricRegistry metrics = new MetricRegistry();
+
+ @Getter
+ private static final CollectorRegistry collectorRegistry = CollectorRegistry.defaultRegistry;
+
+ @Getter
+ public static final PrometheusMeterRegistry prometheusMeterRegistry =
+ new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
+
+ private static final DropwizardMeterRegistry dropwizardRegistry;
+
+ static {
+ // Create a DropwizardConfig
+ DropwizardConfig config =
+ new DropwizardConfig() {
+ @Override
+ public String prefix() {
+ return "dropwizard";
+ }
+
+ @Override
+ public String get(String key) {
+ return null;
+ }
+ };
+
+ // Create concrete implementation of DropwizardMeterRegistry
+ dropwizardRegistry =
+ new DropwizardMeterRegistry(config, metrics, HierarchicalNameMapper.DEFAULT, Clock.SYSTEM) {
+ @Override
+ protected Double nullGaugeValue() {
+ return 0.0;
+ }
+ };
+
+ // Register Dropwizard metrics with Prometheus
+ new DropwizardExports(metrics).register();
+ }
+
+ @Getter private static io.micrometer.core.instrument.Timer requestsLatencyTimer;
+ @Getter private static io.micrometer.core.instrument.Timer jdbiLatencyTimer;
private MicrometerBundleSingleton() {}
private static final double[] latencyBuckets = new double[] {.01, .1, 1, 2, 5, 10, 20, 60};
- public static final Histogram httpRequests =
- Histogram.build()
+ public static final io.prometheus.client.Histogram httpRequests =
+ io.prometheus.client.Histogram.build()
.name("http_server_requests_sec")
.help("HTTP methods duration")
.labelNames("method")
.buckets(latencyBuckets)
- .register(prometheusMeterRegistry.getPrometheusRegistry());
+ .register();
- public static final Histogram jdbiRequests =
- Histogram.build()
+ public static final io.prometheus.client.Histogram jdbiRequests =
+ io.prometheus.client.Histogram.build()
.name("jdbi_requests_seconds")
.help("jdbi requests duration distribution")
.buckets(latencyBuckets)
- .register(MicrometerBundle.prometheusRegistry.getPrometheusRegistry());
+ .register();
- public static final Counter pipelineClientStatusCounter =
- Counter.build()
+ public static final io.prometheus.client.Counter pipelineClientStatusCounter =
+ io.prometheus.client.Counter.build()
.name("pipeline_client_request_status")
.help("status codes returned by pipeline client by operation")
.labelNames("operation", "status")
- .register(MicrometerBundle.prometheusRegistry.getPrometheusRegistry());
+ .register();
- public static void initLatencyEvents(OpenMetadataApplicationConfig config) {
+ public static void initLatencyEvents() {
requestsLatencyTimer =
- Timer.builder("http_latency_requests")
- .description("HTTP request latency in seconds.")
- .publishPercentiles(config.getEventMonitorConfiguration().getLatency())
+ io.micrometer.core.instrument.Timer.builder("http_latency_requests")
+ .description("HTTP request latency in seconds")
.register(prometheusMeterRegistry);
jdbiLatencyTimer =
- Timer.builder("jdbi_latency_requests")
- .description("JDBI queries latency in seconds.")
- .publishPercentiles(config.getEventMonitorConfiguration().getLatency())
+ io.micrometer.core.instrument.Timer.builder("jdbi_latency_requests")
+ .description("JDBI queries latency in seconds")
.register(prometheusMeterRegistry);
}
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/OMMicroMeterBundler.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/OMMicroMeterBundler.java
new file mode 100644
index 00000000000..bccd03a972d
--- /dev/null
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/OMMicroMeterBundler.java
@@ -0,0 +1,6 @@
+package org.openmetadata.service.util;
+
+import io.dropwizard.core.ConfiguredBundle;
+import org.openmetadata.service.OpenMetadataApplicationConfig;
+
+public class OMMicroMeterBundler implements ConfiguredBundle {}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java
index 64ed09f0504..fce031df4b0 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java
@@ -12,7 +12,6 @@ import static org.openmetadata.service.util.AsciiTable.printOpenMetadataText;
import static org.openmetadata.service.util.UserUtil.updateUserWithHashedPwd;
import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
@@ -25,6 +24,7 @@ import io.dropwizard.configuration.YamlConfigurationFactory;
import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.jersey.validation.Validators;
+import jakarta.validation.Validator;
import java.io.File;
import java.net.URI;
import java.nio.charset.StandardCharsets;
@@ -38,7 +38,6 @@ import java.util.Objects;
import java.util.Scanner;
import java.util.Set;
import java.util.concurrent.Callable;
-import javax.validation.Validator;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.flywaydb.core.Flyway;
@@ -72,6 +71,8 @@ import org.openmetadata.service.TypeRegistry;
import org.openmetadata.service.apps.ApplicationHandler;
import org.openmetadata.service.apps.scheduler.AppScheduler;
import org.openmetadata.service.clients.pipeline.PipelineServiceClientFactory;
+import org.openmetadata.service.events.AuditExcludeFilterFactory;
+import org.openmetadata.service.events.AuditOnlyFilterFactory;
import org.openmetadata.service.exception.EntityNotFoundException;
import org.openmetadata.service.fernet.Fernet;
import org.openmetadata.service.jdbi3.AppMarketPlaceRepository;
@@ -1125,11 +1126,8 @@ public class OpenMetadataOperations implements Callable {
}
private void parseConfig() throws Exception {
- if (debug) {
- Logger root = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
- root.setLevel(Level.DEBUG);
- }
ObjectMapper objectMapper = Jackson.newObjectMapper();
+ objectMapper.registerSubtypes(AuditExcludeFilterFactory.class, AuditOnlyFilterFactory.class);
Validator validator = Validators.newValidator();
YamlConfigurationFactory factory =
new YamlConfigurationFactory<>(
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/RestUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/RestUtil.java
index ad98c22fd10..4fd5b532210 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/RestUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/RestUtil.java
@@ -20,6 +20,11 @@ import static org.openmetadata.schema.type.EventType.ENTITY_RESTORED;
import static org.openmetadata.schema.type.EventType.ENTITY_UPDATED;
import static org.openmetadata.schema.type.EventType.LOGICAL_TEST_CASE_ADDED;
+import jakarta.ws.rs.BadRequestException;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.text.DateFormat;
@@ -32,11 +37,6 @@ import java.time.format.DateTimeFormatter;
import java.util.Base64;
import java.util.TimeZone;
import java.util.UUID;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
import lombok.Getter;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.api.configuration.OpenMetadataBaseUrlConfiguration;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/ResultList.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/ResultList.java
index ecaadd91c7b..1a39aaf02f3 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/ResultList.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/ResultList.java
@@ -16,10 +16,10 @@ package org.openmetadata.service.util;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import jakarta.validation.constraints.NotNull;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
-import javax.validation.constraints.NotNull;
import org.openmetadata.schema.system.EntityError;
import org.openmetadata.schema.type.Paging;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/SchemaFieldExtractor.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/SchemaFieldExtractor.java
index 55bb72f73c5..6ed4801e0b1 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/SchemaFieldExtractor.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/SchemaFieldExtractor.java
@@ -3,6 +3,7 @@ package org.openmetadata.service.util;
import io.github.classgraph.ClassGraph;
import io.github.classgraph.Resource;
import io.github.classgraph.ScanResult;
+import jakarta.ws.rs.core.UriInfo;
import java.io.InputStream;
import java.util.ArrayDeque;
import java.util.ArrayList;
@@ -16,7 +17,6 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import javax.ws.rs.core.UriInfo;
import lombok.extern.slf4j.Slf4j;
import org.everit.json.schema.*;
import org.everit.json.schema.loader.SchemaClient;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/SubscriptionUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/SubscriptionUtil.java
index 4784b917bd2..e896899d2ce 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/SubscriptionUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/SubscriptionUtil.java
@@ -20,6 +20,11 @@ import static org.openmetadata.service.Entity.THREAD;
import static org.openmetadata.service.Entity.USER;
import static org.openmetadata.service.events.subscription.AlertsRuleEvaluator.getEntity;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -30,11 +35,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.openmetadata.common.utils.CommonUtil;
@@ -454,9 +454,10 @@ public class SubscriptionUtil {
long attemptTime = System.currentTimeMillis();
Response response =
(httpMethod == Webhook.HttpMethod.PUT)
- ? target.put(javax.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE))
+ ? target.put(
+ jakarta.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE))
: target.post(
- javax.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE));
+ jakarta.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE));
LOG.debug(
"Subscription Destination HTTP Operation {}:{} received response {}",
@@ -480,9 +481,10 @@ public class SubscriptionUtil {
Webhook.HttpMethod httpMethod) {
Response response =
(httpMethod == Webhook.HttpMethod.PUT)
- ? target.put(javax.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE))
+ ? target.put(
+ jakarta.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE))
: target.post(
- javax.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE));
+ jakarta.ws.rs.client.Entity.entity(message, MediaType.APPLICATION_JSON_TYPE));
StatusContext statusContext = createStatusContext(response);
handleTestDestinationStatus(destination, statusContext);
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/UserUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/UserUtil.java
index 202849a8435..38d71628c53 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/UserUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/UserUtil.java
@@ -22,6 +22,8 @@ import static org.openmetadata.service.Entity.ADMIN_USER_NAME;
import static org.openmetadata.service.jdbi3.UserRepository.AUTH_MECHANISM_FIELD;
import at.favre.lib.crypto.bcrypt.BCrypt;
+import jakarta.json.JsonPatch;
+import jakarta.ws.rs.core.UriInfo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -30,8 +32,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.json.JsonPatch;
-import javax.ws.rs.core.UriInfo;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.api.teams.CreateUser;
import org.openmetadata.schema.auth.BasicAuthMechanism;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/ValidatorUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/ValidatorUtil.java
index c05f1ca52ad..8ebc960b02e 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/ValidatorUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/ValidatorUtil.java
@@ -1,12 +1,11 @@
package org.openmetadata.service.util;
-import io.dropwizard.jersey.validation.DropwizardConfiguredValidator;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
import java.util.Arrays;
import java.util.Set;
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
import org.apache.commons.csv.CSVRecord;
public class ValidatorUtil {
@@ -16,7 +15,7 @@ public class ValidatorUtil {
static {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
- VALIDATOR = new DropwizardConfiguredValidator(factory.getValidator());
+ VALIDATOR = factory.getValidator();
}
private ValidatorUtil() {
@@ -50,7 +49,6 @@ public class ValidatorUtil {
} else {
// Either name or email (or both) are null or empty, so validation cannot be performed
// JSON schema validate method would have managed this case.
-
return "";
}
}
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/WebsocketNotificationHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/WebsocketNotificationHandler.java
index c765f5f980a..e26f4e2b528 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/WebsocketNotificationHandler.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/WebsocketNotificationHandler.java
@@ -16,6 +16,9 @@ package org.openmetadata.service.util;
import static org.openmetadata.service.Entity.TEAM;
import static org.openmetadata.service.Entity.USER;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
import java.time.Instant;
import java.util.HashSet;
import java.util.List;
@@ -23,9 +26,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.EntityInterface;
import org.openmetadata.schema.entity.feed.Thread;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/DatabaseAuthenticationProvider.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/DatabaseAuthenticationProvider.java
index 49c96c816aa..e57ead958a6 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/DatabaseAuthenticationProvider.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/DatabaseAuthenticationProvider.java
@@ -1,11 +1,11 @@
package org.openmetadata.service.util.jdbi;
+import jakarta.validation.constraints.NotNull;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import java.util.Map;
-import javax.validation.constraints.NotNull;
/**
* Database authentication provider is the main interface responsible for all implementation that requires additional
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/JdbiUtils.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/JdbiUtils.java
index 6c5e34ba09c..07eb153012a 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/JdbiUtils.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/jdbi/JdbiUtils.java
@@ -1,9 +1,9 @@
package org.openmetadata.service.util.jdbi;
import com.codahale.metrics.NoopMetricRegistry;
+import io.dropwizard.core.setup.Environment;
import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.jdbi3.JdbiFactory;
-import io.dropwizard.setup.Environment;
import org.jdbi.v3.core.Jdbi;
import org.jdbi.v3.core.statement.SqlStatements;
import org.jdbi.v3.sqlobject.SqlObjectPlugin;
diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/workflows/searchIndex/ReindexingUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/workflows/searchIndex/ReindexingUtil.java
index 21c4fe2c7e7..6014ba6c2c7 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/workflows/searchIndex/ReindexingUtil.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/workflows/searchIndex/ReindexingUtil.java
@@ -18,12 +18,12 @@ import static org.openmetadata.service.search.SearchClient.GLOBAL_SEARCH_ALIAS;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
+import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.UUID;
-import javax.ws.rs.core.Response;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.common.utils.CommonUtil;
diff --git a/openmetadata-service/src/main/resources/openapi.yml b/openmetadata-service/src/main/resources/openapi.yml
new file mode 100644
index 00000000000..59151425b48
--- /dev/null
+++ b/openmetadata-service/src/main/resources/openapi.yml
@@ -0,0 +1,16 @@
+openapi: 3.0.3
+info:
+ title: OpenMetadata APIs
+ version: 1.6.0
+servers:
+ - url: "/api"
+ description: Current Host
+ - url: "http://localhost:8585/api"
+ description: Endpoint URL
+components:
+ securitySchemes:
+ BearerAuth:
+ type: http
+ scheme: bearer
+security:
+ - BearerAuth: []
\ No newline at end of file
diff --git a/openmetadata-service/src/test/java/org/openmetadata/jobs/BackgroundJobWorkerTest.java b/openmetadata-service/src/test/java/org/openmetadata/jobs/BackgroundJobWorkerTest.java
index e5f0b604b4d..bd15dddc34f 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/jobs/BackgroundJobWorkerTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/jobs/BackgroundJobWorkerTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.jobs;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java
index b11dd633ff0..27b5dde2d78 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java
@@ -22,13 +22,13 @@ import io.dropwizard.jersey.jackson.JacksonFeature;
import io.dropwizard.testing.ConfigOverride;
import io.dropwizard.testing.ResourceHelpers;
import io.dropwizard.testing.junit5.DropwizardAppExtension;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.WebTarget;
import java.net.URI;
import java.time.Duration;
import java.util.HashSet;
import java.util.Set;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
@@ -36,10 +36,9 @@ import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.flywaydb.core.Flyway;
+import org.glassfish.jersey.apache.connector.ApacheConnectorProvider;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.jetty.connector.JettyClientProperties;
-import org.glassfish.jersey.jetty.connector.JettyConnectorProvider;
import org.jdbi.v3.core.Jdbi;
import org.jdbi.v3.sqlobject.SqlObjectPlugin;
import org.jdbi.v3.sqlobject.SqlObjects;
@@ -265,12 +264,11 @@ public abstract class OpenMetadataApplicationTest {
private static void createClient() {
ClientConfig config = new ClientConfig();
- config.connectorProvider(new JettyConnectorProvider());
+ config.connectorProvider(new ApacheConnectorProvider());
config.register(new JacksonFeature(APP.getObjectMapper()));
config.property(ClientProperties.CONNECT_TIMEOUT, 0);
config.property(ClientProperties.READ_TIMEOUT, 0);
config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true);
- config.property(JettyClientProperties.SYNC_LISTENER_RESPONSE_MAX_SIZE, 10 * 1024 * 1024);
client = ClientBuilder.newClient(config);
}
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java
index 184251ff291..60313dfc0ac 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java
@@ -13,13 +13,13 @@
package org.openmetadata.service.resources;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CONFLICT;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static java.lang.String.format;
import static java.util.Collections.emptyList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CONFLICT;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -60,7 +60,6 @@ import com.flipkart.zjsonpatch.JsonDiff;
import es.org.elasticsearch.action.get.GetResponse;
import es.org.elasticsearch.action.search.SearchResponse;
import es.org.elasticsearch.client.Request;
-import es.org.elasticsearch.client.Response;
import es.org.elasticsearch.client.RestClient;
import es.org.elasticsearch.search.SearchHit;
import es.org.elasticsearch.search.aggregations.Aggregation;
@@ -76,6 +75,9 @@ import es.org.elasticsearch.xcontent.XContentParser;
import es.org.elasticsearch.xcontent.json.JsonXContent;
import io.socket.client.IO;
import io.socket.client.Socket;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.net.URISyntaxException;
import java.time.Duration;
@@ -97,8 +99,6 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiConsumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.Getter;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -971,7 +971,7 @@ public abstract class EntityResourceTest listAfterRestore = listEntities(null, 1000, null, null, ADMIN_AUTH_HEADERS);
assertEquals(listBeforeDeletion.getData().size(), listAfterRestore.getData().size());
@@ -1136,7 +1136,7 @@ public abstract class EntityResourceTest authHeaders)
throws HttpResponseException {
try {
@@ -2417,7 +2416,7 @@ public abstract class EntityResourceTest indexNamesFromResponse = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
@@ -3752,7 +3751,7 @@ public abstract class EntityResourceTest {
- Response response = searchClient.performRequest(request);
+ es.org.elasticsearch.client.Response response = searchClient.performRequest(request);
String jsonString = EntityUtils.toString(response.getEntity());
@SuppressWarnings("unchecked")
HashMap map =
@@ -4441,7 +4440,7 @@ public abstract class EntityResourceTest map =
(HashMap) JsonUtils.readOrConvertValue(jsonString, HashMap.class);
@@ -4469,7 +4468,7 @@ public abstract class EntityResourceTest map =
(HashMap) JsonUtils.readOrConvertValue(jsonString, HashMap.class);
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/ReportDataResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/ReportDataResourceTest.java
index 654f3a81a13..e9f25672c13 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/ReportDataResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/ReportDataResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.analytics;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.openmetadata.schema.type.DataReportIndex.ENTITY_REPORT_DATA_INDEX;
@@ -16,6 +16,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import es.org.elasticsearch.client.Request;
import es.org.elasticsearch.client.Response;
import es.org.elasticsearch.client.RestClient;
+import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
@@ -24,7 +25,6 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/WebAnalyticEventResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/WebAnalyticEventResourceTest.java
index fa00dc7fd53..34d22590637 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/WebAnalyticEventResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/analytics/WebAnalyticEventResourceTest.java
@@ -1,8 +1,8 @@
package org.openmetadata.service.resources.analytics;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.openmetadata.service.exception.CatalogExceptionMessage.permissionNotAllowed;
import static org.openmetadata.service.security.SecurityUtil.authHeaders;
@@ -12,12 +12,12 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
+import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java
index a6c7744b42e..3fada911a62 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.apis;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java
index d05bc946f31..dd126fd8968 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.apis;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -16,6 +16,8 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.validateEntityReference;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
@@ -25,8 +27,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppsResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppsResourceTest.java
index 2c5e3413572..1cf011c1abc 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppsResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppsResourceTest.java
@@ -1,13 +1,12 @@
package org.openmetadata.service.resources.apps;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CREATED;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CREATED;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.openmetadata.common.utils.CommonUtil.listOf;
import static org.openmetadata.schema.type.ColumnDataType.INT;
import static org.openmetadata.service.Entity.ADMIN_USER_NAME;
-import static org.openmetadata.service.Entity.getSearchRepository;
import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
import static org.openmetadata.service.util.TestUtils.assertEventually;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
@@ -17,6 +16,8 @@ import es.org.elasticsearch.client.Request;
import es.org.elasticsearch.client.RestClient;
import io.github.resilience4j.retry.RetryConfig;
import io.github.resilience4j.retry.RetryRegistry;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.time.Duration;
import java.util.ArrayList;
@@ -26,8 +27,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
@@ -318,7 +317,7 @@ public class AppsResourceTest extends EntityResourceTest {
// -------------------------------------------------
RestClient searchClient = getSearchClient();
es.org.elasticsearch.client.Response response;
- String clusterAlias = getSearchRepository().getClusterAlias();
+ String clusterAlias = Entity.getSearchRepository().getClusterAlias();
String endpointSuffix = "di-data-assets-*";
String endpoint =
!(clusterAlias == null || clusterAlias.isEmpty())
@@ -654,7 +653,7 @@ public class AppsResourceTest extends EntityResourceTest {
throws HttpResponseException {
WebTarget target = getResource("apps/trigger").path(appName);
Response response =
- SecurityUtil.addHeaders(target, authHeaders).post(javax.ws.rs.client.Entity.json(config));
+ SecurityUtil.addHeaders(target, authHeaders).post(jakarta.ws.rs.client.Entity.json(config));
readResponse(response, OK.getStatusCode());
}
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/bots/BotResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/bots/BotResourceTest.java
index fc521584487..4083f05ec14 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/bots/BotResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/bots/BotResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.bots;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java
index 26bbe5a6724..b7a434bf541 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java
@@ -13,8 +13,8 @@
package org.openmetadata.service.resources.charts;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dashboards/DashboardResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dashboards/DashboardResourceTest.java
index ebef06c1277..6cb82bb873a 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dashboards/DashboardResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dashboards/DashboardResourceTest.java
@@ -13,9 +13,9 @@
package org.openmetadata.service.resources.dashboards;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java
index 433e6e94301..ebac8cd9dcb 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.databases;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.apache.commons.lang.StringEscapeUtils.escapeCsv;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java
index 2f03a54e4dd..f43685a3414 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.databases;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.apache.commons.lang.StringEscapeUtils.escapeCsv;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -32,11 +32,11 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
import static org.pac4j.core.util.CommonHelper.assertTrue;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import javax.ws.rs.core.Response;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/StoredProcedureResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/StoredProcedureResourceTest.java
index 8f221eccb43..b9438990cf2 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/StoredProcedureResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/StoredProcedureResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.databases;
-import static javax.ws.rs.core.Response.Status.*;
+import static jakarta.ws.rs.core.Response.Status.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.openmetadata.service.Entity.*;
import static org.openmetadata.service.exception.CatalogExceptionMessage.*;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java
index cbb9b677b75..8e9f9ef59ce 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java
@@ -13,13 +13,13 @@
package org.openmetadata.service.resources.databases;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CREATED;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static java.lang.String.format;
import static java.util.Collections.singletonList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CREATED;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -49,7 +49,6 @@ import static org.openmetadata.service.Entity.FIELD_TAGS;
import static org.openmetadata.service.Entity.TABLE;
import static org.openmetadata.service.Entity.TAG;
import static org.openmetadata.service.Entity.getEntityTypeFromObject;
-import static org.openmetadata.service.Entity.getSearchRepository;
import static org.openmetadata.service.exception.CatalogExceptionMessage.entityNotFound;
import static org.openmetadata.service.exception.CatalogExceptionMessage.invalidColumnFQN;
import static org.openmetadata.service.exception.CatalogExceptionMessage.permissionNotAllowed;
@@ -70,6 +69,8 @@ import com.google.common.collect.Lists;
import es.org.elasticsearch.client.Request;
import es.org.elasticsearch.client.Response;
import es.org.elasticsearch.client.RestClient;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
@@ -85,8 +86,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
@@ -2130,11 +2129,13 @@ public class TableResourceTest extends EntityResourceTest {
private void assertChangeSummaryInSearch(EntityInterface entity) throws IOException {
RestClient searchClient = getSearchClient();
- IndexMapping index = getSearchRepository().getIndexMapping(getEntityTypeFromObject(entity));
+ IndexMapping index =
+ Entity.getSearchRepository().getIndexMapping(getEntityTypeFromObject(entity));
Request request =
new Request(
"GET",
- format("%s/_search", index.getIndexName(getSearchRepository().getClusterAlias())));
+ format(
+ "%s/_search", index.getIndexName(Entity.getSearchRepository().getClusterAlias())));
String query =
format(
"{\"size\": 1, \"query\": {\"bool\": {\"must\": [{\"term\": {\"_id\": \"%s\"}}]}}}",
@@ -3149,11 +3150,13 @@ public class TableResourceTest extends EntityResourceTest {
// Restore the soft-deleted tables present in other containers
for (UUID id : createdUUIDs) {
restoreEntity(
- new RestoreEntity().withId(id), javax.ws.rs.core.Response.Status.OK, ADMIN_AUTH_HEADERS);
+ new RestoreEntity().withId(id),
+ jakarta.ws.rs.core.Response.Status.OK,
+ ADMIN_AUTH_HEADERS);
}
restoreEntity(
new RestoreEntity().withId(entity.getId()),
- javax.ws.rs.core.Response.Status.OK,
+ jakarta.ws.rs.core.Response.Status.OK,
ADMIN_AUTH_HEADERS);
}
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/datainsight/DataInsightChartResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/datainsight/DataInsightChartResourceTest.java
index 5b0faea07c0..e8630ab5423 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/datainsight/DataInsightChartResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/datainsight/DataInsightChartResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.datainsight;
-import static javax.ws.rs.core.Response.Status.*;
+import static jakarta.ws.rs.core.Response.Status.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.openmetadata.service.Entity.DATA_INSIGHT_CHART;
import static org.openmetadata.service.exception.CatalogExceptionMessage.permissionDenied;
@@ -11,12 +11,12 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
+import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import javax.ws.rs.client.WebTarget;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/datamodels/DashboardDataModelResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/datamodels/DashboardDataModelResourceTest.java
index ea1e6c57d2d..c0c5e2d55cc 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/datamodels/DashboardDataModelResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/datamodels/DashboardDataModelResourceTest.java
@@ -13,8 +13,8 @@
package org.openmetadata.service.resources.datamodels;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -31,11 +31,11 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/docstore/DocStoreResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/docstore/DocStoreResourceTest.java
index c138bfc1a4a..c4a9b43d282 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/docstore/DocStoreResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/docstore/DocStoreResourceTest.java
@@ -1,7 +1,7 @@
package org.openmetadata.service.resources.docstore;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -18,6 +18,9 @@ import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.put;
import static org.openmetadata.service.util.email.TemplateConstants.EMAIL_VERIFICATION_TEMPLATE;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
@@ -26,9 +29,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DataProductResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DataProductResourceTest.java
index cd8f483cfea..dbbfed1b54a 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DataProductResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DataProductResourceTest.java
@@ -11,12 +11,12 @@ import static org.openmetadata.service.util.EntityUtil.fieldDeleted;
import static org.openmetadata.service.util.TestUtils.*;
import static org.openmetadata.service.util.TestUtils.UpdateType.MINOR_UPDATE;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.core.Response.Status;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DomainResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DomainResourceTest.java
index 09b618b8d0f..37f3c44f324 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DomainResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/domains/DomainResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.domains;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -18,13 +18,13 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java
index b813d84a8a0..72101ecde79 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java
@@ -13,10 +13,10 @@
package org.openmetadata.service.resources.dqtests;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -56,11 +56,11 @@ import com.fasterxml.jackson.databind.JsonNode;
import es.org.elasticsearch.client.Request;
import es.org.elasticsearch.client.Response;
import es.org.elasticsearch.client.RestClient;
+import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
-import javax.ws.rs.client.WebTarget;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestDefinitionResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestDefinitionResourceTest.java
index c2fdfcefa71..a93a2c1d94a 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestDefinitionResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestDefinitionResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.dqtests;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
import static org.openmetadata.service.util.TestUtils.assertListNotNull;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java
index 43847393a06..95d22d15d84 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java
@@ -1,7 +1,7 @@
package org.openmetadata.service.resources.dqtests;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -17,6 +17,8 @@ import static org.openmetadata.service.util.TestUtils.assertResponseContains;
import es.org.elasticsearch.client.Request;
import es.org.elasticsearch.client.RestClient;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
@@ -27,8 +29,6 @@ import java.util.Map;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import org.apache.http.client.HttpResponseException;
import org.apache.http.util.EntityUtils;
import org.junit.jupiter.api.Assertions;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/BaseCallbackResource.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/BaseCallbackResource.java
index 2ed6d3914d4..ea1b1455dcb 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/BaseCallbackResource.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/BaseCallbackResource.java
@@ -5,22 +5,22 @@ import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.UriInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicBoolean;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.core.UriInfo;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/EventSubscriptionResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/EventSubscriptionResourceTest.java
index d82e3e48cb5..10f355f3b11 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/EventSubscriptionResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/EventSubscriptionResourceTest.java
@@ -1,7 +1,7 @@
package org.openmetadata.service.resources.events;
-import static javax.ws.rs.core.Response.Status.CONFLICT;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.CONFLICT;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -16,6 +16,8 @@ import static org.openmetadata.service.util.TestUtils.UpdateType.MINOR_UPDATE;
import static org.openmetadata.service.util.TestUtils.UpdateType.NO_CHANGE;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
@@ -29,8 +31,6 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.awaitility.Awaitility;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/GChatCallbackResource.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/GChatCallbackResource.java
new file mode 100644
index 00000000000..ccf6f6b1a3d
--- /dev/null
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/GChatCallbackResource.java
@@ -0,0 +1,245 @@
+package org.openmetadata.service.resources.events;
+
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.UriInfo;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.atomic.AtomicBoolean;
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+import org.awaitility.Awaitility;
+
+/** REST resource used for Google Chat callback tests. */
+@Slf4j
+@Path("v1/test/gchat")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class GChatCallbackResource {
+ private static final ConcurrentHashMap eventMap = new ConcurrentHashMap<>();
+ private static final ConcurrentHashMap> entityCallbackMap =
+ new ConcurrentHashMap<>();
+
+ @POST
+ @Path("/addEvent/{id}")
+ public Response addEventDetails(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ addEventDetails(id, message);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/addEntityCallback/{id}")
+ public Response addEntityCallback(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ addEntityCallback(id, message);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/waitForFirstEvent/{id}")
+ public Response waitForFirstEvent(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id) {
+ waitForFirstEvent(id);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/waitForEvents/{id}/{count}")
+ public Response waitForEvents(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ @PathParam("count") int count) {
+ waitForEvents(id, count);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/clearEvents/{id}")
+ public Response clearEvents(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id) {
+ clearEvents(id);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/getEntityCallbackCount/{id}")
+ public Response getEntityCallbackCount(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id) {
+ return Response.ok(getEntityCallbackCount(id)).build();
+ }
+
+ @POST
+ @Path("/getEntityCallbackMessages/{id}")
+ public Response getEntityCallbackMessages(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id) {
+ return Response.ok(getEntityCallbackMessages(id)).build();
+ }
+
+ @POST
+ @Path("/getEventDetails/{id}")
+ public Response getEventDetails(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id) {
+ return Response.ok(getEventDetails(id)).build();
+ }
+
+ @POST
+ @Path("/getEventCount/{id}")
+ public Response getEventCount(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id) {
+ return Response.ok(getEventCount(id)).build();
+ }
+
+ @POST
+ @Path("/slow/{id}")
+ public Response slow(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ addEventDetails(id, message);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/timeout/{id}")
+ public Response timeout(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ addEventDetails(id, message);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("/300/{id}")
+ public Response status300(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ addEventDetails(id, message);
+ return Response.status(300).build();
+ }
+
+ @POST
+ @Path("/400/{id}")
+ public Response status400(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ addEventDetails(id, message);
+ return Response.status(400).build();
+ }
+
+ @POST
+ @Path("/500/{id}")
+ public Response status500(
+ @Context UriInfo uriInfo,
+ @Context SecurityContext securityContext,
+ @PathParam("id") String id,
+ String message) {
+ addEventDetails(id, message);
+ return Response.status(500).build();
+ }
+
+ private void addEventDetails(String id, String message) {
+ EventDetails details = eventMap.computeIfAbsent(id, k -> new EventDetails());
+ details.addEvent(message);
+ }
+
+ private void addEntityCallback(String id, String message) {
+ ConcurrentLinkedQueue messages =
+ entityCallbackMap.computeIfAbsent(id, k -> new ConcurrentLinkedQueue<>());
+ messages.add(message);
+ }
+
+ private void waitForFirstEvent(String id) {
+ EventDetails details = eventMap.computeIfAbsent(id, k -> new EventDetails());
+ Awaitility.await().untilTrue(details.hasEvent);
+ }
+
+ private void waitForEvents(String id, int count) {
+ EventDetails details = eventMap.computeIfAbsent(id, k -> new EventDetails());
+ Awaitility.await().until(() -> details.getEventCount() >= count);
+ }
+
+ private void clearEvents(String id) {
+ eventMap.remove(id);
+ entityCallbackMap.remove(id);
+ }
+
+ private int getEntityCallbackCount(String id) {
+ ConcurrentLinkedQueue messages = entityCallbackMap.get(id);
+ return messages != null ? messages.size() : 0;
+ }
+
+ private List getEntityCallbackMessages(String id) {
+ ConcurrentLinkedQueue messages = entityCallbackMap.get(id);
+ return messages != null ? new ArrayList<>(messages) : new ArrayList<>();
+ }
+
+ private EventDetails getEventDetails(String id) {
+ return eventMap.get(id);
+ }
+
+ private int getEventCount(String id) {
+ EventDetails details = eventMap.get(id);
+ return details != null ? details.getEventCount() : 0;
+ }
+
+ @Getter
+ static class EventDetails {
+ private final List events = new ArrayList<>();
+ private final AtomicBoolean hasEvent = new AtomicBoolean(false);
+
+ public void addEvent(String message) {
+ events.add(message);
+ hasEvent.set(true);
+ }
+
+ public int getEventCount() {
+ return events.size();
+ }
+ }
+}
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/MSTeamsCallbackResource.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/MSTeamsCallbackResource.java
index 5b50492a5cb..89ff8150f5e 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/MSTeamsCallbackResource.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/MSTeamsCallbackResource.java
@@ -1,21 +1,21 @@
package org.openmetadata.service.resources.events;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.UriInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicBoolean;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.core.UriInfo;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.awaitility.Awaitility;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/SlackCallbackResource.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/SlackCallbackResource.java
index 4887b61d60e..04ce883a6c9 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/SlackCallbackResource.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/SlackCallbackResource.java
@@ -3,22 +3,22 @@ package org.openmetadata.service.resources.events;
import static org.junit.Assert.assertEquals;
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.UriInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicBoolean;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.core.UriInfo;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.awaitility.Awaitility;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/WebhookCallbackResource.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/WebhookCallbackResource.java
index a567e63fc3e..21445b90877 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/WebhookCallbackResource.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/WebhookCallbackResource.java
@@ -1,9 +1,9 @@
package org.openmetadata.service.resources.events;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.schema.type.ChangeEvent;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java
index 13914d28d1f..9f7fa05ac8e 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java
@@ -13,10 +13,10 @@
package org.openmetadata.service.resources.feeds;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.awaitility.Awaitility.with;
import static org.awaitility.Durations.ONE_MINUTE;
import static org.awaitility.Durations.ONE_SECOND;
@@ -51,6 +51,8 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.flipkart.zjsonpatch.JsonDiff;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.net.URISyntaxException;
import java.time.LocalDateTime;
@@ -64,8 +66,6 @@ import java.util.UUID;
import java.util.function.BiPredicate;
import java.util.function.Predicate;
import java.util.stream.Stream;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/SuggestionsResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/SuggestionsResourceTest.java
index 7f54a8751e7..20697ed8c30 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/SuggestionsResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/SuggestionsResourceTest.java
@@ -1,10 +1,10 @@
package org.openmetadata.service.resources.feeds;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CREATED;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static java.util.Collections.singletonList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CREATED;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -24,6 +24,8 @@ import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URLEncoder;
@@ -32,8 +34,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Assertions;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java
index cd12a63b4ae..0912d4e5cf7 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java
@@ -16,7 +16,7 @@
package org.openmetadata.service.resources.glossary;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -50,6 +50,7 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.validateTagLabel;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.time.Duration;
import java.util.ArrayList;
@@ -61,7 +62,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import javax.ws.rs.core.Response.Status;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryTermResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryTermResourceTest.java
index 177dbeea18e..a39e7e59f08 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryTermResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryTermResourceTest.java
@@ -16,11 +16,11 @@
package org.openmetadata.service.resources.glossary;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static java.util.Collections.emptyList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.*;
import static org.openmetadata.common.utils.CommonUtil.listOf;
import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
@@ -43,6 +43,8 @@ import static org.openmetadata.service.util.EntityUtil.toTagLabels;
import static org.openmetadata.service.util.TestUtils.*;
import static org.openmetadata.service.util.TestUtils.UpdateType.MINOR_UPDATE;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URI;
import java.time.Duration;
@@ -58,8 +60,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.IntStream;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.awaitility.Awaitility;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/kpi/KpiResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/kpi/KpiResourceTest.java
index 10b123bdc4d..6ec368946a0 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/kpi/KpiResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/kpi/KpiResourceTest.java
@@ -1,9 +1,8 @@
package org.openmetadata.service.resources.kpi;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.openmetadata.service.Entity.getSearchRepository;
import static org.openmetadata.service.security.SecurityUtil.getPrincipalName;
import static org.openmetadata.service.util.EntityUtil.fieldUpdated;
import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
@@ -65,19 +64,19 @@ public class KpiResourceTest extends EntityResourceTest {
"dataProduct",
"glossaryTerm",
"tag");
- if (getSearchRepository()
+ if (Entity.getSearchRepository()
.getSearchType()
.equals(ElasticSearchConfiguration.SearchType.ELASTICSEARCH)) {
searchInterface =
new ElasticSearchDataInsightsClient(
- (RestClient) getSearchRepository().getSearchClient().getLowLevelClient(),
- getSearchRepository().getClusterAlias());
+ (RestClient) Entity.getSearchRepository().getSearchClient().getLowLevelClient(),
+ Entity.getSearchRepository().getClusterAlias());
} else {
searchInterface =
new OpenSearchDataInsightsClient(
(os.org.opensearch.client.RestClient)
- getSearchRepository().getSearchClient().getLowLevelClient(),
- getSearchRepository().getClusterAlias());
+ Entity.getSearchRepository().getSearchClient().getLowLevelClient(),
+ Entity.getSearchRepository().getClusterAlias());
}
try {
for (String dataAssetType : dataAssetTypes) {
@@ -87,7 +86,7 @@ public class KpiResourceTest extends EntityResourceTest {
searchInterface.createDataAssetsDataStream(
dataStreamName,
dataAssetType,
- getSearchRepository().getIndexMapping(dataAssetType),
+ Entity.getSearchRepository().getIndexMapping(dataAssetType),
"en",
7);
}
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/lineage/LineageResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/lineage/LineageResourceTest.java
index e8f12152ebd..72dbdd322a8 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/lineage/LineageResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/lineage/LineageResourceTest.java
@@ -13,8 +13,8 @@
package org.openmetadata.service.resources.lineage;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -25,6 +25,8 @@ import static org.openmetadata.service.security.SecurityUtil.authHeaders;
import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URLEncoder;
@@ -36,8 +38,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/metadata/TypeResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/metadata/TypeResourceTest.java
index 84fecab8f5c..c14d782478b 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/metadata/TypeResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/metadata/TypeResourceTest.java
@@ -27,14 +27,14 @@ import static org.openmetadata.service.util.TestUtils.assertResponseContains;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.MethodOrderer;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricResourceTest.java
index 0e172554bf2..1d388caa21d 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/metrics/MetricResourceTest.java
@@ -1,6 +1,6 @@
package org.openmetadata.service.resources.metrics;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.openmetadata.service.util.EntityUtil.fieldAdded;
import static org.openmetadata.service.util.EntityUtil.fieldUpdated;
@@ -9,12 +9,12 @@ import static org.openmetadata.service.util.TestUtils.UpdateType.MINOR_UPDATE;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.MethodOrderer;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/mlmodels/MlModelResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/mlmodels/MlModelResourceTest.java
index 294b7169222..163be0849f0 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/mlmodels/MlModelResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/mlmodels/MlModelResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.mlmodels;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.openmetadata.common.utils.CommonUtil.listOf;
@@ -29,6 +29,7 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -38,7 +39,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.function.BiConsumer;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.BeforeAll;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java
index 73d55f507fe..96c9e15e31b 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.permissions;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
import static org.openmetadata.schema.type.MetadataOperation.EDIT_ALL;
@@ -31,6 +31,11 @@ import static org.openmetadata.service.security.policyevaluator.OperationContext
import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.json.Json;
+import jakarta.json.JsonPatch;
+import jakarta.json.JsonPatchBuilder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.UriInfo;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -41,11 +46,6 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.json.Json;
-import javax.json.JsonPatch;
-import javax.json.JsonPatchBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.UriInfo;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java
index f0e38466818..a476ed38d63 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java
@@ -13,9 +13,9 @@
package org.openmetadata.service.resources.pipelines;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -34,6 +34,8 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URISyntaxException;
import java.text.ParseException;
@@ -47,8 +49,6 @@ import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.joda.time.DateTime;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java
index 8fe73289b42..8280f6afd23 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java
@@ -13,9 +13,9 @@
package org.openmetadata.service.resources.policies;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
import static java.util.Collections.emptyList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.openmetadata.common.utils.CommonUtil.listOf;
@@ -41,6 +41,7 @@ import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
import com.google.common.collect.Lists;
+import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
@@ -49,7 +50,6 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
-import javax.ws.rs.client.WebTarget;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/query/QueryResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/query/QueryResourceTest.java
index 6474c7f6137..f93161beaf2 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/query/QueryResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/query/QueryResourceTest.java
@@ -1,7 +1,7 @@
package org.openmetadata.service.resources.query;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.openmetadata.service.security.SecurityUtil.authHeaders;
@@ -13,11 +13,11 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.util.List;
import java.util.Map;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/searchindex/SearchIndexResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/searchindex/SearchIndexResourceTest.java
index 6e282b71f95..e42a230d4ac 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/searchindex/SearchIndexResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/searchindex/SearchIndexResourceTest.java
@@ -13,10 +13,10 @@
package org.openmetadata.service.resources.searchindex;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static java.util.Collections.singletonList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -24,7 +24,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.openmetadata.common.utils.CommonUtil.listOf;
import static org.openmetadata.service.Entity.FIELD_OWNERS;
import static org.openmetadata.service.Entity.TAG;
-import static org.openmetadata.service.Entity.getSearchRepository;
import static org.openmetadata.service.util.EntityUtil.fieldAdded;
import static org.openmetadata.service.util.EntityUtil.fieldDeleted;
import static org.openmetadata.service.util.EntityUtil.fieldUpdated;
@@ -41,6 +40,8 @@ import es.org.elasticsearch.search.aggregations.PipelineAggregatorBuilders;
import es.org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
import es.org.elasticsearch.search.aggregations.bucket.terms.IncludeExclude;
import es.org.elasticsearch.search.sort.SortOrder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -49,8 +50,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
@@ -432,7 +431,7 @@ public class SearchIndexResourceTest extends EntityResourceTest factory =
+ ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
+ Validator validator = validatorFactory.getValidator();
+ YamlConfigurationFactory configFactory =
new YamlConfigurationFactory<>(
OpenMetadataApplicationConfig.class, validator, objectMapper, "dw");
- config = factory.build(new FileConfigurationSourceProvider(), CONFIG_PATH);
+ config = configFactory.build(new FileConfigurationSourceProvider(), CONFIG_PATH);
}
@Test
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/system/SystemResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/system/SystemResourceTest.java
index 38986fdbb9f..19f116255be 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/system/SystemResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/system/SystemResourceTest.java
@@ -13,7 +13,11 @@ import io.dropwizard.configuration.ConfigurationException;
import io.dropwizard.configuration.FileConfigurationSourceProvider;
import io.dropwizard.configuration.YamlConfigurationFactory;
import io.dropwizard.jackson.Jackson;
-import io.dropwizard.jersey.validation.Validators;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
@@ -21,9 +25,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.validation.Validator;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.BeforeAll;
@@ -107,11 +108,12 @@ class SystemResourceTest extends OpenMetadataApplicationTest {
static void setup() throws IOException, ConfigurationException {
// Get config object from test yaml file
ObjectMapper objectMapper = Jackson.newObjectMapper();
- Validator validator = Validators.newValidator();
- YamlConfigurationFactory factory =
+ ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
+ Validator validator = validatorFactory.getValidator();
+ YamlConfigurationFactory configFactory =
new YamlConfigurationFactory<>(
OpenMetadataApplicationConfig.class, validator, objectMapper, "dw");
- config = factory.build(new FileConfigurationSourceProvider(), CONFIG_PATH);
+ config = configFactory.build(new FileConfigurationSourceProvider(), CONFIG_PATH);
}
@BeforeAll
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/ClassificationResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/ClassificationResourceTest.java
index d38704979ff..06cdce7f751 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/ClassificationResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/ClassificationResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.tags;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
@@ -25,11 +25,11 @@ import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.assertResponseContains;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.MethodOrderer;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java
index 6e788cd4379..8c2a19f8754 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java
@@ -13,9 +13,9 @@
package org.openmetadata.service.resources.tags;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CREATED;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CREATED;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -34,6 +34,8 @@ import static org.openmetadata.service.util.TestUtils.assertResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.flipkart.zjsonpatch.JsonDiff;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -41,8 +43,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.function.Predicate;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.MethodOrderer;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/PersonaResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/PersonaResourceTest.java
index 42bfb0e6218..749acaab703 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/PersonaResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/PersonaResourceTest.java
@@ -13,7 +13,7 @@
package org.openmetadata.service.resources.teams;
-import static javax.ws.rs.core.Response.Status.*;
+import static jakarta.ws.rs.core.Response.Status.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/RoleResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/RoleResourceTest.java
index 6b0ecbf44ec..79881062967 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/RoleResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/RoleResourceTest.java
@@ -13,8 +13,8 @@
package org.openmetadata.service.resources.teams;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
import static org.openmetadata.service.exception.CatalogExceptionMessage.permissionNotAllowed;
@@ -29,11 +29,11 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.validation.constraints.Positive;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.validation.constraints.Positive;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java
index 9277394cf23..adb37d80146 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java
@@ -13,10 +13,10 @@
package org.openmetadata.service.resources.teams;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -57,6 +57,8 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
import static org.openmetadata.service.util.TestUtils.validateEntityReferences;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -72,8 +74,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/UserResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/UserResourceTest.java
index 32436293283..2cb6148599f 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/UserResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/UserResourceTest.java
@@ -13,14 +13,14 @@
package org.openmetadata.service.resources.teams;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CONFLICT;
+import static jakarta.ws.rs.core.Response.Status.CREATED;
+import static jakarta.ws.rs.core.Response.Status.FORBIDDEN;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.UNAUTHORIZED;
import static java.util.List.of;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CONFLICT;
-import static javax.ws.rs.core.Response.Status.CREATED;
-import static javax.ws.rs.core.Response.Status.FORBIDDEN;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
-import static javax.ws.rs.core.Response.Status.UNAUTHORIZED;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -68,6 +68,8 @@ import static org.openmetadata.service.util.TestUtils.validateAlphabeticalOrderi
import com.auth0.jwt.JWT;
import com.auth0.jwt.exceptions.JWTDecodeException;
import com.auth0.jwt.interfaces.DecodedJWT;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -85,8 +87,6 @@ import java.util.TimeZone;
import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java
index 7d988ba1be2..58b8961513b 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java
@@ -13,10 +13,10 @@
package org.openmetadata.service.resources.topics;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static java.util.Collections.singletonList;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -33,6 +33,8 @@ import static org.openmetadata.service.util.TestUtils.assertListNotNull;
import static org.openmetadata.service.util.TestUtils.assertListNull;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -41,8 +43,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.junit.jupiter.api.Test;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java
index e99190f8d50..3bb90868370 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java
@@ -13,8 +13,8 @@
package org.openmetadata.service.resources.usage;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.openmetadata.common.utils.CommonUtil.getDateStringByOffset;
import static org.openmetadata.common.utils.CommonUtil.listOf;
@@ -29,6 +29,9 @@ import static org.openmetadata.service.util.TestUtils.TEST_AUTH_HEADERS;
import static org.openmetadata.service.util.TestUtils.TEST_USER_NAME;
import static org.openmetadata.service.util.TestUtils.assertResponse;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.net.URISyntaxException;
import java.time.LocalDate;
@@ -37,9 +40,6 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/security/JwtFilterTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/security/JwtFilterTest.java
index 8b13c91e2ca..719eb0368de 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/security/JwtFilterTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/security/JwtFilterTest.java
@@ -26,6 +26,10 @@ import com.auth0.jwk.Jwk;
import com.auth0.jwk.JwkProvider;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.UriInfo;
import java.net.URI;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
@@ -38,10 +42,6 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.core.UriInfo;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonPatchUtilsTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonPatchUtilsTest.java
index 7cd555205cc..a8c6cc58f01 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonPatchUtilsTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonPatchUtilsTest.java
@@ -5,14 +5,14 @@ import static org.mockito.Mockito.when;
import static org.openmetadata.common.utils.CommonUtil.listOf;
import com.github.fge.jsonpatch.JsonPatchException;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonPatch;
+import jakarta.json.JsonReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.Set;
import java.util.UUID;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonPatch;
-import javax.json.JsonReader;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonUtilsTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonUtilsTest.java
index 04ba5e7577a..27454b999d1 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonUtilsTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/util/JsonUtilsTest.java
@@ -18,17 +18,17 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import com.fasterxml.jackson.core.type.TypeReference;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonPatchBuilder;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonPatchBuilder;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.openmetadata.schema.api.services.DatabaseConnection;
@@ -93,7 +93,7 @@ class JsonUtilsTest {
assertThrows(
JsonException.class,
() -> JsonUtils.applyPatch(original, jsonPatchBuilder.build(), Team.class));
- assertTrue(jsonException.getMessage().contains("contains no element for index 4"));
+ assertTrue(jsonException.getMessage().contains("An array item index is out of range"));
// Delete the two users from the team
patchBuilder = Json.createPatchBuilder();
@@ -110,7 +110,7 @@ class JsonUtilsTest {
assertThrows(
JsonException.class,
() -> JsonUtils.applyPatch(original, jsonPatchBuilder2.build(), Team.class));
- assertTrue(jsonException.getMessage().contains("contains no element for index 3"));
+ assertTrue(jsonException.getMessage().contains("An array item index is out of range"));
}
@Test
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/util/RestUtilTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/util/RestUtilTest.java
index 0e2db104501..b0de9d6a397 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/util/RestUtilTest.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/util/RestUtilTest.java
@@ -15,10 +15,10 @@ package org.openmetadata.service.util;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import jakarta.ws.rs.core.UriInfo;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.UUID;
-import javax.ws.rs.core.UriInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/util/TestUtils.java b/openmetadata-service/src/test/java/org/openmetadata/service/util/TestUtils.java
index d1bd72562a7..0b13b3b18d9 100644
--- a/openmetadata-service/src/test/java/org/openmetadata/service/util/TestUtils.java
+++ b/openmetadata-service/src/test/java/org/openmetadata/service/util/TestUtils.java
@@ -34,6 +34,16 @@ import io.github.resilience4j.core.functions.CheckedRunnable;
import io.github.resilience4j.retry.Retry;
import io.github.resilience4j.retry.RetryConfig;
import io.github.resilience4j.retry.RetryRegistry;
+import jakarta.validation.constraints.Size;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Form;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import java.lang.reflect.Field;
import java.net.URI;
import java.text.DateFormat;
@@ -47,15 +57,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.validation.constraints.Size;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Form;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.HttpResponseException;
import org.eclipse.jetty.http.HttpStatus;
@@ -251,8 +252,20 @@ public final class TestUtils {
private TestUtils() {}
public static void readResponseError(Response response) throws HttpResponseException {
- JsonObject error = response.readEntity(JsonObject.class);
- throw new HttpResponseException(error.getInt("code"), error.getString("message"));
+ try {
+ Map error = response.readEntity(Map.class);
+ Object code = error.get("code");
+ Object message = error.get("message");
+
+ int statusCode = code instanceof Number ? ((Number) code).intValue() : response.getStatus();
+ String errorMessage = message != null ? message.toString() : "Unknown error";
+
+ throw new HttpResponseException(statusCode, errorMessage);
+ } catch (Exception e) {
+ // Fallback if we can't parse the error response
+ throw new HttpResponseException(
+ response.getStatus(), "Error reading response: " + e.getMessage());
+ }
}
public static void readResponse(Response response, int expectedResponse)
@@ -274,22 +287,199 @@ public final class TestUtils {
public static void assertResponse(
Executable executable, Response.Status expectedStatus, String expectedReason) {
- HttpResponseException exception = assertThrows(HttpResponseException.class, executable);
- assertEquals(expectedStatus.getStatusCode(), exception.getStatusCode());
- assertEquals(expectedReason, exception.getReasonPhrase());
+ Exception exception = assertThrows(Exception.class, executable);
+
+ int statusCode;
+ String reasonPhrase;
+
+ if (exception instanceof HttpResponseException) {
+ HttpResponseException httpException = (HttpResponseException) exception;
+ statusCode = httpException.getStatusCode();
+ reasonPhrase = httpException.getReasonPhrase();
+ } else if (exception instanceof WebApplicationException) {
+ WebApplicationException webException = (WebApplicationException) exception;
+ statusCode = webException.getResponse().getStatus();
+ reasonPhrase = webException.getMessage();
+ } else if (exception instanceof ProcessingException) {
+ // ProcessingException often wraps the actual HTTP error response
+ ProcessingException processingException = (ProcessingException) exception;
+ Throwable cause = processingException.getCause();
+
+ // Try to extract status from WebApplicationException in the cause chain
+ if (cause instanceof WebApplicationException) {
+ WebApplicationException webException = (WebApplicationException) cause;
+ statusCode = webException.getResponse().getStatus();
+ reasonPhrase = webException.getMessage();
+ } else {
+ // Fallback: try to parse from message or assume it's a client error
+ String message = processingException.getMessage();
+ if (message != null && message.contains("HTTP ")) {
+ // Try to extract status code from message like "HTTP 403"
+ try {
+ String[] parts = message.split("HTTP ");
+ if (parts.length > 1) {
+ String statusPart = parts[1].split(" ")[0];
+ statusCode = Integer.parseInt(statusPart);
+ reasonPhrase = message;
+ } else {
+ // Default to 500 for processing errors
+ statusCode = 500;
+ reasonPhrase = message;
+ }
+ } catch (NumberFormatException e) {
+ statusCode = 500;
+ reasonPhrase = message;
+ }
+ } else {
+ statusCode = 500;
+ reasonPhrase = processingException.getMessage();
+ }
+ }
+ } else {
+ throw new AssertionError("Unexpected exception type: " + exception.getClass(), exception);
+ }
+
+ assertEquals(expectedStatus.getStatusCode(), statusCode);
+
+ // Handle Apache HTTP client error message format: "Error reading response: status code: X,
+ // reason phrase: Y"
+ String actualReason = reasonPhrase;
+ if (reasonPhrase != null && reasonPhrase.startsWith("Error reading response: status code:")) {
+ // Extract the reason phrase from the wrapped format
+ String[] parts = reasonPhrase.split(", reason phrase: ");
+ if (parts.length > 1) {
+ actualReason = parts[1];
+ }
+ }
+
+ assertEquals(expectedReason, actualReason);
}
public static void assertResponse(
Executable executable, Response.Status expectedStatus, List expectedReasons) {
- HttpResponseException exception = assertThrows(HttpResponseException.class, executable);
- assertEquals(expectedStatus.getStatusCode(), exception.getStatusCode());
- assertTrue(expectedReasons.contains(exception.getReasonPhrase()));
+ Exception exception = assertThrows(Exception.class, executable);
+
+ int statusCode;
+ String reasonPhrase;
+
+ if (exception instanceof HttpResponseException) {
+ HttpResponseException httpException = (HttpResponseException) exception;
+ statusCode = httpException.getStatusCode();
+ reasonPhrase = httpException.getReasonPhrase();
+ } else if (exception instanceof WebApplicationException) {
+ WebApplicationException webException = (WebApplicationException) exception;
+ statusCode = webException.getResponse().getStatus();
+ reasonPhrase = webException.getMessage();
+ } else if (exception instanceof ProcessingException) {
+ // ProcessingException often wraps the actual HTTP error response
+ ProcessingException processingException = (ProcessingException) exception;
+ Throwable cause = processingException.getCause();
+
+ // Try to extract status from WebApplicationException in the cause chain
+ if (cause instanceof WebApplicationException) {
+ WebApplicationException webException = (WebApplicationException) cause;
+ statusCode = webException.getResponse().getStatus();
+ reasonPhrase = webException.getMessage();
+ } else {
+ // Fallback: try to parse from message or assume it's a client error
+ String message = processingException.getMessage();
+ if (message != null && message.contains("HTTP ")) {
+ // Try to extract status code from message like "HTTP 403"
+ try {
+ String[] parts = message.split("HTTP ");
+ if (parts.length > 1) {
+ String statusPart = parts[1].split(" ")[0];
+ statusCode = Integer.parseInt(statusPart);
+ reasonPhrase = message;
+ } else {
+ // Default to 500 for processing errors
+ statusCode = 500;
+ reasonPhrase = message;
+ }
+ } catch (NumberFormatException e) {
+ statusCode = 500;
+ reasonPhrase = message;
+ }
+ } else {
+ statusCode = 500;
+ reasonPhrase = processingException.getMessage();
+ }
+ }
+ } else {
+ throw new AssertionError("Unexpected exception type: " + exception.getClass(), exception);
+ }
+
+ assertEquals(expectedStatus.getStatusCode(), statusCode);
+
+ // Handle Apache HTTP client error message format: "Error reading response: status code: X,
+ // reason phrase: Y"
+ String actualReason = reasonPhrase;
+ if (reasonPhrase != null && reasonPhrase.startsWith("Error reading response: status code:")) {
+ // Extract the reason phrase from the wrapped format
+ String[] parts = reasonPhrase.split(", reason phrase: ");
+ if (parts.length > 1) {
+ actualReason = parts[1];
+ }
+ }
+
+ assertTrue(expectedReasons.contains(actualReason));
}
public static void assertResponseContains(
Executable executable, Response.Status expectedStatus, String expectedReason) {
- HttpResponseException exception = assertThrows(HttpResponseException.class, executable);
- assertEquals(expectedStatus.getStatusCode(), exception.getStatusCode());
+ Exception exception = assertThrows(Exception.class, executable);
+
+ int statusCode;
+ String reasonPhrase;
+
+ if (exception instanceof HttpResponseException) {
+ HttpResponseException httpException = (HttpResponseException) exception;
+ statusCode = httpException.getStatusCode();
+ reasonPhrase = httpException.getReasonPhrase();
+ } else if (exception instanceof WebApplicationException) {
+ WebApplicationException webException = (WebApplicationException) exception;
+ statusCode = webException.getResponse().getStatus();
+ reasonPhrase = webException.getMessage();
+ } else if (exception instanceof ProcessingException) {
+ // ProcessingException often wraps the actual HTTP error response
+ ProcessingException processingException = (ProcessingException) exception;
+ Throwable cause = processingException.getCause();
+
+ // Try to extract status from WebApplicationException in the cause chain
+ if (cause instanceof WebApplicationException) {
+ WebApplicationException webException = (WebApplicationException) cause;
+ statusCode = webException.getResponse().getStatus();
+ reasonPhrase = webException.getMessage();
+ } else {
+ // Fallback: try to parse from message or assume it's a client error
+ String message = processingException.getMessage();
+ if (message != null && message.contains("HTTP ")) {
+ // Try to extract status code from message like "HTTP 403"
+ try {
+ String[] parts = message.split("HTTP ");
+ if (parts.length > 1) {
+ String statusPart = parts[1].split(" ")[0];
+ statusCode = Integer.parseInt(statusPart);
+ reasonPhrase = message;
+ } else {
+ // Default to 500 for processing errors
+ statusCode = 500;
+ reasonPhrase = message;
+ }
+ } catch (NumberFormatException e) {
+ statusCode = 500;
+ reasonPhrase = message;
+ }
+ } else {
+ statusCode = 500;
+ reasonPhrase = processingException.getMessage();
+ }
+ }
+ } else {
+ throw new AssertionError("Unexpected exception type: " + exception.getClass(), exception);
+ }
+
+ assertEquals(expectedStatus.getStatusCode(), statusCode);
// Strip "[" at the beginning and "]" at the end as actual reason may contain more than one
// error messages
@@ -297,7 +487,7 @@ public final class TestUtils {
expectedReason.startsWith("[")
? expectedReason.substring(1, expectedReason.length() - 1)
: expectedReason;
- String actualReason = exception.getReasonPhrase();
+ String actualReason = reasonPhrase;
assertTrue(
actualReason.contains(expectedReason), expectedReason + " not in actual " + actualReason);
}
@@ -436,10 +626,11 @@ public final class TestUtils {
assertEquals(Status.OK.getStatusCode(), response.getStatus());
}
- public static javax.ws.rs.core.Response deleteAsync(WebTarget target, Map headers)
- throws HttpResponseException {
+ public static jakarta.ws.rs.core.Response deleteAsync(
+ WebTarget target, Map headers) throws HttpResponseException {
try {
- final javax.ws.rs.core.Response response = SecurityUtil.addHeaders(target, headers).delete();
+ final jakarta.ws.rs.core.Response response =
+ SecurityUtil.addHeaders(target, headers).delete();
int status = response.getStatus();
// For async operations, we expect 202 Accepted
@@ -690,8 +881,24 @@ public final class TestUtils {
public static String getEntityNameLengthError(Class clazz) {
try {
Field field = clazz.getDeclaredField("name");
+
+ // Try javax.validation.constraints.Size first
Size size = field.getAnnotation(Size.class);
- return String.format("[name size must be between %d and %d]", size.min(), size.max());
+ if (size != null) {
+ return String.format("[name size must be between %d and %d]", size.min(), size.max());
+ }
+
+ // Try jakarta.validation.constraints.Size
+ jakarta.validation.constraints.Size jakartaSize =
+ field.getAnnotation(jakarta.validation.constraints.Size.class);
+ if (jakartaSize != null) {
+ return String.format(
+ "[name size must be between %d and %d]", jakartaSize.min(), jakartaSize.max());
+ }
+
+ // Fallback if no Size annotation found
+ LOG.warn("No Size annotation found for name field in {}", clazz.getSimpleName());
+ return "[name size must be between 1 and 256]"; // Default values
} catch (NoSuchFieldException e) {
LOG.warn("Failed to find constraints for the entity {}", clazz.getSimpleName(), e);
}
diff --git a/openmetadata-spec/lombok.config b/openmetadata-spec/lombok.config
index 201871662ae..5b36730b202 100644
--- a/openmetadata-spec/lombok.config
+++ b/openmetadata-spec/lombok.config
@@ -1 +1,2 @@
+config.stopBubbling = true
lombok.log.fieldName = LOG
\ No newline at end of file
diff --git a/openmetadata-spec/pom.xml b/openmetadata-spec/pom.xml
index e914c58733c..2fcd61943aa 100644
--- a/openmetadata-spec/pom.xml
+++ b/openmetadata-spec/pom.xml
@@ -147,6 +147,7 @@
org.openmetadata.schema
true
true
+ true
org.openmetadata.annotations.OpenMetadataAnnotator
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/PipelineServiceClientInterface.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/PipelineServiceClientInterface.java
index 421664c2761..cf6f95d071d 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/PipelineServiceClientInterface.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/PipelineServiceClientInterface.java
@@ -13,10 +13,10 @@
package org.openmetadata.sdk;
+import jakarta.ws.rs.core.Response;
import java.net.URL;
import java.util.List;
import java.util.Map;
-import javax.ws.rs.core.Response;
import org.openmetadata.schema.ServiceEntityInterface;
import org.openmetadata.schema.entity.app.App;
import org.openmetadata.schema.entity.app.AppMarketPlaceDefinition;
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AssetServiceException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AssetServiceException.java
index ff4b576e38c..2a076d3bceb 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AssetServiceException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AssetServiceException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class AssetServiceException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "AssetService Exception [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AttachmentException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AttachmentException.java
index cbfd25393c9..dbbb4e4597b 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AttachmentException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/AttachmentException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class AttachmentException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "Attachment Exception [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/CSVExportException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/CSVExportException.java
index e546b53c55f..bcf1ead68de 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/CSVExportException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/CSVExportException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class CSVExportException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "CSVExport Exception [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntitySpecViolationException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntitySpecViolationException.java
index 0644a38059d..575c645b026 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntitySpecViolationException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntitySpecViolationException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class EntitySpecViolationException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "Entity Spec Violation [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntityUpdateException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntityUpdateException.java
index 306851e8be5..eb0ae524d02 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntityUpdateException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/EntityUpdateException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class EntityUpdateException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "Entity Update Exception [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceClientException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceClientException.java
index 19fd9981474..a471d3d0a84 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceClientException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceClientException.java
@@ -13,7 +13,7 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class PipelineServiceClientException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "Pipeline Exception [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceVersionException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceVersionException.java
index e1cf2e7d58a..6f8f85347c5 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceVersionException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/PipelineServiceVersionException.java
@@ -13,7 +13,7 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class PipelineServiceVersionException extends WebServiceException {
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchException.java
index 5aaa3217cc8..8a07a83cb91 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class SearchException extends WebServiceException {
private static final String BY_NAME_MESSAGE =
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchIndexNotFoundException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchIndexNotFoundException.java
index 3eb64ee1102..a58dddbe5fa 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchIndexNotFoundException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SearchIndexNotFoundException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class SearchIndexNotFoundException extends WebServiceException {
private static final String BY_NAME_MESSAGE =
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SuggestionException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SuggestionException.java
index 76d31abf227..f21686b044b 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SuggestionException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/SuggestionException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class SuggestionException extends WebServiceException {
private static final String BY_NAME_MESSAGE =
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/UserCreationException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/UserCreationException.java
index 96b24b3b74f..c13d765907f 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/UserCreationException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/UserCreationException.java
@@ -1,6 +1,6 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
public class UserCreationException extends WebServiceException {
private static final String BY_NAME_MESSAGE = "User Creation Exception [%s] due to [%s].";
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/WebServiceException.java b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/WebServiceException.java
index d3d1b2d14fb..77700deceed 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/WebServiceException.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/sdk/exception/WebServiceException.java
@@ -13,8 +13,8 @@
package org.openmetadata.sdk.exception;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
import lombok.Getter;
@Getter
diff --git a/openmetadata-spec/src/main/java/org/openmetadata/service/clients/pipeline/PipelineServiceClient.java b/openmetadata-spec/src/main/java/org/openmetadata/service/clients/pipeline/PipelineServiceClient.java
index b791b7076d6..d07fee02250 100644
--- a/openmetadata-spec/src/main/java/org/openmetadata/service/clients/pipeline/PipelineServiceClient.java
+++ b/openmetadata-spec/src/main/java/org/openmetadata/service/clients/pipeline/PipelineServiceClient.java
@@ -15,6 +15,8 @@ package org.openmetadata.service.clients.pipeline;
import io.github.resilience4j.retry.Retry;
import io.github.resilience4j.retry.RetryConfig;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
@@ -27,8 +29,6 @@ import java.util.Map;
import java.util.Properties;
import java.util.function.Supplier;
import java.util.regex.Pattern;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
diff --git a/openmetadata-ui/lombok.config b/openmetadata-ui/lombok.config
index 148e81aecdd..66c8c69fa9e 100644
--- a/openmetadata-ui/lombok.config
+++ b/openmetadata-ui/lombok.config
@@ -1,2 +1,3 @@
+config.stopBubbling = true
lombok.accessors.fluent = true
lombok.log.fieldName = LOG
\ No newline at end of file
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts
index 5b909e549b3..47aa3787ccb 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts
@@ -592,6 +592,10 @@ export interface SupersetConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts
index 6724cfc6c14..588f913df52 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts
@@ -590,6 +590,10 @@ export interface ConfigClass {
* SSL Configuration details.
*/
sslConfig?: Config;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* How to run the SQLite database. :memory: by default.
*/
@@ -1641,6 +1645,10 @@ export interface HiveMetastoreConnectionDetails {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts
index d997a178f89..cc4ab2cce65 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts
@@ -443,6 +443,10 @@ export interface AlationDatabaseConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts
index 79023921e5b..73e9e702de3 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts
@@ -510,6 +510,10 @@ export interface MetadataDatabaseConnection {
* metadata in Matillion.
*/
username?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* Custom OpenMetadata Classification name for Postgres policy tags.
*/
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts
index c86581648ce..a19ca4e1b4e 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts
@@ -2885,6 +2885,10 @@ export interface ConfigClass {
* Establish secure connection with Impala
*/
useSSL?: boolean;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* How to run the SQLite database. :memory: by default.
*/
@@ -4284,6 +4288,10 @@ export interface ConfigConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* HDB Store User Key generated from the command `hdbuserstore SET
* `
@@ -4784,6 +4792,10 @@ export interface HiveMetastoreConnectionDetails {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts
index 725d02c8ef3..df62d327cf0 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts
@@ -846,6 +846,10 @@ export interface ConfigClass {
* SSL Configuration for OpenMetadata Server
*/
sslConfig?: SSLConfigObject;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* How to run the SQLite database. :memory: by default.
*/
@@ -2698,6 +2702,10 @@ export interface ConfigConnection {
* as the database name.
*/
databaseName?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* Regex exclude pipelines.
*/
@@ -3193,6 +3201,10 @@ export interface HiveMetastoreConnectionDetails {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts
index 74c578e68ff..11182e8fcde 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts
@@ -709,6 +709,10 @@ export interface SupersetConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts
index 7e089122133..b4a17fa01e1 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts
@@ -709,6 +709,10 @@ export interface ConfigClass {
* SSL Configuration details.
*/
sslConfig?: Config;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* How to run the SQLite database. :memory: by default.
*/
@@ -1760,6 +1764,10 @@ export interface HiveMetastoreConnectionDetails {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts
index e5b68541892..8c98a31417a 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts
@@ -3400,6 +3400,10 @@ export interface ConfigClass {
* Establish secure connection with Impala
*/
useSSL?: boolean;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* How to run the SQLite database. :memory: by default.
*/
@@ -4750,6 +4754,10 @@ export interface ConfigConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* HDB Store User Key generated from the command `hdbuserstore SET
* `
@@ -5239,6 +5247,10 @@ export interface HiveMetastoreConnectionDetails {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts
index f29731e4369..a8b888cdf4e 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts
@@ -563,6 +563,10 @@ export interface AlationDatabaseConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts
index 7fda90ee185..ace4f7501b2 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts
@@ -620,6 +620,10 @@ export interface MetadataDatabaseConnection {
* metadata in Matillion.
*/
username?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* Custom OpenMetadata Classification name for Postgres policy tags.
*/
diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts
index 3d4cced5a79..be8e95e5913 100644
--- a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts
@@ -1126,6 +1126,10 @@ export interface ConfigClass {
* Establish secure connection with Impala
*/
useSSL?: boolean;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* How to run the SQLite database. :memory: by default.
*/
@@ -2765,6 +2769,10 @@ export interface ConfigConnection {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
/**
* HDB Store User Key generated from the command `hdbuserstore SET
* `
@@ -3265,6 +3273,10 @@ export interface HiveMetastoreConnectionDetails {
* attempts to scan all the schemas.
*/
databaseSchema?: string;
+ /**
+ * Use slow logs to extract lineage.
+ */
+ useSlowLogs?: boolean;
}
/**
diff --git a/pom.xml b/pom.xml
index 82c30fb2056..14ad9b971dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,13 +78,13 @@
2.0.4
2.17.2
- 2.1.11
- 2.1.6
+ 4.0.11
+ 4.0.11
1.0
- 2.40
+ 3.1.5
2.1.1
- 3.1.0
+ 6.0.0
3.6.0
3.3.0
3.1.2
@@ -103,9 +103,9 @@
2.11.0
9.3.0
42.7.4
- 1.2.1
+ 1.2.2
2.6
- 1.18.34
+ 1.18.36
11.0.5
7.17.25
2.6.0
@@ -115,7 +115,7 @@
6.1.14
2.21.0
5.9.3
- 1.7.3
+ 4.0.11
1.5.0
4.13.2
@@ -129,7 +129,7 @@
false
reuseReports
7.6.1
- 2.0.9
+ 3.0.0
1.5.2
4.4.0
0.22.1
@@ -142,18 +142,19 @@
1.8.0
3.0.1
6.0.11
- 1.5.1
+ 3.0.1
2.3
5.4.0
1.29.2
2.41.1
4.7.6
- 1.3.15
- 1.3.15
+ 1.4.14
+ 1.4.14
2.9.0
1.14.4
1.13
- 9.4.57.v20241219
+ 11.0.24
+ 5.0.0-M1
0.8.1
@@ -229,7 +230,7 @@
org.eclipse.jetty
jetty-server
- ${jetty-server.version}
+ ${jetty.version}
javax.servlet
@@ -312,6 +313,10 @@
dropwizard-jdbi3
${dropwizard-jdbi3.version}
+
+ org.jdbi
+ jdbi3-sqlobject
+
org.apache.tomcat
tomcat-jdbc
@@ -323,6 +328,11 @@
jdbi3-core
${jdbi3.version}
+
+ org.jdbi
+ jdbi3-sqlobject
+ ${jdbi3.version}
+
io.dropwizard.modules
dropwizard-web
@@ -420,48 +430,6 @@
spring-core
${spring.version}
-
- io.github.maksymdolgykh.dropwizard
- dropwizard-micrometer-core
- ${dropwizard-micrometer.version}
-
-
- ch.qos.logback
- logback-core
-
-
- ch.qos.logback
- logback-classic
-
-
- org.slf4j
- log4j-over-slf4j
-
-
-
-
- io.github.maksymdolgykh.dropwizard
- dropwizard-micrometer-jdbi
- ${dropwizard-micrometer.version}
-
-
- ch.qos.logback
- logback-core
-
-
- ch.qos.logback
- logback-classic
-
-
- ch.qos.logback
- logback-access
-
-
- org.slf4j
- log4j-over-slf4j
-
-
-
jakarta.xml.bind
@@ -469,6 +437,20 @@
4.0.2
+
+ io.dropwizard
+ dropwizard-metrics
+ ${dropwizard.version}
+
+
+
+
+ io.prometheus
+ prometheus-metrics-instrumentation-dropwizard
+ 1.3.6
+
+
+
org.glassfish.jaxb
@@ -526,11 +508,6 @@
tomcat-jdbc
${tomcat-jdbc.version}
-
- io.dropwizard.modules
- dropwizard-health
- ${dropwizard-health.version}
-
org.junit.jupiter
junit-jupiter-engine
@@ -596,19 +573,15 @@
everit-json-schema
${everit.version}
-
org.eclipse.jetty
jetty-io
-
- ${jetty-server.version}
+ ${jetty.version}
-
-
org.glassfish
jakarta.el
- 3.0.4
+ ${jakarta-el.version}
@@ -940,7 +913,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.10.1
+ 3.13.0
17
17