* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.sparky.config.oxm;
import org.springframework.core.io.support.ResourcePatternResolver;
public class OxmModelLoader {
-
+
private static final Logger LOG = LoggerFactory.getInstance().getLogger(OxmModelLoader.class);
-
+
/*
* The intent of this parameter is to be able to programmatically over-ride the latest AAI schema
* version discovered from the aai-schema jar file. This property is optional, but if set on the
protected int oxmApiVersionOverride;
protected Set<OxmModelProcessor> processors;
private int latestVersionNum = 0;
-
+
private final static Pattern p = Pattern.compile("aai_oxm_(v)(.*).xml");
-
+
public OxmModelLoader() {
this(-1, new HashSet<OxmModelProcessor>());
}
-
- public OxmModelLoader(int apiVersionOverride, Set<OxmModelProcessor> oxmModelProcessors) {
+
+ public OxmModelLoader(int apiVersionOverride,Set<OxmModelProcessor> oxmModelProcessors) {
this.oxmApiVersionOverride = apiVersionOverride;
this.processors = oxmModelProcessors;
}
-
+
protected synchronized Map<Integer, InputStream> getStreamHandlesForOxmFromResource() {
Map<Integer, InputStream> listOfOxmFiles = new HashMap<Integer, InputStream>();
ClassLoader oxmClassLoader = OxmModelLoader.class.getClassLoader();
try {
listOfOxmFiles.put(new Integer(m.group(2)), resource.getInputStream());
} catch (Exception e) {
- LOG.error(AaiUiMsgs.OXM_LOADING_ERROR, resource.getFilename(), e.getMessage());
+ LOG.error(AaiUiMsgs.OXM_LOADING_ERROR,
+ resource.getFilename(), e.getMessage());
}
}
}
return listOfOxmFiles;
}
-
+
/**
* Load an oxm model.
- *
* @param inputStream file handle for oxm
*/
protected void loadModel(InputStream inputStream) {
LOG.error(AaiUiMsgs.OXM_PARSE_ERROR_VERBOSE, "OXM v" + latestVersionNum, exc.getMessage());
}
}
-
+
/**
* Load the latest oxm model.
*/
public synchronized void loadLatestOxmModel() {
LOG.info(AaiUiMsgs.INITIALIZE_OXM_MODEL_LOADER);
-
+
// find handles for available oxm models
final Map<Integer, InputStream> listOfOxmStreams = getStreamHandlesForOxmFromResource();
if (listOfOxmStreams.isEmpty()) {
loadModel(stream);
}
-
+
public int getLatestVersionNum() {
return latestVersionNum;
}
public void setLatestVersionNum(int latestVersionNum) {
this.latestVersionNum = latestVersionNum;
}
-
+
/**
* Parses the oxm context.
*
for (OxmModelProcessor processor : processors) {
- processor.processOxmModel(oxmContext);
+ try {
+
+ processor.processOxmModel(oxmContext);
+
+ } catch (Exception exc) {
+
+ LOG.warn(AaiUiMsgs.WARN_GENERIC,
+ "OxmModelProcessor experienced an error. Error: " + exc.getMessage());
+
+ }
}
}
}
-
+
}