GEN-1793: fix app config from resource (#18228)

* fix: app config from resource

* removed useless logging
This commit is contained in:
Imri Paran 2024-10-11 10:59:43 +02:00 committed by Pere Miquel Brull
parent a2ffa0814f
commit eeca51cb9a
2 changed files with 11 additions and 7 deletions

View File

@ -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

View File

@ -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<Object> 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<String, Object> readConfigFile(File configFile)
public Map<String, Object> readConfigResource(String resourcePath)
throws IOException, ConfigurationException {
try {
return (Map<String, Object>)
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);
}