mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-16 18:15:17 +00:00
Remove jdbi2 dependency
This commit is contained in:
parent
869bb2599b
commit
1f8b7a99c6
@ -31,10 +31,6 @@
|
|||||||
<groupId>io.dropwizard</groupId>
|
<groupId>io.dropwizard</groupId>
|
||||||
<artifactId>dropwizard-core</artifactId>
|
<artifactId>dropwizard-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>io.dropwizard</groupId>
|
|
||||||
<artifactId>dropwizard-jdbi</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.dropwizard</groupId>
|
<groupId>io.dropwizard</groupId>
|
||||||
<artifactId>dropwizard-jdbi3</artifactId>
|
<artifactId>dropwizard-jdbi3</artifactId>
|
||||||
|
|||||||
@ -18,31 +18,14 @@ package org.openmetadata.catalog;
|
|||||||
|
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
|
import io.dropwizard.Application;
|
||||||
|
import io.dropwizard.assets.AssetsBundle;
|
||||||
import io.dropwizard.health.conf.HealthConfiguration;
|
import io.dropwizard.health.conf.HealthConfiguration;
|
||||||
import io.dropwizard.health.core.HealthCheckBundle;
|
import io.dropwizard.health.core.HealthCheckBundle;
|
||||||
import io.dropwizard.jdbi3.JdbiFactory;
|
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.EarlyEofExceptionMapper;
|
||||||
import io.dropwizard.jersey.errors.LoggingExceptionMapper;
|
import io.dropwizard.jersey.errors.LoggingExceptionMapper;
|
||||||
|
import io.dropwizard.jersey.jackson.JsonProcessingExceptionMapper;
|
||||||
import io.dropwizard.lifecycle.Managed;
|
import io.dropwizard.lifecycle.Managed;
|
||||||
import io.dropwizard.server.DefaultServerFactory;
|
import io.dropwizard.server.DefaultServerFactory;
|
||||||
import io.dropwizard.setup.Bootstrap;
|
import io.dropwizard.setup.Bootstrap;
|
||||||
@ -54,13 +37,28 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
||||||
import org.glassfish.jersey.media.multipart.MultiPartFeature;
|
import org.glassfish.jersey.media.multipart.MultiPartFeature;
|
||||||
import org.glassfish.jersey.server.ServerProperties;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.ws.rs.container.ContainerRequestFilter;
|
import javax.ws.rs.container.ContainerRequestFilter;
|
||||||
import javax.ws.rs.container.ContainerResponseFilter;
|
import javax.ws.rs.container.ContainerResponseFilter;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
|
import java.io.IOException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -75,17 +73,15 @@ public class CatalogApplication extends Application<CatalogApplicationConfig> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(CatalogApplicationConfig catalogConfig, Environment environment) throws ClassNotFoundException,
|
public void run(CatalogApplicationConfig catalogConfig, Environment environment) throws ClassNotFoundException,
|
||||||
IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
|
IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException,
|
||||||
|
IOException {
|
||||||
|
|
||||||
final DBIFactory factory = new DBIFactory();
|
final JdbiFactory factory = new JdbiFactory();
|
||||||
final DBI jdbi = factory.build(environment, catalogConfig.getDataSourceFactory(), "mysql");
|
final Jdbi jdbi = factory.build(environment, catalogConfig.getDataSourceFactory(), "mysql3");
|
||||||
|
|
||||||
final JdbiFactory factory3 = new JdbiFactory();
|
|
||||||
final Jdbi jdbi3 = factory3.build(environment, catalogConfig.getDataSourceFactory(), "mysql3");
|
|
||||||
|
|
||||||
|
|
||||||
// Register Authorizer
|
// Register Authorizer
|
||||||
registerAuthorizer(catalogConfig, environment, jdbi3);
|
registerAuthorizer(catalogConfig, environment, jdbi);
|
||||||
|
|
||||||
// Registering config api
|
// Registering config api
|
||||||
environment.jersey().register(new ConfigResource(catalogConfig));
|
environment.jersey().register(new ConfigResource(catalogConfig));
|
||||||
@ -104,9 +100,8 @@ public class CatalogApplication extends Application<CatalogApplicationConfig> {
|
|||||||
environment.jersey().register(new JsonProcessingExceptionMapper(true));
|
environment.jersey().register(new JsonProcessingExceptionMapper(true));
|
||||||
environment.jersey().register(new EarlyEofExceptionMapper());
|
environment.jersey().register(new EarlyEofExceptionMapper());
|
||||||
environment.jersey().register(JsonMappingExceptionMapper.class);
|
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, jdbi);
|
||||||
registerResources(catalogConfig, environment, jdbi3);
|
|
||||||
|
|
||||||
// Register Event Handler
|
// Register Event Handler
|
||||||
registerEventFilter(catalogConfig, environment, jdbi);
|
registerEventFilter(catalogConfig, environment, jdbi);
|
||||||
@ -160,38 +155,14 @@ public class CatalogApplication extends Application<CatalogApplicationConfig> {
|
|||||||
injector = Guice.createInjector(new CatalogModule(authorizer));
|
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) {
|
if (catalogConfig.getEventHandlerConfiguration() != null) {
|
||||||
ContainerResponseFilter eventFilter = new EventFilter(catalogConfig, jdbi);
|
ContainerResponseFilter eventFilter = new EventFilter(catalogConfig, jdbi);
|
||||||
environment.jersey().register(eventFilter);
|
environment.jersey().register(eventFilter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerResources(CatalogApplicationConfig config, Environment environment, DBI jdbi) {
|
private void registerResources(CatalogApplicationConfig config, Environment environment, Jdbi jdbi) throws IOException {
|
||||||
|
|
||||||
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) {
|
|
||||||
CollectionRegistry.getInstance().registerResources3(jdbi, environment, authorizer);
|
CollectionRegistry.getInstance().registerResources3(jdbi, environment, authorizer);
|
||||||
|
|
||||||
environment.lifecycle().manage(new Managed() {
|
environment.lifecycle().manage(new Managed() {
|
||||||
|
|||||||
@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.events;
|
package org.openmetadata.catalog.events;
|
||||||
|
|
||||||
|
import org.jdbi.v3.core.Jdbi;
|
||||||
import org.openmetadata.catalog.CatalogApplicationConfig;
|
import org.openmetadata.catalog.CatalogApplicationConfig;
|
||||||
import org.openmetadata.catalog.type.AuditLog;
|
import org.openmetadata.catalog.type.AuditLog;
|
||||||
import org.openmetadata.catalog.jdbi3.AuditLogRepository;
|
import org.openmetadata.catalog.jdbi3.AuditLogRepository;
|
||||||
import org.openmetadata.catalog.type.EntityReference;
|
import org.openmetadata.catalog.type.EntityReference;
|
||||||
import org.openmetadata.catalog.util.EntityUtil;
|
import org.openmetadata.catalog.util.EntityUtil;
|
||||||
import org.skife.jdbi.v2.DBI;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ public class AuditEventHandler implements EventHandler {
|
|||||||
private static final Logger LOG = LoggerFactory.getLogger(AuditEventHandler.class);
|
private static final Logger LOG = LoggerFactory.getLogger(AuditEventHandler.class);
|
||||||
private AuditLogRepository auditLogRepository;
|
private AuditLogRepository auditLogRepository;
|
||||||
|
|
||||||
public void init(CatalogApplicationConfig config, DBI jdbi) {
|
public void init(CatalogApplicationConfig config, Jdbi jdbi) {
|
||||||
this.auditLogRepository = jdbi.onDemand(AuditLogRepository.class);
|
this.auditLogRepository = jdbi.onDemand(AuditLogRepository.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import org.elasticsearch.action.update.UpdateResponse;
|
|||||||
import org.elasticsearch.client.RequestOptions;
|
import org.elasticsearch.client.RequestOptions;
|
||||||
import org.elasticsearch.client.RestClient;
|
import org.elasticsearch.client.RestClient;
|
||||||
import org.elasticsearch.client.RestHighLevelClient;
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
|
import org.jdbi.v3.core.Jdbi;
|
||||||
import org.openmetadata.catalog.CatalogApplicationConfig;
|
import org.openmetadata.catalog.CatalogApplicationConfig;
|
||||||
import org.openmetadata.catalog.ElasticSearchConfiguration;
|
import org.openmetadata.catalog.ElasticSearchConfiguration;
|
||||||
import org.openmetadata.catalog.Entity;
|
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.entity.data.Topic;
|
||||||
import org.openmetadata.catalog.type.Column;
|
import org.openmetadata.catalog.type.Column;
|
||||||
import org.openmetadata.catalog.type.EntityReference;
|
import org.openmetadata.catalog.type.EntityReference;
|
||||||
import org.skife.jdbi.v2.DBI;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
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();
|
ElasticSearchConfiguration esConfig = config.getElasticSearchConfiguration();
|
||||||
this.client = new RestHighLevelClient(
|
this.client = new RestHighLevelClient(
|
||||||
RestClient.builder(new HttpHost(esConfig.getHost(), esConfig.getPort(), "http"))
|
RestClient.builder(new HttpHost(esConfig.getHost(), esConfig.getPort(), "http"))
|
||||||
|
|||||||
@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.events;
|
package org.openmetadata.catalog.events;
|
||||||
|
|
||||||
|
import org.jdbi.v3.core.Jdbi;
|
||||||
import org.openmetadata.catalog.CatalogApplicationConfig;
|
import org.openmetadata.catalog.CatalogApplicationConfig;
|
||||||
import org.openmetadata.catalog.util.ParallelStreamUtil;
|
import org.openmetadata.catalog.util.ParallelStreamUtil;
|
||||||
import org.skife.jdbi.v2.DBI;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -41,13 +41,13 @@ public class EventFilter implements ContainerResponseFilter {
|
|||||||
private final ForkJoinPool forkJoinPool;
|
private final ForkJoinPool forkJoinPool;
|
||||||
private final List<EventHandler> eventHandlers;
|
private final List<EventHandler> eventHandlers;
|
||||||
|
|
||||||
public EventFilter(CatalogApplicationConfig config, DBI jdbi) {
|
public EventFilter(CatalogApplicationConfig config, Jdbi jdbi) {
|
||||||
this.forkJoinPool = new ForkJoinPool(FORK_JOIN_POOL_PARALLELISM);
|
this.forkJoinPool = new ForkJoinPool(FORK_JOIN_POOL_PARALLELISM);
|
||||||
this.eventHandlers = new ArrayList<>();
|
this.eventHandlers = new ArrayList<>();
|
||||||
registerEventHandlers(config, jdbi);
|
registerEventHandlers(config, jdbi);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerEventHandlers(CatalogApplicationConfig config, DBI jdbi) {
|
private void registerEventHandlers(CatalogApplicationConfig config, Jdbi jdbi) {
|
||||||
try {
|
try {
|
||||||
Set<String> eventHandlerClassNames = config.getEventHandlerConfiguration().getEventHandlerClassNames();
|
Set<String> eventHandlerClassNames = config.getEventHandlerConfiguration().getEventHandlerClassNames();
|
||||||
for (String eventHandlerClassName : eventHandlerClassNames) {
|
for (String eventHandlerClassName : eventHandlerClassNames) {
|
||||||
|
|||||||
@ -16,14 +16,14 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.events;
|
package org.openmetadata.catalog.events;
|
||||||
|
|
||||||
|
import org.jdbi.v3.core.Jdbi;
|
||||||
import org.openmetadata.catalog.CatalogApplicationConfig;
|
import org.openmetadata.catalog.CatalogApplicationConfig;
|
||||||
import org.skife.jdbi.v2.DBI;
|
|
||||||
|
|
||||||
import javax.ws.rs.container.ContainerRequestContext;
|
import javax.ws.rs.container.ContainerRequestContext;
|
||||||
import javax.ws.rs.container.ContainerResponseContext;
|
import javax.ws.rs.container.ContainerResponseContext;
|
||||||
|
|
||||||
public interface EventHandler {
|
public interface EventHandler {
|
||||||
void init(CatalogApplicationConfig config, DBI jdbi);
|
void init(CatalogApplicationConfig config, Jdbi jdbi);
|
||||||
Void process(ContainerRequestContext requestContext, ContainerResponseContext responseContext);
|
Void process(ContainerRequestContext requestContext, ContainerResponseContext responseContext);
|
||||||
void close();
|
void close();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,9 +17,9 @@
|
|||||||
package org.openmetadata.catalog.exception;
|
package org.openmetadata.catalog.exception;
|
||||||
|
|
||||||
import io.dropwizard.jersey.errors.ErrorMessage;
|
import io.dropwizard.jersey.errors.ErrorMessage;
|
||||||
|
import org.jdbi.v3.core.statement.UnableToExecuteStatementException;
|
||||||
import org.openmetadata.catalog.security.AuthenticationException;
|
import org.openmetadata.catalog.security.AuthenticationException;
|
||||||
import org.openmetadata.catalog.security.AuthorizationException;
|
import org.openmetadata.catalog.security.AuthorizationException;
|
||||||
import org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -63,15 +63,6 @@ public class CatalogGenericExceptionMapper implements ExceptionMapper<Throwable>
|
|||||||
.entity(new ErrorMessage(CONFLICT.getStatusCode(), CatalogExceptionMessage.ENTITY_ALREADY_EXISTS))
|
.entity(new ErrorMessage(CONFLICT.getStatusCode(), CatalogExceptionMessage.ENTITY_ALREADY_EXISTS))
|
||||||
.build();
|
.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) {
|
} else if (ex instanceof EntityNotFoundException) {
|
||||||
return Response.status(NOT_FOUND)
|
return Response.status(NOT_FOUND)
|
||||||
|
|||||||
@ -16,15 +16,15 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.jdbi3;
|
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.type.AuditLog;
|
||||||
import org.openmetadata.catalog.util.EntityUtil;
|
import org.openmetadata.catalog.util.EntityUtil;
|
||||||
|
|
||||||
import org.openmetadata.catalog.util.JsonUtils;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|||||||
@ -17,13 +17,12 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Chart;
|
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.entity.services.DashboardService;
|
||||||
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
||||||
import org.openmetadata.catalog.resources.charts.ChartResource;
|
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.EntityReference;
|
||||||
import org.openmetadata.catalog.type.TagLabel;
|
import org.openmetadata.catalog.type.TagLabel;
|
||||||
import org.openmetadata.catalog.util.EntityInterface;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
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.json.JsonPatch;
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
@ -44,7 +39,6 @@ import java.io.IOException;
|
|||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.security.GeneralSecurityException;
|
import java.security.GeneralSecurityException;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -53,7 +47,6 @@ import java.util.UUID;
|
|||||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound;
|
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound;
|
||||||
|
|
||||||
public class ChartRepositoryHelper implements EntityRepository<Chart>{
|
public class ChartRepositoryHelper implements EntityRepository<Chart>{
|
||||||
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_UPDATE_FIELDS = new Fields(ChartResource.FIELD_LIST, "owner");
|
||||||
private static final Fields CHART_PATCH_FIELDS = new Fields(ChartResource.FIELD_LIST, "owner,service,tags");
|
private static final Fields CHART_PATCH_FIELDS = new Fields(ChartResource.FIELD_LIST, "owner,service,tags");
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Chart;
|
import org.openmetadata.catalog.entity.data.Chart;
|
||||||
import org.openmetadata.catalog.entity.data.Dashboard;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import javax.json.JsonPatch;
|
import javax.json.JsonPatch;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.services.DashboardService;
|
import org.openmetadata.catalog.entity.services.DashboardService;
|
||||||
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.catalog.util.Utils;
|
import org.openmetadata.catalog.util.Utils;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Database;
|
import org.openmetadata.catalog.entity.data.Database;
|
||||||
import org.openmetadata.catalog.entity.data.Table;
|
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.exception.EntityNotFoundException;
|
||||||
import org.openmetadata.catalog.resources.databases.DatabaseResource;
|
import org.openmetadata.catalog.resources.databases.DatabaseResource;
|
||||||
import org.openmetadata.catalog.resources.databases.DatabaseResource.DatabaseList;
|
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.EntityReference;
|
||||||
import org.openmetadata.catalog.type.TagLabel;
|
import org.openmetadata.catalog.type.TagLabel;
|
||||||
import org.openmetadata.catalog.util.EntityInterface;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.services.DatabaseService;
|
import org.openmetadata.catalog.entity.services.DatabaseService;
|
||||||
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.catalog.util.Utils;
|
import org.openmetadata.catalog.util.Utils;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.feed.Thread;
|
import org.openmetadata.catalog.entity.feed.Thread;
|
||||||
import org.openmetadata.catalog.resources.feeds.FeedUtil;
|
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.type.Post;
|
||||||
import org.openmetadata.catalog.util.EntityUtil;
|
import org.openmetadata.catalog.util.EntityUtil;
|
||||||
import org.openmetadata.catalog.util.JsonUtils;
|
import org.openmetadata.catalog.util.JsonUtils;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|||||||
@ -18,8 +18,6 @@ package org.openmetadata.catalog.jdbi3;
|
|||||||
|
|
||||||
import org.jdbi.v3.core.mapper.RowMapper;
|
import org.jdbi.v3.core.mapper.RowMapper;
|
||||||
import org.openmetadata.catalog.type.EntityReference;
|
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.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.services.MessagingService;
|
import org.openmetadata.catalog.entity.services.MessagingService;
|
||||||
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.catalog.util.Utils;
|
import org.openmetadata.catalog.util.Utils;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Metrics;
|
import org.openmetadata.catalog.entity.data.Metrics;
|
||||||
import org.openmetadata.catalog.resources.metrics.MetricsResource;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Model;
|
import org.openmetadata.catalog.entity.data.Model;
|
||||||
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
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.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.common.utils.CipherText;
|
import org.openmetadata.common.utils.CipherText;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Pipeline;
|
import org.openmetadata.catalog.entity.data.Pipeline;
|
||||||
import org.openmetadata.catalog.entity.data.Task;
|
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.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.common.utils.CipherText;
|
import org.openmetadata.common.utils.CipherText;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
|
|
||||||
import javax.json.JsonPatch;
|
import javax.json.JsonPatch;
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.services.PipelineService;
|
import org.openmetadata.catalog.entity.services.PipelineService;
|
||||||
import org.openmetadata.catalog.exception.EntityNotFoundException;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.catalog.util.Utils;
|
import org.openmetadata.catalog.util.Utils;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Report;
|
import org.openmetadata.catalog.entity.data.Report;
|
||||||
import org.openmetadata.catalog.resources.reports.ReportResource;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
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;
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
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.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;
|
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
|
* 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.
|
* href, usageCount and children tags which are constructed on the fly as needed.
|
||||||
*/
|
*/
|
||||||
@RegisterMapper(TagLabelMapper.class)
|
@RegisterRowMapper(TagLabelMapper.class)
|
||||||
public interface TagDAO {
|
public interface TagDAO {
|
||||||
@SqlUpdate("INSERT INTO tag_category (json) VALUES (:json)")
|
@SqlUpdate("INSERT INTO tag_category (json) VALUES (:json)")
|
||||||
void insertCategory(@Bind("json") String json);
|
void insertCategory(@Bind("json") String json);
|
||||||
|
|||||||
@ -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();
|
||||||
|
}
|
||||||
@ -17,6 +17,8 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
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.resources.tags.TagResource;
|
||||||
import org.openmetadata.catalog.type.Tag;
|
import org.openmetadata.catalog.type.Tag;
|
||||||
import org.openmetadata.catalog.type.TagCategory;
|
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;
|
||||||
import org.openmetadata.catalog.util.EntityUtil.Fields;
|
import org.openmetadata.catalog.util.EntityUtil.Fields;
|
||||||
import org.openmetadata.catalog.util.JsonUtils;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -39,18 +37,19 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public abstract class TagRepository {
|
public class TagRepositoryHelper {
|
||||||
public static final Logger LOG = LoggerFactory.getLogger(TagRepository.class);
|
public static final Logger LOG = LoggerFactory.getLogger(TagRepositoryHelper.class);
|
||||||
|
|
||||||
@CreateSqlObject
|
public TagRepositoryHelper(TagRepository3 repo3) { this.repo3 = repo3; }
|
||||||
abstract TagDAO tagDAO();
|
|
||||||
|
private final TagRepository3 repo3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a category one time when the service comes up for the first time
|
* Initialize a category one time when the service comes up for the first time
|
||||||
*/
|
*/
|
||||||
@Transaction
|
@Transaction
|
||||||
public void initCategory(TagCategory category) throws JsonProcessingException {
|
public void initCategory(TagCategory category) throws JsonProcessingException {
|
||||||
String json = tagDAO().findCategory(category.getName());
|
String json = repo3.tagDAO().findCategory(category.getName());
|
||||||
if (json == null) {
|
if (json == null) {
|
||||||
TagResource.LOG.info("Tag category {} is not initialized", category.getName());
|
TagResource.LOG.info("Tag category {} is not initialized", category.getName());
|
||||||
createCategoryInternal(category);
|
createCategoryInternal(category);
|
||||||
@ -72,24 +71,24 @@ public abstract class TagRepository {
|
|||||||
@Transaction
|
@Transaction
|
||||||
public Tag createPrimaryTag(String category, Tag tag) throws IOException {
|
public Tag createPrimaryTag(String category, Tag tag) throws IOException {
|
||||||
// Validate category
|
// Validate category
|
||||||
EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
|
EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
|
||||||
return createTagInternal(category, tag);
|
return createTagInternal(category, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transaction
|
@Transaction
|
||||||
public Tag createSecondaryTag(String category, String primaryTag, Tag tag) throws IOException {
|
public Tag createSecondaryTag(String category, String primaryTag, Tag tag) throws IOException {
|
||||||
// Validate category
|
// Validate category
|
||||||
EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
|
EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
|
||||||
|
|
||||||
String primaryTagFQN = category + "." + primaryTag;
|
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);
|
return createTagInternal(primaryTagFQN, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transaction
|
@Transaction
|
||||||
public List<TagCategory> listCategories(Fields fields) throws IOException {
|
public List<TagCategory> listCategories(Fields fields) throws IOException {
|
||||||
List<String> jsons = tagDAO().listCategories();
|
List<String> jsons = repo3.tagDAO().listCategories();
|
||||||
List<TagCategory> list = new ArrayList<>();
|
List<TagCategory> list = new ArrayList<>();
|
||||||
for (String json : jsons) {
|
for (String json : jsons) {
|
||||||
TagCategory category = JsonUtils.readValue(json, TagCategory.class);
|
TagCategory category = JsonUtils.readValue(json, TagCategory.class);
|
||||||
@ -100,7 +99,7 @@ public abstract class TagRepository {
|
|||||||
|
|
||||||
@Transaction
|
@Transaction
|
||||||
public TagCategory getCategory(String categoryName, Fields fields) throws IOException {
|
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);
|
category = setFields(category, fields);
|
||||||
return populateCategoryTags(category, fields);
|
return populateCategoryTags(category, fields);
|
||||||
}
|
}
|
||||||
@ -108,17 +107,17 @@ public abstract class TagRepository {
|
|||||||
@Transaction
|
@Transaction
|
||||||
public Tag getTag(String category, String fqn, Fields fields) throws IOException {
|
public Tag getTag(String category, String fqn, Fields fields) throws IOException {
|
||||||
// Validate category
|
// Validate category
|
||||||
EntityUtil.validate(category, tagDAO().findCategory(category), TagCategory.class);
|
EntityUtil.validate(category, repo3.tagDAO().findCategory(category), TagCategory.class);
|
||||||
|
|
||||||
// Get tags that match <category>.<tagName>
|
// Get tags that match <category>.<tagName>
|
||||||
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);
|
return populateChildrenTags(tag, fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transaction
|
@Transaction
|
||||||
public TagCategory updateCategory(String category, TagCategory updated) throws IOException {
|
public TagCategory updateCategory(String category, TagCategory updated) throws IOException {
|
||||||
// Validate category
|
// 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())) {
|
if (!original.getName().equals(updated.getName())) {
|
||||||
// Category name changed - update tag names starting from category and all the children tags
|
// 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());
|
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.setDescription(updated.getDescription());
|
||||||
original.setCategoryType(updated.getCategoryType());
|
original.setCategoryType(updated.getCategoryType());
|
||||||
tagDAO().updateCategory(category, JsonUtils.pojoToJson(original));
|
repo3.tagDAO().updateCategory(category, JsonUtils.pojoToJson(original));
|
||||||
|
|
||||||
// Populate response fields
|
// Populate response fields
|
||||||
return populateCategoryTags(original, null);
|
return populateCategoryTags(original, null);
|
||||||
@ -136,7 +135,7 @@ public abstract class TagRepository {
|
|||||||
@Transaction
|
@Transaction
|
||||||
public Tag updatePrimaryTag(String categoryName, String primaryTag, Tag updated) throws IOException {
|
public Tag updatePrimaryTag(String categoryName, String primaryTag, Tag updated) throws IOException {
|
||||||
// Validate categoryName
|
// Validate categoryName
|
||||||
EntityUtil.validate(categoryName, tagDAO().findCategory(categoryName), TagCategory.class);
|
EntityUtil.validate(categoryName, repo3.tagDAO().findCategory(categoryName), TagCategory.class);
|
||||||
return updateTag(categoryName, primaryTag, updated);
|
return updateTag(categoryName, primaryTag, updated);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,7 +143,7 @@ public abstract class TagRepository {
|
|||||||
public Tag updateSecondaryTag(String categoryName, String primaryTag, String secondaryTag, Tag updated)
|
public Tag updateSecondaryTag(String categoryName, String primaryTag, String secondaryTag, Tag updated)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
// Validate categoryName
|
// Validate categoryName
|
||||||
EntityUtil.validate(categoryName, tagDAO().findCategory(categoryName), TagCategory.class);
|
EntityUtil.validate(categoryName, repo3.tagDAO().findCategory(categoryName), TagCategory.class);
|
||||||
String fqnPrefix = categoryName + "." + primaryTag;
|
String fqnPrefix = categoryName + "." + primaryTag;
|
||||||
return updateTag(fqnPrefix, secondaryTag, updated);
|
return updateTag(fqnPrefix, secondaryTag, updated);
|
||||||
}
|
}
|
||||||
@ -152,7 +151,7 @@ public abstract class TagRepository {
|
|||||||
private Tag updateTag(String fqnPrefix, String tagName, Tag updated) throws IOException {
|
private Tag updateTag(String fqnPrefix, String tagName, Tag updated) throws IOException {
|
||||||
// Validate tag that needs to be updated exists
|
// Validate tag that needs to be updated exists
|
||||||
String originalFQN = fqnPrefix + "." + tagName;
|
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())) {
|
if (!original.getName().equals(updated.getName())) {
|
||||||
// Tag name changed
|
// Tag name changed
|
||||||
@ -162,7 +161,7 @@ public abstract class TagRepository {
|
|||||||
original.withName(updated.getName()).withFullyQualifiedName(updatedFQN);
|
original.withName(updated.getName()).withFullyQualifiedName(updatedFQN);
|
||||||
}
|
}
|
||||||
original.withDescription(updated.getDescription()).withAssociatedTags(updated.getAssociatedTags());
|
original.withDescription(updated.getDescription()).withAssociatedTags(updated.getAssociatedTags());
|
||||||
tagDAO().updateTag(originalFQN, JsonUtils.pojoToJson(original));
|
repo3.tagDAO().updateTag(originalFQN, JsonUtils.pojoToJson(original));
|
||||||
|
|
||||||
// Populate children
|
// Populate children
|
||||||
return populateChildrenTags(original, null);
|
return populateChildrenTags(original, null);
|
||||||
@ -179,7 +178,7 @@ public abstract class TagRepository {
|
|||||||
*/
|
*/
|
||||||
private void updateChildrenTagNames(String prefix, String newPrefix) throws IOException {
|
private void updateChildrenTagNames(String prefix, String newPrefix) throws IOException {
|
||||||
// Update the fully qualified names of all the primary and secondary tags
|
// Update the fully qualified names of all the primary and secondary tags
|
||||||
List<String> groupJsons = tagDAO().listChildrenTags(prefix);
|
List<String> groupJsons = repo3.tagDAO().listChildrenTags(prefix);
|
||||||
|
|
||||||
for (String json : groupJsons) {
|
for (String json : groupJsons) {
|
||||||
Tag tag = JsonUtils.readValue(json, Tag.class);
|
Tag tag = JsonUtils.readValue(json, Tag.class);
|
||||||
@ -187,7 +186,7 @@ public abstract class TagRepository {
|
|||||||
String newFQN = oldFQN.replace(prefix, newPrefix);
|
String newFQN = oldFQN.replace(prefix, newPrefix);
|
||||||
LOG.info("Replacing tag fqn from {} to {}", oldFQN, newFQN);
|
LOG.info("Replacing tag fqn from {} to {}", oldFQN, newFQN);
|
||||||
tag.setFullyQualifiedName(oldFQN.replace(prefix, newPrefix));
|
tag.setFullyQualifiedName(oldFQN.replace(prefix, newPrefix));
|
||||||
tagDAO().updateTag(oldFQN, JsonUtils.pojoToJson(tag));
|
repo3.tagDAO().updateTag(oldFQN, JsonUtils.pojoToJson(tag));
|
||||||
updateChildrenTagNames(oldFQN, newFQN);
|
updateChildrenTagNames(oldFQN, newFQN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -195,7 +194,7 @@ public abstract class TagRepository {
|
|||||||
private TagCategory createCategoryInternal(TagCategory category) throws JsonProcessingException {
|
private TagCategory createCategoryInternal(TagCategory category) throws JsonProcessingException {
|
||||||
List<Tag> primaryTags = category.getChildren();
|
List<Tag> primaryTags = category.getChildren();
|
||||||
category.setChildren(null); // Children are not stored as json and are constructed on the fly
|
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());
|
LOG.info("Create a new tag category {}", category.getName());
|
||||||
return category.withChildren(primaryTags);
|
return category.withChildren(primaryTags);
|
||||||
}
|
}
|
||||||
@ -205,7 +204,7 @@ public abstract class TagRepository {
|
|||||||
List<Tag> tags = tag.getChildren();
|
List<Tag> tags = tag.getChildren();
|
||||||
tag.setChildren(null); // Children of tag group are not stored as json but constructed on the fly
|
tag.setChildren(null); // Children of tag group are not stored as json but constructed on the fly
|
||||||
tag.setFullyQualifiedName(parentFQN + "." + tag.getName());
|
tag.setFullyQualifiedName(parentFQN + "." + tag.getName());
|
||||||
tagDAO().insertTag(JsonUtils.pojoToJson(tag));
|
repo3.tagDAO().insertTag(JsonUtils.pojoToJson(tag));
|
||||||
tag.setChildren(tags);
|
tag.setChildren(tags);
|
||||||
TagResource.LOG.info("Added tag {}", tag.getFullyQualifiedName());
|
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.setChildren(null); // No children allowed for the leaf tag
|
||||||
children.setFullyQualifiedName(children.getFullyQualifiedName() + "." + children.getName());
|
children.setFullyQualifiedName(children.getFullyQualifiedName() + "." + children.getName());
|
||||||
TagResource.LOG.info("Added tag {}", children.getFullyQualifiedName());
|
TagResource.LOG.info("Added tag {}", children.getFullyQualifiedName());
|
||||||
tagDAO().insertTag(JsonUtils.pojoToJson(children));
|
repo3.tagDAO().insertTag(JsonUtils.pojoToJson(children));
|
||||||
}
|
}
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
@ -222,7 +221,7 @@ public abstract class TagRepository {
|
|||||||
// Populate TagCategory with children details
|
// Populate TagCategory with children details
|
||||||
private TagCategory populateCategoryTags(TagCategory category, Fields fields) throws IOException {
|
private TagCategory populateCategoryTags(TagCategory category, Fields fields) throws IOException {
|
||||||
// Get tags under that match category prefix
|
// Get tags under that match category prefix
|
||||||
List<String> groupJsons = tagDAO().listChildrenTags(category.getName());
|
List<String> groupJsons = repo3.tagDAO().listChildrenTags(category.getName());
|
||||||
|
|
||||||
List<Tag> tagList = new ArrayList<>();
|
List<Tag> tagList = new ArrayList<>();
|
||||||
for (String json : groupJsons) {
|
for (String json : groupJsons) {
|
||||||
@ -234,7 +233,7 @@ public abstract class TagRepository {
|
|||||||
|
|
||||||
// Populate the children tags for a given tag
|
// Populate the children tags for a given tag
|
||||||
private Tag populateChildrenTags(Tag tag, Fields fields) throws IOException {
|
private Tag populateChildrenTags(Tag tag, Fields fields) throws IOException {
|
||||||
List<String> tagJsons = tagDAO().listChildrenTags(tag.getFullyQualifiedName());
|
List<String> tagJsons = repo3.tagDAO().listChildrenTags(tag.getFullyQualifiedName());
|
||||||
|
|
||||||
// Get tags under the given tag
|
// Get tags under the given tag
|
||||||
List<Tag> tagList = new ArrayList<>();
|
List<Tag> tagList = new ArrayList<>();
|
||||||
@ -260,16 +259,16 @@ public abstract class TagRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Integer getUsageCount(TagCategory category) {
|
private Integer getUsageCount(TagCategory category) {
|
||||||
return tagDAO().getTagCount(category.getName());
|
return repo3.tagDAO().getTagCount(category.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Integer getUsageCount(Tag tag) {
|
private Integer getUsageCount(Tag tag) {
|
||||||
return tagDAO().getTagCount(tag.getFullyQualifiedName());
|
return repo3.tagDAO().getTagCount(tag.getFullyQualifiedName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TagLabelMapper implements ResultSetMapper<TagLabel> {
|
public static class TagLabelMapper implements RowMapper<TagLabel> {
|
||||||
@Override
|
@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")])
|
return new TagLabel().withLabelType(TagLabel.LabelType.values()[r.getInt("labelType")])
|
||||||
.withState(TagLabel.State.values()[r.getInt("state")])
|
.withState(TagLabel.State.values()[r.getInt("state")])
|
||||||
.withTagFQN(r.getString("tagFQN"));
|
.withTagFQN(r.getString("tagFQN"));
|
||||||
@ -1,12 +1,6 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import org.openmetadata.catalog.entity.data.Table;
|
|
||||||
import org.openmetadata.catalog.entity.data.Task;
|
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<Task>{
|
public interface TaskDAO3 extends EntityDAO<Task>{
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Task;
|
import org.openmetadata.catalog.entity.data.Task;
|
||||||
import org.openmetadata.catalog.entity.services.PipelineService;
|
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.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.common.utils.CipherText;
|
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.json.JsonPatch;
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
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.Team;
|
||||||
import org.openmetadata.catalog.entity.teams.User;
|
import org.openmetadata.catalog.entity.teams.User;
|
||||||
import org.openmetadata.catalog.exception.CatalogExceptionMessage;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.openmetadata.common.utils.CipherText;
|
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.json.JsonPatch;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -50,7 +48,6 @@ import java.util.UUID;
|
|||||||
import static org.openmetadata.catalog.jdbi3.Relationship.OWNS;
|
import static org.openmetadata.catalog.jdbi3.Relationship.OWNS;
|
||||||
|
|
||||||
public class TeamRepositoryHelper implements EntityRepository<Team> {
|
public class TeamRepositoryHelper implements EntityRepository<Team> {
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(TeamResource.class);
|
|
||||||
static final Fields TEAM_PATCH_FIELDS = new Fields(TeamResource.FIELD_LIST, "profile,users");
|
static final Fields TEAM_PATCH_FIELDS = new Fields(TeamResource.FIELD_LIST, "profile,users");
|
||||||
|
|
||||||
public TeamRepositoryHelper(TeamRepository3 repo3) { this.repo3 = repo3; }
|
public TeamRepositoryHelper(TeamRepository3 repo3) { this.repo3 = repo3; }
|
||||||
|
|||||||
@ -18,7 +18,6 @@ package org.openmetadata.catalog.jdbi3;
|
|||||||
|
|
||||||
import org.jdbi.v3.core.mapper.RowMapper;
|
import org.jdbi.v3.core.mapper.RowMapper;
|
||||||
import org.openmetadata.catalog.type.EntityReference;
|
import org.openmetadata.catalog.type.EntityReference;
|
||||||
import org.skife.jdbi.v2.StatementContext;
|
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import org.jdbi.v3.sqlobject.transaction.Transaction;
|
||||||
import org.openmetadata.catalog.Entity;
|
import org.openmetadata.catalog.Entity;
|
||||||
import org.openmetadata.catalog.entity.data.Topic;
|
import org.openmetadata.catalog.entity.data.Topic;
|
||||||
import org.openmetadata.catalog.entity.services.MessagingService;
|
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.JsonUtils;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
package org.openmetadata.catalog.jdbi3;
|
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.Entity;
|
||||||
import org.openmetadata.catalog.type.DailyCount;
|
import org.openmetadata.catalog.type.DailyCount;
|
||||||
import org.openmetadata.catalog.type.EntityReference;
|
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.UsageDetails;
|
||||||
import org.openmetadata.catalog.type.UsageStats;
|
import org.openmetadata.catalog.type.UsageStats;
|
||||||
import org.openmetadata.catalog.util.EntityUtil;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -96,9 +96,9 @@ public class UsageRepositoryHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class UsageDetailsMapper implements ResultSetMapper<UsageDetails> {
|
public static class UsageDetailsMapper implements RowMapper<UsageDetails> {
|
||||||
@Override
|
@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(
|
UsageStats dailyStats = new UsageStats().withCount(r.getInt("count1")).withPercentileRank(r.getDouble(
|
||||||
"percentile1"));
|
"percentile1"));
|
||||||
UsageStats weeklyStats = new UsageStats().withCount(r.getInt("count7")).withPercentileRank(r.getDouble(
|
UsageStats weeklyStats = new UsageStats().withCount(r.getInt("count7")).withPercentileRank(r.getDouble(
|
||||||
|
|||||||
@ -34,13 +34,13 @@ public interface UserDAO3 extends EntityDAO<User> {
|
|||||||
"ORDER BY name DESC " + // Pagination ordering by user name
|
"ORDER BY name DESC " + // Pagination ordering by user name
|
||||||
"LIMIT :limit" +
|
"LIMIT :limit" +
|
||||||
") last_rows_subquery ORDER BY name")
|
") last_rows_subquery ORDER BY name")
|
||||||
List<String> listBefore(@org.skife.jdbi.v2.sqlobject.Bind("limit") int limit, @org.skife.jdbi.v2.sqlobject.Bind("before") String before);
|
List<String> listBefore(@Bind("limit") int limit, @Bind("before") String before);
|
||||||
|
|
||||||
@SqlQuery("SELECT json FROM user_entity WHERE " +
|
@SqlQuery("SELECT json FROM user_entity WHERE " +
|
||||||
"name > :after " + // Pagination by user name
|
"name > :after " + // Pagination by user name
|
||||||
"ORDER BY name " + // Pagination ordering by user name
|
"ORDER BY name " + // Pagination ordering by user name
|
||||||
"LIMIT :limit")
|
"LIMIT :limit")
|
||||||
List<String> listAfter(@org.skife.jdbi.v2.sqlobject.Bind("limit") int limit, @org.skife.jdbi.v2.sqlobject.Bind("after") String after);
|
List<String> listAfter(@Bind("limit") int limit, @Bind("after") String after);
|
||||||
|
|
||||||
@SqlQuery("SELECT count(*) FROM user_entity")
|
@SqlQuery("SELECT count(*) FROM user_entity")
|
||||||
int listCount();
|
int listCount();
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package org.openmetadata.catalog.jdbi3;
|
package org.openmetadata.catalog.jdbi3;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
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.Team;
|
||||||
import org.openmetadata.catalog.entity.teams.User;
|
import org.openmetadata.catalog.entity.teams.User;
|
||||||
import org.openmetadata.catalog.exception.CatalogExceptionMessage;
|
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;
|
||||||
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
import org.openmetadata.catalog.util.RestUtil.PutResponse;
|
||||||
import org.openmetadata.catalog.util.ResultList;
|
import org.openmetadata.catalog.util.ResultList;
|
||||||
import org.skife.jdbi.v2.sqlobject.Transaction;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,8 @@ import org.openmetadata.catalog.jdbi3.ReportRepository3;
|
|||||||
import org.openmetadata.catalog.jdbi3.ReportRepositoryHelper;
|
import org.openmetadata.catalog.jdbi3.ReportRepositoryHelper;
|
||||||
import org.openmetadata.catalog.jdbi3.TableRepository3;
|
import org.openmetadata.catalog.jdbi3.TableRepository3;
|
||||||
import org.openmetadata.catalog.jdbi3.TableRepositoryHelper;
|
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.TaskRepository3;
|
||||||
import org.openmetadata.catalog.jdbi3.TaskRepositoryHelper;
|
import org.openmetadata.catalog.jdbi3.TaskRepositoryHelper;
|
||||||
import org.openmetadata.catalog.jdbi3.TeamRepository3;
|
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.database.DatabaseServiceResource;
|
||||||
import org.openmetadata.catalog.resources.services.messaging.MessagingServiceResource;
|
import org.openmetadata.catalog.resources.services.messaging.MessagingServiceResource;
|
||||||
import org.openmetadata.catalog.resources.services.pipeline.PipelineServiceResource;
|
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.tasks.TaskResource;
|
||||||
import org.openmetadata.catalog.resources.teams.TeamResource;
|
import org.openmetadata.catalog.resources.teams.TeamResource;
|
||||||
import org.openmetadata.catalog.resources.teams.UserResource;
|
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.util.RestUtil;
|
||||||
import org.openmetadata.catalog.security.CatalogAuthorizer;
|
import org.openmetadata.catalog.security.CatalogAuthorizer;
|
||||||
import org.reflections.Reflections;
|
import org.reflections.Reflections;
|
||||||
import org.skife.jdbi.v2.DBI;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.core.UriInfo;
|
import javax.ws.rs.core.UriInfo;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@ -203,7 +206,7 @@ public final class CollectionRegistry {
|
|||||||
/**
|
/**
|
||||||
* Register resources from 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
|
// Build list of ResourceDescriptors
|
||||||
for (Map.Entry<String, CollectionDetails> e : collectionMap.entrySet()) {
|
for (Map.Entry<String, CollectionDetails> e : collectionMap.entrySet()) {
|
||||||
CollectionDetails details = e.getValue();
|
CollectionDetails details = e.getValue();
|
||||||
@ -222,7 +225,7 @@ public final class CollectionRegistry {
|
|||||||
/**
|
/**
|
||||||
* Register resources from 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");
|
LOG.info("Initializing jdbi3");
|
||||||
|
|
||||||
final TableRepository3 daoObject = jdbi.onDemand(TableRepository3.class);
|
final TableRepository3 daoObject = jdbi.onDemand(TableRepository3.class);
|
||||||
@ -359,6 +362,14 @@ public final class CollectionRegistry {
|
|||||||
environment.jersey().register(usageResource);
|
environment.jersey().register(usageResource);
|
||||||
LOG.info("Registering {}", 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");
|
LOG.info("Initialized jdbi3");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,7 +414,7 @@ public final class CollectionRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Create a resource class based on dependencies declared in @Collection annotation */
|
/** 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
|
CatalogAuthorizer authorizer) throws
|
||||||
ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException,
|
ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException,
|
||||||
InstantiationException {
|
InstantiationException {
|
||||||
|
|||||||
@ -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.media.Schema;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||||
import org.apache.maven.shared.utils.io.IOUtil;
|
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.resources.Collection;
|
||||||
import org.openmetadata.catalog.security.CatalogAuthorizer;
|
import org.openmetadata.catalog.security.CatalogAuthorizer;
|
||||||
import org.openmetadata.catalog.security.SecurityUtil;
|
import org.openmetadata.catalog.security.SecurityUtil;
|
||||||
@ -67,11 +67,11 @@ import java.util.regex.Pattern;
|
|||||||
@Path("/v1/tags")
|
@Path("/v1/tags")
|
||||||
@Api(value = "Tags resources collection", tags = "Tags resources collection")
|
@Api(value = "Tags resources collection", tags = "Tags resources collection")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@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 class TagResource {
|
||||||
public static final Logger LOG = LoggerFactory.getLogger(TagResource.class);
|
public static final Logger LOG = LoggerFactory.getLogger(TagResource.class);
|
||||||
public static final String TAG_COLLECTION_PATH = "/v1/tags/";
|
public static final String TAG_COLLECTION_PATH = "/v1/tags/";
|
||||||
private final TagRepository dao;
|
private final TagRepositoryHelper dao;
|
||||||
private final CatalogAuthorizer authorizer;
|
private final CatalogAuthorizer authorizer;
|
||||||
|
|
||||||
static class CategoryList extends ResultList<TagCategory> {
|
static class CategoryList extends ResultList<TagCategory> {
|
||||||
@ -85,8 +85,8 @@ public class TagResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public TagResource(TagRepository dao, CatalogAuthorizer authorizer) {
|
public TagResource(TagRepositoryHelper dao, CatalogAuthorizer authorizer) {
|
||||||
Objects.requireNonNull(dao, "TagRepository must not be null");
|
Objects.requireNonNull(dao, "TagRepositoryHelper must not be null");
|
||||||
this.dao = dao;
|
this.dao = dao;
|
||||||
this.authorizer = authorizer;
|
this.authorizer = authorizer;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,9 +117,5 @@
|
|||||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
<artifactId>jackson-datatype-jsr353</artifactId>
|
<artifactId>jackson-datatype-jsr353</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.jdbi</groupId>
|
|
||||||
<artifactId>jdbi</artifactId>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
7
pom.xml
7
pom.xml
@ -42,7 +42,6 @@
|
|||||||
<slf4j.version>1.7.31</slf4j.version>
|
<slf4j.version>1.7.31</slf4j.version>
|
||||||
<jackson.version>2.12.3</jackson.version>
|
<jackson.version>2.12.3</jackson.version>
|
||||||
<dropwizard.version>2.0.23</dropwizard.version>
|
<dropwizard.version>2.0.23</dropwizard.version>
|
||||||
<dropwizard-jdbi.version>2.0.0-rc9</dropwizard-jdbi.version>
|
|
||||||
<dropwizard-jdbi3.version>2.0.25</dropwizard-jdbi3.version>
|
<dropwizard-jdbi3.version>2.0.25</dropwizard-jdbi3.version>
|
||||||
<jersey-media-multipart.version>2.33</jersey-media-multipart.version>
|
<jersey-media-multipart.version>2.33</jersey-media-multipart.version>
|
||||||
<jersey-client.version>2.33</jersey-client.version>
|
<jersey-client.version>2.33</jersey-client.version>
|
||||||
@ -61,7 +60,6 @@
|
|||||||
<jaxb.version>2.3.2</jaxb.version>
|
<jaxb.version>2.3.2</jaxb.version>
|
||||||
<wiremock-standalone.version>2.15.0</wiremock-standalone.version>
|
<wiremock-standalone.version>2.15.0</wiremock-standalone.version>
|
||||||
<jacoco-plugin.version>0.8.6</jacoco-plugin.version>
|
<jacoco-plugin.version>0.8.6</jacoco-plugin.version>
|
||||||
<jdbi.version>2.78</jdbi.version>
|
|
||||||
<jdbi3.version>3.23.0</jdbi3.version>
|
<jdbi3.version>3.23.0</jdbi3.version>
|
||||||
<commons-cli.version>1.4</commons-cli.version>
|
<commons-cli.version>1.4</commons-cli.version>
|
||||||
<commons-io.version>2.10.0</commons-io.version>
|
<commons-io.version>2.10.0</commons-io.version>
|
||||||
@ -144,11 +142,6 @@
|
|||||||
<artifactId>dropwizard-jdbi3</artifactId>
|
<artifactId>dropwizard-jdbi3</artifactId>
|
||||||
<version>${dropwizard-jdbi3.version}</version>
|
<version>${dropwizard-jdbi3.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.jdbi</groupId>
|
|
||||||
<artifactId>jdbi</artifactId>
|
|
||||||
<version>${jdbi.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jdbi</groupId>
|
<groupId>org.jdbi</groupId>
|
||||||
<artifactId>jdbi3-core</artifactId>
|
<artifactId>jdbi3-core</artifactId>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user