diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/ApplicationHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/ApplicationHandler.java index 1d42626762d..c62a0fb85e5 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/ApplicationHandler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/ApplicationHandler.java @@ -130,6 +130,7 @@ public class ApplicationHandler { public void runMethodFromApplication( App app, CollectionDAO daoCollection, SearchRepository searchRepository, String methodName) { // Native Application + setAppRuntimeProperties(app); try { Object resource = runAppInit(app, daoCollection, searchRepository); // Call method on demand diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/ConfigurationReader.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/ConfigurationReader.java index ba680d1a347..5ff8272962f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/ConfigurationReader.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/ConfigurationReader.java @@ -4,18 +4,20 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import io.dropwizard.configuration.ConfigurationException; import io.dropwizard.configuration.EnvironmentVariableSubstitutor; -import io.dropwizard.configuration.FileConfigurationSourceProvider; +import io.dropwizard.configuration.ResourceConfigurationSourceProvider; import io.dropwizard.configuration.SubstitutingSourceProvider; import io.dropwizard.configuration.YamlConfigurationFactory; -import java.io.File; import java.io.IOException; import java.net.URL; import java.util.Map; import org.apache.commons.text.StringSubstitutor; import org.openmetadata.schema.api.configuration.apps.AppPrivateConfig; import org.openmetadata.service.util.JsonUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ConfigurationReader { + private static final Logger log = LoggerFactory.getLogger(ConfigurationReader.class); private final StringSubstitutor substitutor; private final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); private final YamlConfigurationFactory factory = @@ -39,17 +41,18 @@ public class ConfigurationReader { if (resource == null) { throw new IOException("Configuration file not found: " + configFilePath); } - File configFile = new File(resource.getFile()); - return JsonUtils.convertValue(readConfigFile(configFile), AppPrivateConfig.class); + log.debug("Loaded config file from resource: {}", configFilePath); + return JsonUtils.convertValue(readConfigResource(configFilePath), AppPrivateConfig.class); } - public Map readConfigFile(File configFile) + public Map readConfigResource(String resourcePath) throws IOException, ConfigurationException { try { return (Map) factory.build( - new SubstitutingSourceProvider(new FileConfigurationSourceProvider(), substitutor), - configFile.getAbsolutePath()); + new SubstitutingSourceProvider( + new ResourceConfigurationSourceProvider(), substitutor), + resourcePath); } catch (ClassCastException e) { throw new RuntimeException("Configuration file is not a valid YAML file", e); }