diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java index cd8875ec396..7e4802a56cb 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java @@ -15,16 +15,26 @@ package org.openmetadata.service; import static java.lang.String.format; +import com.fasterxml.jackson.databind.ObjectMapper; import es.org.elasticsearch.client.RestClient; import es.org.elasticsearch.client.RestClientBuilder; +import io.dropwizard.configuration.ConfigurationException; +import io.dropwizard.configuration.EnvironmentVariableSubstitutor; +import io.dropwizard.configuration.FileConfigurationSourceProvider; +import io.dropwizard.configuration.SubstitutingSourceProvider; +import io.dropwizard.configuration.YamlConfigurationFactory; import io.dropwizard.db.DataSourceFactory; +import io.dropwizard.jackson.Jackson; import io.dropwizard.jersey.jackson.JacksonFeature; +import io.dropwizard.jersey.validation.Validators; import io.dropwizard.testing.ConfigOverride; import io.dropwizard.testing.ResourceHelpers; import io.dropwizard.testing.junit5.DropwizardAppExtension; +import jakarta.validation.Validator; import jakarta.ws.rs.client.Client; import jakarta.ws.rs.client.ClientBuilder; import jakarta.ws.rs.client.WebTarget; +import java.io.IOException; import java.net.URI; import java.time.Duration; import java.util.HashSet; @@ -55,6 +65,8 @@ import org.openmetadata.schema.type.IndexMappingLanguage; import org.openmetadata.search.IndexMappingLoader; import org.openmetadata.service.apps.ApplicationContext; import org.openmetadata.service.apps.ApplicationHandler; +import org.openmetadata.service.events.AuditExcludeFilterFactory; +import org.openmetadata.service.events.AuditOnlyFilterFactory; import org.openmetadata.service.governance.workflows.WorkflowHandler; import org.openmetadata.service.jdbi3.CollectionDAO; import org.openmetadata.service.jdbi3.locator.ConnectionAwareAnnotationSqlLocator; @@ -136,7 +148,7 @@ public abstract class OpenMetadataApplicationTest { if (CommonUtil.nullOrEmpty(elasticSearchContainerImage)) { elasticSearchContainerImage = ELASTIC_SEARCH_CONTAINER_IMAGE; } - OpenMetadataApplicationConfig config = new OpenMetadataApplicationConfig(); + OpenMetadataApplicationConfig config = readTestAppConfig(CONFIG_PATH); // The system properties are provided by maven-surefire for testing with mysql and postgres LOG.info( "Using test container class {} and image {}", jdbcContainerClassName, jdbcContainerImage); @@ -273,6 +285,20 @@ public abstract class OpenMetadataApplicationTest { Entity.cleanup(); } + protected OpenMetadataApplicationConfig readTestAppConfig(String path) + throws ConfigurationException, IOException { + ObjectMapper objectMapper = Jackson.newObjectMapper(); + objectMapper.registerSubtypes(AuditExcludeFilterFactory.class, AuditOnlyFilterFactory.class); + Validator validator = Validators.newValidator(); + YamlConfigurationFactory factory = + new YamlConfigurationFactory<>( + OpenMetadataApplicationConfig.class, validator, objectMapper, "dw"); + return factory.build( + new SubstitutingSourceProvider( + new FileConfigurationSourceProvider(), new EnvironmentVariableSubstitutor(false)), + path); + } + protected CollectionDAO getDao(Jdbi jdbi) { CollectionDAO originalDAO = jdbi.onDemand(CollectionDAO.class);