diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java | 35 | ||||
-rw-r--r-- | src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java | 31 |
2 files changed, 36 insertions, 30 deletions
diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java b/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java index 4e09222..72c06ed 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java @@ -18,12 +18,9 @@ public class ConfigurationManager { private static final String CONFIGURATION_DIR = "config/"; private static volatile ConfigurationManager instance; -// private Configuration configuration; -// private ErrorConfiguration errorConfiguration; - - Map<String, Object> configurations = new HashMap<String, Object>(); + Map<String, Object> configurations = new HashMap<String, Object>(); private ConfigurationManager() { initialConfigObjectsFromFiles(); @@ -40,18 +37,26 @@ public class ConfigurationManager { configurations.put(clazz.getSimpleName(), object); } + private <T> void loadConfigurationClass(Class<T> clazz, String fileName) { + T object = getObjectFromYaml(clazz,fileName); + configurations.put(clazz.getSimpleName(), object); + } + + public static <T> T getObjectFromYaml(Class<T> className) { + return getObjectFromYaml(className, null); + } - public <T> T getObjectFromYaml(Class<T> className) { + public static <T> T getObjectFromYaml(Class<T> className, String fileName) { - String configFileName = calculateFileName(className); + String configFileName = fileName != null ? fileName : calculateFileName(className); ; URL url = Resources.getResource(CONFIGURATION_DIR + configFileName); String configFileContents = null; try { configFileContents = Resources.toString(url, Charsets.UTF_8); } catch (IOException e) { - log.error("ConfigurationManager - Failed to load configuration file"); + log.error("ConfigurationManager - Failed to load configuration file {}", configFileName, e); } YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter(); T object = yamlToObjectConverter.convertFromString(configFileContents, className); @@ -61,13 +66,13 @@ public class ConfigurationManager { public static ConfigurationManager getInstance() { - // if (instance == null) { - // synchronized (ConfigurationManager.class) { - // if (instance == null) { + if (instance == null) { + synchronized (ConfigurationManager.class) { + if (instance == null) { instance = new ConfigurationManager(); - // } - // } - // } + } + } + } return instance; } @@ -107,7 +112,9 @@ public class ConfigurationManager { public JtoscaValidationIssueConfiguration getJtoscaValidationIssueConfiguration() { return (JtoscaValidationIssueConfiguration) configurations.get((JtoscaValidationIssueConfiguration.class.getSimpleName())); } - + public void setJtoscaValidationIssueConfiguration(String fileName) { + loadConfigurationClass(JtoscaValidationIssueConfiguration.class, fileName); + } public Configuration getConfiguration() { return (Configuration) configurations.get((Configuration.class.getSimpleName())); } diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java index c9cac1c..f1a03b7 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java @@ -18,17 +18,13 @@ import org.slf4j.LoggerFactory; public class SdcToscaParserFactory {
private static Logger log = LoggerFactory.getLogger(SdcToscaParserFactory.class.getName());
-
+
+ private static ConfigurationManager configurationManager;
private static volatile SdcToscaParserFactory instance;
- private static Configuration configuration;
- private static ErrorConfiguration errorConfiguration;
- private static JtoscaValidationIssueConfiguration jtoscaValidationIssueConfiguration;
private List<JToscaValidationIssue> criticalExceptions = new ArrayList<>();
private List<JToscaValidationIssue> warningExceptions = new ArrayList<>();
private List<JToscaValidationIssue> notAnalyzadExceptions = new ArrayList<>();
- private SdcToscaParserFactory() {
-
- }
+ private SdcToscaParserFactory() {}
/**
* Get an SdcToscaParserFactory instance.
@@ -39,15 +35,17 @@ public class SdcToscaParserFactory { synchronized (SdcToscaParserFactory.class) {
if (instance == null) {
instance = new SdcToscaParserFactory();
- configuration = ConfigurationManager.getInstance().getConfiguration();
- errorConfiguration = ConfigurationManager.getInstance().getErrorConfiguration();
- jtoscaValidationIssueConfiguration = ConfigurationManager.getInstance().getJtoscaValidationIssueConfiguration();
+ configurationManager = ConfigurationManager.getInstance();
}
}
}
return instance;
}
+ public static void setConfigurationManager(ConfigurationManager configurationManager) {
+ SdcToscaParserFactory.configurationManager = configurationManager;
+ }
+
/**
* Get an ISdcCsarHelper object for this CSAR file.
*
@@ -85,8 +83,7 @@ public class SdcToscaParserFactory { try {
handleErrorsByTypes(csarPath, cSarConformanceLevel);
} catch (JToscaException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throwSdcToscaParserException(e);
}
return sdcCsarHelperImpl;
}
@@ -95,7 +92,7 @@ public class SdcToscaParserFactory { private void handleErrorsByTypes(String csarPath, String cSarConformanceLevel) throws JToscaException {
clearValidationIssuesLists();
for(JToscaValidationIssue toscaValidationIssue : ThreadLocalsHolder.getCollector().getValidationIssues().values()){
- List<JToscaValidationIssueInfo> issueInfos = jtoscaValidationIssueConfiguration.getValidationIssues().get(toscaValidationIssue.getCode());
+ List<JToscaValidationIssueInfo> issueInfos = configurationManager.getJtoscaValidationIssueConfiguration().getValidationIssues().get(toscaValidationIssue.getCode());
if(issueInfos != null && !issueInfos.isEmpty()){
JToscaValidationIssueInfo issueInfo = null;
issueInfo = issueInfos.stream()
@@ -167,7 +164,7 @@ public class SdcToscaParserFactory { private void validateCsarVersion(String cSarVersion) throws SdcToscaParserException {
- ConformanceLevel level = configuration.getConformanceLevel();
+ ConformanceLevel level = configurationManager.getConfiguration().getConformanceLevel();
String minVersion = level.getMinVersion();
String maxVersion = level.getMaxVersion();
if (cSarVersion != null) {
@@ -188,13 +185,15 @@ public class SdcToscaParserFactory { return false;
}
private void throwConformanceLevelException(String minVersion, String maxVersion) throws SdcToscaParserException {
- ErrorInfo errorInfo = errorConfiguration.getErrorInfo(SdcToscaParserErrors.CONFORMANCE_LEVEL_ERROR.toString());
+ ErrorInfo errorInfo = configurationManager.getErrorConfiguration().getErrorInfo(SdcToscaParserErrors.CONFORMANCE_LEVEL_ERROR.toString());
throw new SdcToscaParserException(String.format(errorInfo.getMessage(), minVersion, maxVersion), errorInfo.getCode());
}
private void throwSdcToscaParserException(JToscaException e) throws SdcToscaParserException {
- ErrorInfo errorInfo = errorConfiguration.getErrorInfo(SdcToscaParserErrors.getSdcErrorByJToscaError(JToscaErrorCodes.getByCode(e.getCode())).toString());
+ ErrorInfo errorInfo = configurationManager.getErrorConfiguration().getErrorInfo(SdcToscaParserErrors.getSdcErrorByJToscaError(JToscaErrorCodes.getByCode(e.getCode())).toString());
throw new SdcToscaParserException(errorInfo.getMessage(), errorInfo.getCode());
}
+
+
}
\ No newline at end of file |