From ea6a13fc7b9ac6285930f5d8221877d908dd031d Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 8 Feb 2022 22:16:40 -0800 Subject: [PATCH] Init {Config,Permissions}Resource through CollectionRegistry (#2675) --- .../java/org/openmetadata/catalog/CatalogApplication.java | 6 ------ .../catalog/resources/CollectionRegistry.java | 8 ++++++-- .../resources/permissions/PermissionsResource.java | 3 ++- 3 files changed, 8 insertions(+), 9 deletions(-) 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 4c98f558a9f..d68d42d555d 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 @@ -56,8 +56,6 @@ import org.openmetadata.catalog.fernet.Fernet; import org.openmetadata.catalog.migration.Migration; import org.openmetadata.catalog.migration.MigrationConfiguration; import org.openmetadata.catalog.resources.CollectionRegistry; -import org.openmetadata.catalog.resources.config.ConfigResource; -import org.openmetadata.catalog.resources.permissions.PermissionsResource; import org.openmetadata.catalog.resources.search.SearchResource; import org.openmetadata.catalog.security.AuthenticationConfiguration; import org.openmetadata.catalog.security.Authorizer; @@ -203,10 +201,6 @@ public class CatalogApplication extends Application { ContainerRequestFilter filter = NoopFilter.class.getConstructor().newInstance(); environment.jersey().register(filter); } - // Register config API - environment.jersey().register(new ConfigResource(catalogConfig)); - // Register permissions API - environment.jersey().register(new PermissionsResource(authorizer)); } private void registerEventFilter(CatalogApplicationConfig catalogConfig, Environment environment, Jdbi jdbi) { 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 4ddabcdf0a8..3548c173aac 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 @@ -200,8 +200,12 @@ public final class CollectionRegistry { // Create the resource identified by resourceClass try { resource = clz.getDeclaredConstructor(CollectionDAO.class, Authorizer.class).newInstance(daoObject, authorizer); - } catch (NoSuchMethodException ex) { - resource = Class.forName(resourceClass).getConstructor().newInstance(); + } catch (NoSuchMethodException e) { + try { + resource = clz.getDeclaredConstructor(CatalogApplicationConfig.class).newInstance(config); + } catch (NoSuchMethodException ex) { + resource = Class.forName(resourceClass).getConstructor().newInstance(); + } } // Call initialize method, if it exists diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/permissions/PermissionsResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/permissions/PermissionsResource.java index 1aa1d207855..eabba156358 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/permissions/PermissionsResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/permissions/PermissionsResource.java @@ -25,6 +25,7 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.SecurityContext; import lombok.NonNull; +import org.openmetadata.catalog.jdbi3.CollectionDAO; import org.openmetadata.catalog.resources.Collection; import org.openmetadata.catalog.security.Authorizer; import org.openmetadata.catalog.security.Permissions; @@ -37,7 +38,7 @@ import org.openmetadata.catalog.security.SecurityUtil; public class PermissionsResource { private final Authorizer authorizer; - public PermissionsResource(@NonNull Authorizer authorizer) { + public PermissionsResource(CollectionDAO dao, @NonNull Authorizer authorizer) { this.authorizer = authorizer; }