diff --git a/catalog-rest-service/pom.xml b/catalog-rest-service/pom.xml
index 06730187e57..fa84afe0d95 100644
--- a/catalog-rest-service/pom.xml
+++ b/catalog-rest-service/pom.xml
@@ -31,10 +31,6 @@
io.dropwizard
dropwizard-core
-
- io.dropwizard
- dropwizard-jdbi
-
io.dropwizard
dropwizard-jdbi3
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogApplication.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogApplication.java
index 57c752cd6bf..af51da73f32 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogApplication.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogApplication.java
@@ -18,31 +18,14 @@ package org.openmetadata.catalog;
import com.google.inject.Guice;
import com.google.inject.Injector;
+import io.dropwizard.Application;
+import io.dropwizard.assets.AssetsBundle;
import io.dropwizard.health.conf.HealthConfiguration;
import io.dropwizard.health.core.HealthCheckBundle;
import io.dropwizard.jdbi3.JdbiFactory;
-import io.dropwizard.jersey.jackson.JsonProcessingExceptionMapper;
-import org.jdbi.v3.core.Jdbi;
-import org.openmetadata.catalog.events.EventFilter;
-import org.openmetadata.catalog.exception.CatalogGenericExceptionMapper;
-import org.openmetadata.catalog.exception.ConstraintViolationExceptionMapper;
-import org.openmetadata.catalog.exception.JsonMappingExceptionMapper;
-import org.openmetadata.catalog.security.AuthenticationConfiguration;
-import org.openmetadata.catalog.security.NoopFilter;
-import org.openmetadata.catalog.security.AuthorizerConfiguration;
-import org.openmetadata.catalog.security.CatalogAuthorizer;
-import org.openmetadata.catalog.security.auth.CatalogSecurityContextRequestFilter;
-import org.openmetadata.catalog.security.NoopAuthorizer;
-import org.openmetadata.catalog.module.CatalogModule;
-import org.openmetadata.catalog.resources.CollectionRegistry;
-import org.openmetadata.catalog.resources.config.ConfigResource;
-import org.openmetadata.catalog.resources.search.SearchResource;
-import io.dropwizard.Application;
-import io.dropwizard.assets.AssetsBundle;
-import io.dropwizard.jdbi.DBIFactory;
-import io.dropwizard.jdbi.OptionalContainerFactory;
import io.dropwizard.jersey.errors.EarlyEofExceptionMapper;
import io.dropwizard.jersey.errors.LoggingExceptionMapper;
+import io.dropwizard.jersey.jackson.JsonProcessingExceptionMapper;
import io.dropwizard.lifecycle.Managed;
import io.dropwizard.server.DefaultServerFactory;
import io.dropwizard.setup.Bootstrap;
@@ -54,13 +37,28 @@ import org.apache.commons.lang3.StringUtils;
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.glassfish.jersey.server.ServerProperties;
-import org.skife.jdbi.v2.DBI;
+import org.jdbi.v3.core.Jdbi;
+import org.openmetadata.catalog.events.EventFilter;
+import org.openmetadata.catalog.exception.CatalogGenericExceptionMapper;
+import org.openmetadata.catalog.exception.ConstraintViolationExceptionMapper;
+import org.openmetadata.catalog.exception.JsonMappingExceptionMapper;
+import org.openmetadata.catalog.module.CatalogModule;
+import org.openmetadata.catalog.resources.CollectionRegistry;
+import org.openmetadata.catalog.resources.config.ConfigResource;
+import org.openmetadata.catalog.resources.search.SearchResource;
+import org.openmetadata.catalog.security.AuthenticationConfiguration;
+import org.openmetadata.catalog.security.AuthorizerConfiguration;
+import org.openmetadata.catalog.security.CatalogAuthorizer;
+import org.openmetadata.catalog.security.NoopAuthorizer;
+import org.openmetadata.catalog.security.NoopFilter;
+import org.openmetadata.catalog.security.auth.CatalogSecurityContextRequestFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.Response;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
/**
@@ -75,17 +73,15 @@ public class CatalogApplication extends Application {
@Override
public void run(CatalogApplicationConfig catalogConfig, Environment environment) throws ClassNotFoundException,
- IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
+ IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException,
+ IOException {
- final DBIFactory factory = new DBIFactory();
- final DBI jdbi = factory.build(environment, catalogConfig.getDataSourceFactory(), "mysql");
-
- final JdbiFactory factory3 = new JdbiFactory();
- final Jdbi jdbi3 = factory3.build(environment, catalogConfig.getDataSourceFactory(), "mysql3");
+ final JdbiFactory factory = new JdbiFactory();
+ final Jdbi jdbi = factory.build(environment, catalogConfig.getDataSourceFactory(), "mysql3");
// Register Authorizer
- registerAuthorizer(catalogConfig, environment, jdbi3);
+ registerAuthorizer(catalogConfig, environment, jdbi);
// Registering config api
environment.jersey().register(new ConfigResource(catalogConfig));
@@ -104,9 +100,8 @@ public class CatalogApplication extends Application {
environment.jersey().register(new JsonProcessingExceptionMapper(true));
environment.jersey().register(new EarlyEofExceptionMapper());
environment.jersey().register(JsonMappingExceptionMapper.class);
- environment.healthChecks().register("UserDatabaseCheck", new CatalogHealthCheck(catalogConfig, jdbi3));
+ environment.healthChecks().register("UserDatabaseCheck", new CatalogHealthCheck(catalogConfig, jdbi));
registerResources(catalogConfig, environment, jdbi);
- registerResources(catalogConfig, environment, jdbi3);
// Register Event Handler
registerEventFilter(catalogConfig, environment, jdbi);
@@ -160,38 +155,14 @@ public class CatalogApplication extends Application {
injector = Guice.createInjector(new CatalogModule(authorizer));
}
- private void registerEventFilter(CatalogApplicationConfig catalogConfig, Environment environment, DBI jdbi) {
+ private void registerEventFilter(CatalogApplicationConfig catalogConfig, Environment environment, Jdbi jdbi) {
if (catalogConfig.getEventHandlerConfiguration() != null) {
ContainerResponseFilter eventFilter = new EventFilter(catalogConfig, jdbi);
environment.jersey().register(eventFilter);
}
}
- private void registerResources(CatalogApplicationConfig config, Environment environment, DBI jdbi) {
-
- jdbi.registerContainerFactory(new OptionalContainerFactory());
-
- CollectionRegistry.getInstance().registerResources(jdbi, environment, authorizer);
-
- environment.lifecycle().manage(new Managed() {
- @Override
- public void start() {
- }
-
- @Override
- public void stop() {
- long startTime = System.currentTimeMillis();
- LOG.info("Took " + (System.currentTimeMillis() - startTime) + " ms to close all the services");
- }
- });
- environment.jersey().register(new SearchResource(config.getElasticSearchConfiguration()));
- environment.jersey().register(new JsonPatchProvider());
- ErrorPageErrorHandler eph = new ErrorPageErrorHandler();
- eph.addErrorPage(Response.Status.NOT_FOUND.getStatusCode(), "/");
- environment.getApplicationContext().setErrorHandler(eph);
- }
-
- private void registerResources(CatalogApplicationConfig config, Environment environment, Jdbi jdbi) {
+ private void registerResources(CatalogApplicationConfig config, Environment environment, Jdbi jdbi) throws IOException {
CollectionRegistry.getInstance().registerResources3(jdbi, environment, authorizer);
environment.lifecycle().manage(new Managed() {
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/AuditEventHandler.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/AuditEventHandler.java
index 3615c3eb9dc..ac9c7583c42 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/AuditEventHandler.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/AuditEventHandler.java
@@ -16,12 +16,12 @@
package org.openmetadata.catalog.events;
+import org.jdbi.v3.core.Jdbi;
import org.openmetadata.catalog.CatalogApplicationConfig;
import org.openmetadata.catalog.type.AuditLog;
import org.openmetadata.catalog.jdbi3.AuditLogRepository;
import org.openmetadata.catalog.type.EntityReference;
import org.openmetadata.catalog.util.EntityUtil;
-import org.skife.jdbi.v2.DBI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,7 +33,7 @@ public class AuditEventHandler implements EventHandler {
private static final Logger LOG = LoggerFactory.getLogger(AuditEventHandler.class);
private AuditLogRepository auditLogRepository;
- public void init(CatalogApplicationConfig config, DBI jdbi) {
+ public void init(CatalogApplicationConfig config, Jdbi jdbi) {
this.auditLogRepository = jdbi.onDemand(AuditLogRepository.class);
}
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java
index cbf6b323fbf..d352834fa05 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java
@@ -23,6 +23,7 @@ import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
+import org.jdbi.v3.core.Jdbi;
import org.openmetadata.catalog.CatalogApplicationConfig;
import org.openmetadata.catalog.ElasticSearchConfiguration;
import org.openmetadata.catalog.Entity;
@@ -32,7 +33,6 @@ import org.openmetadata.catalog.entity.data.Table;
import org.openmetadata.catalog.entity.data.Topic;
import org.openmetadata.catalog.type.Column;
import org.openmetadata.catalog.type.EntityReference;
-import org.skife.jdbi.v2.DBI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +60,7 @@ public class ElasticSearchEventHandler implements EventHandler {
}
};
- public void init(CatalogApplicationConfig config, DBI jdbi) {
+ public void init(CatalogApplicationConfig config, Jdbi jdbi) {
ElasticSearchConfiguration esConfig = config.getElasticSearchConfiguration();
this.client = new RestHighLevelClient(
RestClient.builder(new HttpHost(esConfig.getHost(), esConfig.getPort(), "http"))
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventFilter.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventFilter.java
index b62ceb0b0d9..12d1139f39c 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventFilter.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventFilter.java
@@ -16,9 +16,9 @@
package org.openmetadata.catalog.events;
+import org.jdbi.v3.core.Jdbi;
import org.openmetadata.catalog.CatalogApplicationConfig;
import org.openmetadata.catalog.util.ParallelStreamUtil;
-import org.skife.jdbi.v2.DBI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,13 +41,13 @@ public class EventFilter implements ContainerResponseFilter {
private final ForkJoinPool forkJoinPool;
private final List eventHandlers;
- public EventFilter(CatalogApplicationConfig config, DBI jdbi) {
+ public EventFilter(CatalogApplicationConfig config, Jdbi jdbi) {
this.forkJoinPool = new ForkJoinPool(FORK_JOIN_POOL_PARALLELISM);
this.eventHandlers = new ArrayList<>();
registerEventHandlers(config, jdbi);
}
- private void registerEventHandlers(CatalogApplicationConfig config, DBI jdbi) {
+ private void registerEventHandlers(CatalogApplicationConfig config, Jdbi jdbi) {
try {
Set eventHandlerClassNames = config.getEventHandlerConfiguration().getEventHandlerClassNames();
for (String eventHandlerClassName : eventHandlerClassNames) {
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventHandler.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventHandler.java
index a60f827af44..49351067260 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventHandler.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/EventHandler.java
@@ -16,14 +16,14 @@
package org.openmetadata.catalog.events;
+import org.jdbi.v3.core.Jdbi;
import org.openmetadata.catalog.CatalogApplicationConfig;
-import org.skife.jdbi.v2.DBI;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
public interface EventHandler {
- void init(CatalogApplicationConfig config, DBI jdbi);
+ void init(CatalogApplicationConfig config, Jdbi jdbi);
Void process(ContainerRequestContext requestContext, ContainerResponseContext responseContext);
void close();
}
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/exception/CatalogGenericExceptionMapper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/exception/CatalogGenericExceptionMapper.java
index 4b09d19fb6d..020062474de 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/exception/CatalogGenericExceptionMapper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/exception/CatalogGenericExceptionMapper.java
@@ -17,9 +17,9 @@
package org.openmetadata.catalog.exception;
import io.dropwizard.jersey.errors.ErrorMessage;
+import org.jdbi.v3.core.statement.UnableToExecuteStatementException;
import org.openmetadata.catalog.security.AuthenticationException;
import org.openmetadata.catalog.security.AuthorizationException;
-import org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,15 +63,6 @@ public class CatalogGenericExceptionMapper implements ExceptionMapper
.entity(new ErrorMessage(CONFLICT.getStatusCode(), CatalogExceptionMessage.ENTITY_ALREADY_EXISTS))
.build();
- }
- } else if (ex instanceof org.jdbi.v3.core.statement.UnableToExecuteStatementException) {
- // TODO remove this
- if (ex.getCause() instanceof SQLIntegrityConstraintViolationException) {
- return Response.status(CONFLICT)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .entity(new ErrorMessage(CONFLICT.getStatusCode(), CatalogExceptionMessage.ENTITY_ALREADY_EXISTS))
- .build();
-
}
} else if (ex instanceof EntityNotFoundException) {
return Response.status(NOT_FOUND)
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/AuditLogRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/AuditLogRepository.java
index 7029ad30876..f1692fe5af1 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/AuditLogRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/AuditLogRepository.java
@@ -16,15 +16,15 @@
package org.openmetadata.catalog.jdbi3;
+import org.jdbi.v3.sqlobject.CreateSqlObject;
+import org.jdbi.v3.sqlobject.customizer.Bind;
+import org.jdbi.v3.sqlobject.statement.SqlQuery;
+import org.jdbi.v3.sqlobject.statement.SqlUpdate;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.type.AuditLog;
import org.openmetadata.catalog.util.EntityUtil;
import org.openmetadata.catalog.util.JsonUtils;
-import org.skife.jdbi.v2.sqlobject.Bind;
-import org.skife.jdbi.v2.sqlobject.CreateSqlObject;
-import org.skife.jdbi.v2.sqlobject.SqlQuery;
-import org.skife.jdbi.v2.sqlobject.SqlUpdate;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java
index 0aedc0d2ec4..2d97daf4696 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java
@@ -17,13 +17,12 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Chart;
-import org.openmetadata.catalog.entity.data.Table;
import org.openmetadata.catalog.entity.services.DashboardService;
import org.openmetadata.catalog.exception.EntityNotFoundException;
import org.openmetadata.catalog.resources.charts.ChartResource;
-import org.openmetadata.catalog.resources.charts.ChartResource.ChartList;
import org.openmetadata.catalog.type.EntityReference;
import org.openmetadata.catalog.type.TagLabel;
import org.openmetadata.catalog.util.EntityInterface;
@@ -33,10 +32,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.openmetadata.common.utils.CipherText;
-import org.skife.jdbi.v2.sqlobject.Transaction;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.json.JsonPatch;
import javax.ws.rs.core.Response.Status;
@@ -44,7 +39,6 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.text.ParseException;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -53,7 +47,6 @@ import java.util.UUID;
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound;
public class ChartRepositoryHelper implements EntityRepository{
- private static final Logger LOG = LoggerFactory.getLogger(ChartRepositoryHelper.class);
private static final Fields CHART_UPDATE_FIELDS = new Fields(ChartResource.FIELD_LIST, "owner");
private static final Fields CHART_PATCH_FIELDS = new Fields(ChartResource.FIELD_LIST, "owner,service,tags");
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java
index 7667825b847..4de3685fac5 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Chart;
import org.openmetadata.catalog.entity.data.Dashboard;
@@ -33,7 +34,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import javax.json.JsonPatch;
import javax.ws.rs.core.Response;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java
index 352d829ad94..bdc357f4298 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.services.DashboardService;
import org.openmetadata.catalog.exception.EntityNotFoundException;
@@ -25,7 +26,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.catalog.util.Utils;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java
index c61ffa34382..5777a33cf1c 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Database;
import org.openmetadata.catalog.entity.data.Table;
@@ -24,7 +25,6 @@ import org.openmetadata.catalog.entity.services.DatabaseService;
import org.openmetadata.catalog.exception.EntityNotFoundException;
import org.openmetadata.catalog.resources.databases.DatabaseResource;
import org.openmetadata.catalog.resources.databases.DatabaseResource.DatabaseList;
-import org.openmetadata.catalog.resources.databases.TableResource.TableList;
import org.openmetadata.catalog.type.EntityReference;
import org.openmetadata.catalog.type.TagLabel;
import org.openmetadata.catalog.util.EntityInterface;
@@ -34,7 +34,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java
index e1268ce2932..e6f41f13c5e 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.services.DatabaseService;
import org.openmetadata.catalog.exception.EntityNotFoundException;
@@ -26,7 +27,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.catalog.util.Utils;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FeedRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FeedRepositoryHelper.java
index e2cf0f6ef80..1936b1997ee 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FeedRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FeedRepositoryHelper.java
@@ -16,6 +16,7 @@
package org.openmetadata.catalog.jdbi3;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.feed.Thread;
import org.openmetadata.catalog.resources.feeds.FeedUtil;
@@ -26,7 +27,6 @@ import org.openmetadata.catalog.type.EntityReference;
import org.openmetadata.catalog.type.Post;
import org.openmetadata.catalog.util.EntityUtil;
import org.openmetadata.catalog.util.JsonUtils;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FromEntityReferenceMapper3.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FromEntityReferenceMapper3.java
index 70fb2b10850..2a41c49070e 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FromEntityReferenceMapper3.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/FromEntityReferenceMapper3.java
@@ -18,8 +18,6 @@ package org.openmetadata.catalog.jdbi3;
import org.jdbi.v3.core.mapper.RowMapper;
import org.openmetadata.catalog.type.EntityReference;
-import org.skife.jdbi.v2.StatementContext;
-import org.skife.jdbi.v2.tweak.ResultSetMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java
index 5899dadb888..e6ac202420c 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.services.MessagingService;
import org.openmetadata.catalog.exception.EntityNotFoundException;
@@ -25,7 +26,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.catalog.util.Utils;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MetricsRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MetricsRepositoryHelper.java
index ecfd70d6e20..5e151cfa4a6 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MetricsRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MetricsRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Metrics;
import org.openmetadata.catalog.resources.metrics.MetricsResource;
@@ -29,7 +30,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import javax.ws.rs.core.Response.Status;
import java.io.IOException;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java
index 323d6724e39..c6d177b146a 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Model;
import org.openmetadata.catalog.exception.EntityNotFoundException;
@@ -32,7 +33,6 @@ import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.common.utils.CipherText;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java
index bd193f54ff0..4ee442d4470 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Pipeline;
import org.openmetadata.catalog.entity.data.Task;
@@ -33,7 +34,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.common.utils.CipherText;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import javax.json.JsonPatch;
import javax.ws.rs.core.Response.Status;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java
index 9d6d7221158..051b3b0d9f8 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.services.PipelineService;
import org.openmetadata.catalog.exception.EntityNotFoundException;
@@ -25,7 +26,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.catalog.util.Utils;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java
index 33c2d0b2a6d..367f63609fe 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java
@@ -16,6 +16,7 @@
package org.openmetadata.catalog.jdbi3;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Report;
import org.openmetadata.catalog.resources.reports.ReportResource;
@@ -25,7 +26,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagDAO.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagDAO.java
index 92f653349b0..b5eafb87dd4 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagDAO.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagDAO.java
@@ -1,11 +1,11 @@
package org.openmetadata.catalog.jdbi3;
-import org.openmetadata.catalog.jdbi3.TagRepository.TagLabelMapper;
+import org.jdbi.v3.sqlobject.config.RegisterRowMapper;
+import org.jdbi.v3.sqlobject.customizer.Bind;
+import org.jdbi.v3.sqlobject.statement.SqlQuery;
+import org.jdbi.v3.sqlobject.statement.SqlUpdate;
+import org.openmetadata.catalog.jdbi3.TagRepositoryHelper.TagLabelMapper;
import org.openmetadata.catalog.type.TagLabel;
-import org.skife.jdbi.v2.sqlobject.Bind;
-import org.skife.jdbi.v2.sqlobject.SqlQuery;
-import org.skife.jdbi.v2.sqlobject.SqlUpdate;
-import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
import java.util.List;
@@ -16,7 +16,7 @@ import java.util.List;
* Tags are stored as JSON in {@code tag} table. All the attributes of tags are stored as JSON document except
* href, usageCount and children tags which are constructed on the fly as needed.
*/
-@RegisterMapper(TagLabelMapper.class)
+@RegisterRowMapper(TagLabelMapper.class)
public interface TagDAO {
@SqlUpdate("INSERT INTO tag_category (json) VALUES (:json)")
void insertCategory(@Bind("json") String json);
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepository3.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepository3.java
new file mode 100644
index 00000000000..aba18b7ae68
--- /dev/null
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepository3.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openmetadata.catalog.jdbi3;
+
+import org.jdbi.v3.sqlobject.CreateSqlObject;
+
+public interface TagRepository3 {
+ @CreateSqlObject
+ TagDAO tagDAO();
+}
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepositoryHelper.java
similarity index 80%
rename from catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepository.java
rename to catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepositoryHelper.java
index d200a5beb8b..c6ba922de23 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepository.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TagRepositoryHelper.java
@@ -17,6 +17,8 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.core.mapper.RowMapper;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.resources.tags.TagResource;
import org.openmetadata.catalog.type.Tag;
import org.openmetadata.catalog.type.TagCategory;
@@ -24,10 +26,6 @@ import org.openmetadata.catalog.type.TagLabel;
import org.openmetadata.catalog.util.EntityUtil;
import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
-import org.skife.jdbi.v2.StatementContext;
-import org.skife.jdbi.v2.sqlobject.CreateSqlObject;
-import org.skife.jdbi.v2.sqlobject.Transaction;
-import org.skife.jdbi.v2.tweak.ResultSetMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,18 +37,19 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-public abstract class TagRepository {
- public static final Logger LOG = LoggerFactory.getLogger(TagRepository.class);
+public class TagRepositoryHelper {
+ public static final Logger LOG = LoggerFactory.getLogger(TagRepositoryHelper.class);
- @CreateSqlObject
- abstract TagDAO tagDAO();
+ public TagRepositoryHelper(TagRepository3 repo3) { this.repo3 = repo3; }
+
+ private final TagRepository3 repo3;
/**
* Initialize a category one time when the service comes up for the first time
*/
@Transaction
public void initCategory(TagCategory category) throws JsonProcessingException {
- String json = tagDAO().findCategory(category.getName());
+ String json = repo3.tagDAO().findCategory(category.getName());
if (json == null) {
TagResource.LOG.info("Tag category {} is not initialized", category.getName());
createCategoryInternal(category);
@@ -72,24 +71,24 @@ public abstract class TagRepository {
@Transaction
public Tag createPrimaryTag(String category, Tag tag) throws IOException {
// Validate category
- EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
+ EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
return createTagInternal(category, tag);
}
@Transaction
public Tag createSecondaryTag(String category, String primaryTag, Tag tag) throws IOException {
// Validate category
- EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
+ EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
String primaryTagFQN = category + "." + primaryTag;
- EntityUtil.validate(primaryTag, tagDAO().findTag(primaryTagFQN), Tag.class);
+ EntityUtil.validate(primaryTag, repo3.tagDAO().findTag(primaryTagFQN), Tag.class);
return createTagInternal(primaryTagFQN, tag);
}
@Transaction
public List listCategories(Fields fields) throws IOException {
- List jsons = tagDAO().listCategories();
+ List jsons = repo3.tagDAO().listCategories();
List list = new ArrayList<>();
for (String json : jsons) {
TagCategory category = JsonUtils.readValue(json, TagCategory.class);
@@ -100,7 +99,7 @@ public abstract class TagRepository {
@Transaction
public TagCategory getCategory(String categoryName, Fields fields) throws IOException {
- TagCategory category = EntityUtil.validate(categoryName, tagDAO().findCategory(categoryName), TagCategory.class);
+ TagCategory category = EntityUtil.validate(categoryName, repo3.tagDAO().findCategory(categoryName), TagCategory.class);
category = setFields(category, fields);
return populateCategoryTags(category, fields);
}
@@ -108,17 +107,17 @@ public abstract class TagRepository {
@Transaction
public Tag getTag(String category, String fqn, Fields fields) throws IOException {
// Validate category
- EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
+ EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
// Get tags that match .
- Tag tag = setFields(EntityUtil.validate(fqn, tagDAO().findTag(fqn), Tag.class), fields);
+ Tag tag = setFields(EntityUtil.validate(fqn, repo3.tagDAO().findTag(fqn), Tag.class), fields);
return populateChildrenTags(tag, fields);
}
@Transaction
public TagCategory updateCategory(String category, TagCategory updated) throws IOException {
// Validate category
- TagCategory original = EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
+ TagCategory original = EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
if (!original.getName().equals(updated.getName())) {
// Category name changed - update tag names starting from category and all the children tags
LOG.info("Tag category name changed from {} to {}", original.getName(), updated.getName());
@@ -127,7 +126,7 @@ public abstract class TagRepository {
}
original.setDescription(updated.getDescription());
original.setCategoryType(updated.getCategoryType());
- tagDAO().updateCategory(category, JsonUtils.pojoToJson(original));
+ repo3.tagDAO().updateCategory(category, JsonUtils.pojoToJson(original));
// Populate response fields
return populateCategoryTags(original, null);
@@ -136,7 +135,7 @@ public abstract class TagRepository {
@Transaction
public Tag updatePrimaryTag(String categoryName, String primaryTag, Tag updated) throws IOException {
// Validate categoryName
- EntityUtil.validate(categoryName, tagDAO().findCategory(categoryName), TagCategory.class);
+ EntityUtil.validate(categoryName, repo3.tagDAO().findCategory(categoryName), TagCategory.class);
return updateTag(categoryName, primaryTag, updated);
}
@@ -144,7 +143,7 @@ public abstract class TagRepository {
public Tag updateSecondaryTag(String categoryName, String primaryTag, String secondaryTag, Tag updated)
throws IOException {
// Validate categoryName
- EntityUtil.validate(categoryName, tagDAO().findCategory(categoryName), TagCategory.class);
+ EntityUtil.validate(categoryName, repo3.tagDAO().findCategory(categoryName), TagCategory.class);
String fqnPrefix = categoryName + "." + primaryTag;
return updateTag(fqnPrefix, secondaryTag, updated);
}
@@ -152,7 +151,7 @@ public abstract class TagRepository {
private Tag updateTag(String fqnPrefix, String tagName, Tag updated) throws IOException {
// Validate tag that needs to be updated exists
String originalFQN = fqnPrefix + "." + tagName;
- Tag original = EntityUtil.validate(originalFQN, tagDAO().findTag(originalFQN), Tag.class);
+ Tag original = EntityUtil.validate(originalFQN, repo3.tagDAO().findTag(originalFQN), Tag.class);
if (!original.getName().equals(updated.getName())) {
// Tag name changed
@@ -162,7 +161,7 @@ public abstract class TagRepository {
original.withName(updated.getName()).withFullyQualifiedName(updatedFQN);
}
original.withDescription(updated.getDescription()).withAssociatedTags(updated.getAssociatedTags());
- tagDAO().updateTag(originalFQN, JsonUtils.pojoToJson(original));
+ repo3.tagDAO().updateTag(originalFQN, JsonUtils.pojoToJson(original));
// Populate children
return populateChildrenTags(original, null);
@@ -179,7 +178,7 @@ public abstract class TagRepository {
*/
private void updateChildrenTagNames(String prefix, String newPrefix) throws IOException {
// Update the fully qualified names of all the primary and secondary tags
- List groupJsons = tagDAO().listChildrenTags(prefix);
+ List groupJsons = repo3.tagDAO().listChildrenTags(prefix);
for (String json : groupJsons) {
Tag tag = JsonUtils.readValue(json, Tag.class);
@@ -187,7 +186,7 @@ public abstract class TagRepository {
String newFQN = oldFQN.replace(prefix, newPrefix);
LOG.info("Replacing tag fqn from {} to {}", oldFQN, newFQN);
tag.setFullyQualifiedName(oldFQN.replace(prefix, newPrefix));
- tagDAO().updateTag(oldFQN, JsonUtils.pojoToJson(tag));
+ repo3.tagDAO().updateTag(oldFQN, JsonUtils.pojoToJson(tag));
updateChildrenTagNames(oldFQN, newFQN);
}
}
@@ -195,7 +194,7 @@ public abstract class TagRepository {
private TagCategory createCategoryInternal(TagCategory category) throws JsonProcessingException {
List primaryTags = category.getChildren();
category.setChildren(null); // Children are not stored as json and are constructed on the fly
- tagDAO().insertCategory(JsonUtils.pojoToJson(category));
+ repo3.tagDAO().insertCategory(JsonUtils.pojoToJson(category));
LOG.info("Create a new tag category {}", category.getName());
return category.withChildren(primaryTags);
}
@@ -205,7 +204,7 @@ public abstract class TagRepository {
List tags = tag.getChildren();
tag.setChildren(null); // Children of tag group are not stored as json but constructed on the fly
tag.setFullyQualifiedName(parentFQN + "." + tag.getName());
- tagDAO().insertTag(JsonUtils.pojoToJson(tag));
+ repo3.tagDAO().insertTag(JsonUtils.pojoToJson(tag));
tag.setChildren(tags);
TagResource.LOG.info("Added tag {}", tag.getFullyQualifiedName());
@@ -214,7 +213,7 @@ public abstract class TagRepository {
children.setChildren(null); // No children allowed for the leaf tag
children.setFullyQualifiedName(children.getFullyQualifiedName() + "." + children.getName());
TagResource.LOG.info("Added tag {}", children.getFullyQualifiedName());
- tagDAO().insertTag(JsonUtils.pojoToJson(children));
+ repo3.tagDAO().insertTag(JsonUtils.pojoToJson(children));
}
return tag;
}
@@ -222,7 +221,7 @@ public abstract class TagRepository {
// Populate TagCategory with children details
private TagCategory populateCategoryTags(TagCategory category, Fields fields) throws IOException {
// Get tags under that match category prefix
- List groupJsons = tagDAO().listChildrenTags(category.getName());
+ List groupJsons = repo3.tagDAO().listChildrenTags(category.getName());
List tagList = new ArrayList<>();
for (String json : groupJsons) {
@@ -234,7 +233,7 @@ public abstract class TagRepository {
// Populate the children tags for a given tag
private Tag populateChildrenTags(Tag tag, Fields fields) throws IOException {
- List tagJsons = tagDAO().listChildrenTags(tag.getFullyQualifiedName());
+ List tagJsons = repo3.tagDAO().listChildrenTags(tag.getFullyQualifiedName());
// Get tags under the given tag
List tagList = new ArrayList<>();
@@ -260,16 +259,16 @@ public abstract class TagRepository {
}
private Integer getUsageCount(TagCategory category) {
- return tagDAO().getTagCount(category.getName());
+ return repo3.tagDAO().getTagCount(category.getName());
}
private Integer getUsageCount(Tag tag) {
- return tagDAO().getTagCount(tag.getFullyQualifiedName());
+ return repo3.tagDAO().getTagCount(tag.getFullyQualifiedName());
}
- public static class TagLabelMapper implements ResultSetMapper {
+ public static class TagLabelMapper implements RowMapper {
@Override
- public TagLabel map(int i, ResultSet r, StatementContext statementContext) throws SQLException {
+ public TagLabel map(ResultSet r, org.jdbi.v3.core.statement.StatementContext ctx) throws SQLException {
return new TagLabel().withLabelType(TagLabel.LabelType.values()[r.getInt("labelType")])
.withState(TagLabel.State.values()[r.getInt("state")])
.withTagFQN(r.getString("tagFQN"));
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskDAO3.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskDAO3.java
index 6dad63afed6..d7bf216e64f 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskDAO3.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskDAO3.java
@@ -1,12 +1,6 @@
package org.openmetadata.catalog.jdbi3;
-import org.openmetadata.catalog.entity.data.Table;
import org.openmetadata.catalog.entity.data.Task;
-import org.skife.jdbi.v2.sqlobject.Bind;
-import org.skife.jdbi.v2.sqlobject.SqlQuery;
-import org.skife.jdbi.v2.sqlobject.SqlUpdate;
-
-import java.util.List;
public interface TaskDAO3 extends EntityDAO{
@Override
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java
index 33f12bc20b3..eb8c700aae4 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Task;
import org.openmetadata.catalog.entity.services.PipelineService;
@@ -33,9 +34,6 @@ import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.common.utils.CipherText;
-import org.skife.jdbi.v2.sqlobject.Transaction;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.json.JsonPatch;
import javax.ws.rs.core.Response.Status;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java
index fedfbcf5591..bd63b78d152 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.entity.teams.Team;
import org.openmetadata.catalog.entity.teams.User;
import org.openmetadata.catalog.exception.CatalogExceptionMessage;
@@ -32,9 +33,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.ResultList;
import org.openmetadata.common.utils.CipherText;
-import org.skife.jdbi.v2.sqlobject.Transaction;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.json.JsonPatch;
import java.io.IOException;
@@ -50,7 +48,6 @@ import java.util.UUID;
import static org.openmetadata.catalog.jdbi3.Relationship.OWNS;
public class TeamRepositoryHelper implements EntityRepository {
- private static final Logger LOG = LoggerFactory.getLogger(TeamResource.class);
static final Fields TEAM_PATCH_FIELDS = new Fields(TeamResource.FIELD_LIST, "profile,users");
public TeamRepositoryHelper(TeamRepository3 repo3) { this.repo3 = repo3; }
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ToEntityReferenceMapper3.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ToEntityReferenceMapper3.java
index 62b025aa215..9177b1e52b2 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ToEntityReferenceMapper3.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ToEntityReferenceMapper3.java
@@ -18,7 +18,6 @@ package org.openmetadata.catalog.jdbi3;
import org.jdbi.v3.core.mapper.RowMapper;
import org.openmetadata.catalog.type.EntityReference;
-import org.skife.jdbi.v2.StatementContext;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java
index 70f78792871..e453f6c9ccd 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.Topic;
import org.openmetadata.catalog.entity.services.MessagingService;
@@ -32,7 +33,6 @@ import org.openmetadata.catalog.util.EntityUtil.Fields;
import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepositoryHelper.java
index 9eac6e6db1b..1a3e5c9a726 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepositoryHelper.java
@@ -16,6 +16,9 @@
package org.openmetadata.catalog.jdbi3;
+import org.jdbi.v3.core.mapper.RowMapper;
+import org.jdbi.v3.core.statement.StatementContext;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.type.DailyCount;
import org.openmetadata.catalog.type.EntityReference;
@@ -23,9 +26,6 @@ import org.openmetadata.catalog.type.EntityUsage;
import org.openmetadata.catalog.type.UsageDetails;
import org.openmetadata.catalog.type.UsageStats;
import org.openmetadata.catalog.util.EntityUtil;
-import org.skife.jdbi.v2.StatementContext;
-import org.skife.jdbi.v2.sqlobject.Transaction;
-import org.skife.jdbi.v2.tweak.ResultSetMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -96,9 +96,9 @@ public class UsageRepositoryHelper {
}
}
- public static class UsageDetailsMapper implements ResultSetMapper {
+ public static class UsageDetailsMapper implements RowMapper {
@Override
- public UsageDetails map(int i, ResultSet r, StatementContext statementContext) throws SQLException {
+ public UsageDetails map(ResultSet r, StatementContext ctx) throws SQLException {
UsageStats dailyStats = new UsageStats().withCount(r.getInt("count1")).withPercentileRank(r.getDouble(
"percentile1"));
UsageStats weeklyStats = new UsageStats().withCount(r.getInt("count7")).withPercentileRank(r.getDouble(
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserDAO3.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserDAO3.java
index 1b0f2a596e6..1fc8a8e2c3f 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserDAO3.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserDAO3.java
@@ -34,13 +34,13 @@ public interface UserDAO3 extends EntityDAO {
"ORDER BY name DESC " + // Pagination ordering by user name
"LIMIT :limit" +
") last_rows_subquery ORDER BY name")
- List listBefore(@org.skife.jdbi.v2.sqlobject.Bind("limit") int limit, @org.skife.jdbi.v2.sqlobject.Bind("before") String before);
+ List listBefore(@Bind("limit") int limit, @Bind("before") String before);
@SqlQuery("SELECT json FROM user_entity WHERE " +
"name > :after " + // Pagination by user name
"ORDER BY name " + // Pagination ordering by user name
"LIMIT :limit")
- List listAfter(@org.skife.jdbi.v2.sqlobject.Bind("limit") int limit, @org.skife.jdbi.v2.sqlobject.Bind("after") String after);
+ List listAfter(@Bind("limit") int limit, @Bind("after") String after);
@SqlQuery("SELECT count(*) FROM user_entity")
int listCount();
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java
index 8332f9fa248..9f1a736aa63 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java
@@ -17,6 +17,7 @@
package org.openmetadata.catalog.jdbi3;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.catalog.entity.teams.Team;
import org.openmetadata.catalog.entity.teams.User;
import org.openmetadata.catalog.exception.CatalogExceptionMessage;
@@ -32,7 +33,6 @@ import org.openmetadata.catalog.util.JsonUtils;
import org.openmetadata.catalog.util.RestUtil;
import org.openmetadata.catalog.util.RestUtil.PutResponse;
import org.openmetadata.catalog.util.ResultList;
-import org.skife.jdbi.v2.sqlobject.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/CollectionRegistry.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/CollectionRegistry.java
index 5e982b12fac..665518626e4 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/CollectionRegistry.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/CollectionRegistry.java
@@ -49,6 +49,8 @@ import org.openmetadata.catalog.jdbi3.ReportRepository3;
import org.openmetadata.catalog.jdbi3.ReportRepositoryHelper;
import org.openmetadata.catalog.jdbi3.TableRepository3;
import org.openmetadata.catalog.jdbi3.TableRepositoryHelper;
+import org.openmetadata.catalog.jdbi3.TagRepository3;
+import org.openmetadata.catalog.jdbi3.TagRepositoryHelper;
import org.openmetadata.catalog.jdbi3.TaskRepository3;
import org.openmetadata.catalog.jdbi3.TaskRepositoryHelper;
import org.openmetadata.catalog.jdbi3.TeamRepository3;
@@ -74,6 +76,7 @@ import org.openmetadata.catalog.resources.services.dashboard.DashboardServiceRes
import org.openmetadata.catalog.resources.services.database.DatabaseServiceResource;
import org.openmetadata.catalog.resources.services.messaging.MessagingServiceResource;
import org.openmetadata.catalog.resources.services.pipeline.PipelineServiceResource;
+import org.openmetadata.catalog.resources.tags.TagResource;
import org.openmetadata.catalog.resources.tasks.TaskResource;
import org.openmetadata.catalog.resources.teams.TeamResource;
import org.openmetadata.catalog.resources.teams.UserResource;
@@ -84,13 +87,13 @@ import org.openmetadata.catalog.type.CollectionInfo;
import org.openmetadata.catalog.util.RestUtil;
import org.openmetadata.catalog.security.CatalogAuthorizer;
import org.reflections.Reflections;
-import org.skife.jdbi.v2.DBI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.Path;
import javax.ws.rs.core.UriInfo;
import java.io.File;
+import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -203,7 +206,7 @@ public final class CollectionRegistry {
/**
* Register resources from CollectionRegistry
*/
- public void registerResources(DBI jdbi, Environment environment, CatalogAuthorizer authorizer) {
+ public void registerResources(Jdbi jdbi, Environment environment, CatalogAuthorizer authorizer) {
// Build list of ResourceDescriptors
for (Map.Entry e : collectionMap.entrySet()) {
CollectionDetails details = e.getValue();
@@ -222,7 +225,7 @@ public final class CollectionRegistry {
/**
* Register resources from CollectionRegistry
*/
- public void registerResources3(Jdbi jdbi, Environment environment, CatalogAuthorizer authorizer) {
+ public void registerResources3(Jdbi jdbi, Environment environment, CatalogAuthorizer authorizer) throws IOException {
LOG.info("Initializing jdbi3");
final TableRepository3 daoObject = jdbi.onDemand(TableRepository3.class);
@@ -359,6 +362,14 @@ public final class CollectionRegistry {
environment.jersey().register(usageResource);
LOG.info("Registering {}", usageResource);
+ final TagRepository3 tagRepository3 = jdbi.onDemand(TagRepository3.class);
+ TagRepositoryHelper tagRepositoryHelper = new TagRepositoryHelper(tagRepository3);
+ TagResource tagResource = new TagResource(tagRepositoryHelper,
+ authorizer);
+ tagResource.initialize();
+ environment.jersey().register(tagResource);
+ LOG.info("Registering {}", tagResource);
+
LOG.info("Initialized jdbi3");
}
@@ -403,7 +414,7 @@ public final class CollectionRegistry {
}
/** Create a resource class based on dependencies declared in @Collection annotation */
- private static Object createResource(DBI jdbi, String resourceClass, String repositoryClass,
+ private static Object createResource(Jdbi jdbi, String resourceClass, String repositoryClass,
CatalogAuthorizer authorizer) throws
ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException,
InstantiationException {
diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java
index 76edc7e7808..49d4756791e 100644
--- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java
+++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java
@@ -25,7 +25,7 @@ import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import org.apache.maven.shared.utils.io.IOUtil;
-import org.openmetadata.catalog.jdbi3.TagRepository;
+import org.openmetadata.catalog.jdbi3.TagRepositoryHelper;
import org.openmetadata.catalog.resources.Collection;
import org.openmetadata.catalog.security.CatalogAuthorizer;
import org.openmetadata.catalog.security.SecurityUtil;
@@ -67,11 +67,11 @@ import java.util.regex.Pattern;
@Path("/v1/tags")
@Api(value = "Tags resources collection", tags = "Tags resources collection")
@Produces(MediaType.APPLICATION_JSON)
-@Collection(name = "tags", repositoryClass = "org.openmetadata.catalog.jdbi3.TagRepository")
+//@Collection(name = "tags", repositoryClass = "org.openmetadata.catalog.jdbi3.TagRepositoryHelper")
public class TagResource {
public static final Logger LOG = LoggerFactory.getLogger(TagResource.class);
public static final String TAG_COLLECTION_PATH = "/v1/tags/";
- private final TagRepository dao;
+ private final TagRepositoryHelper dao;
private final CatalogAuthorizer authorizer;
static class CategoryList extends ResultList {
@@ -85,8 +85,8 @@ public class TagResource {
}
@Inject
- public TagResource(TagRepository dao, CatalogAuthorizer authorizer) {
- Objects.requireNonNull(dao, "TagRepository must not be null");
+ public TagResource(TagRepositoryHelper dao, CatalogAuthorizer authorizer) {
+ Objects.requireNonNull(dao, "TagRepositoryHelper must not be null");
this.dao = dao;
this.authorizer = authorizer;
}
diff --git a/common/pom.xml b/common/pom.xml
index c6715797791..a6d27885141 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -117,9 +117,5 @@
com.fasterxml.jackson.datatype
jackson-datatype-jsr353
-
- org.jdbi
- jdbi
-
diff --git a/pom.xml b/pom.xml
index e674fcd4d1d..f5aacd9d27d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,6 @@
1.7.31
2.12.3
2.0.23
- 2.0.0-rc9
2.0.25
2.33
2.33
@@ -61,7 +60,6 @@
2.3.2
2.15.0
0.8.6
- 2.78
3.23.0
1.4
2.10.0
@@ -144,11 +142,6 @@
dropwizard-jdbi3
${dropwizard-jdbi3.version}
-
- org.jdbi
- jdbi
- ${jdbi.version}
-
org.jdbi
jdbi3-core