summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pom.xml6
-rw-r--r--src/main/java/org/openecomp/crud/service/CrudGraphDataService.java8
-rw-r--r--src/main/java/org/openecomp/schema/OxmModelLoader.java168
-rw-r--r--src/main/java/org/openecomp/schema/OxmModelValidator.java15
-rw-r--r--src/test/java/org/openecomp/schema/OxmModelLoaderTest.java21
5 files changed, 24 insertions, 194 deletions
diff --git a/pom.xml b/pom.xml
index 8704324..b6891b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,7 +92,11 @@
<artifactId>aai-schema</artifactId>
<version>1.1.0-SNAPSHOT</version>
</dependency>
-
+ <dependency>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-utils</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.onap.aai.aai-common</groupId>
<artifactId>aai-core</artifactId>
diff --git a/src/main/java/org/openecomp/crud/service/CrudGraphDataService.java b/src/main/java/org/openecomp/crud/service/CrudGraphDataService.java
index a8c0248..f38fe0f 100644
--- a/src/main/java/org/openecomp/crud/service/CrudGraphDataService.java
+++ b/src/main/java/org/openecomp/crud/service/CrudGraphDataService.java
@@ -23,6 +23,7 @@
*/
package org.openecomp.crud.service;
+import org.onap.aaiutils.oxm.OxmModelLoader;
import org.openecomp.aai.champcore.ChampGraph;
import org.openecomp.crud.dao.GraphDao;
import org.openecomp.crud.dao.champ.ChampDao;
@@ -30,7 +31,6 @@ import org.openecomp.crud.entity.Edge;
import org.openecomp.crud.entity.Vertex;
import org.openecomp.crud.exception.CrudException;
import org.openecomp.crud.parser.CrudResponseBuilder;
-import org.openecomp.schema.OxmModelLoader;
import org.openecomp.schema.OxmModelValidator;
import org.openecomp.schema.RelationshipSchemaLoader;
import org.openecomp.schema.RelationshipSchemaValidator;
@@ -47,7 +47,11 @@ public class CrudGraphDataService {
this.dao = new ChampDao(graphImpl);
//load the schemas
- OxmModelLoader.loadModels();
+ try {
+ OxmModelLoader.loadModels();
+ } catch (Exception e) {
+ throw new CrudException(e);
+ }
RelationshipSchemaLoader.loadModels();
}
diff --git a/src/main/java/org/openecomp/schema/OxmModelLoader.java b/src/main/java/org/openecomp/schema/OxmModelLoader.java
deleted file mode 100644
index 4ef77a2..0000000
--- a/src/main/java/org/openecomp/schema/OxmModelLoader.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * Gizmo
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property.
- * Copyright © 2017 Amdocs
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * 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.openecomp.schema;
-
-import org.eclipse.persistence.jaxb.JAXBContextProperties;
-import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
-import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory;
-import org.openecomp.cl.eelf.LoggerFactory;
-import org.openecomp.crud.exception.CrudException;
-import org.openecomp.crud.logging.CrudServiceMsgs;
-import org.openecomp.crud.util.CrudServiceConstants;
-import org.openecomp.crud.util.FileWatcher;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.JAXBException;
-
-
-public class OxmModelLoader {
-
- private static Map<String, DynamicJAXBContext> versionContextMap
- = new ConcurrentHashMap<String, DynamicJAXBContext>();
- private static Map<String, Timer> timers = new ConcurrentHashMap<String, Timer>();
-
- final static Pattern p = Pattern.compile("aai_oxm_(.*).xml");
-
- private static org.openecomp.cl.api.Logger logger = LoggerFactory.getInstance()
- .getLogger(OxmModelLoader.class.getName());
-
- public synchronized static void loadModels() throws CrudException {
- ClassLoader cl = OxmModelLoader.class.getClassLoader();
- ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(cl);
- Resource[] resources;
- try {
- resources = resolver.getResources("classpath*:/oxm/aai_oxm*.xml");
- } catch (IOException ex) {
- logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, ex.getMessage());
- throw new CrudException("", Status.NOT_FOUND);
- }
-
- if (resources.length == 0) {
- logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, "No OXM schema files found on classpath");
- throw new CrudException("Failed to load schema", Status.NOT_FOUND);
- }
-
- for (Resource resource : resources) {
- Matcher matcher = p.matcher(resource.getFilename());
-
- if (matcher.matches()) {
- try {
- OxmModelLoader.loadModel(matcher.group(1), resource);
- } catch (Exception e) {
- logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, "Failed to load " + resource.getFilename()
- + ": " + e.getMessage());
- throw new CrudException("Failed to load schema", Status.NOT_FOUND);
- }
- }
- }
- }
-
- private static void addtimer(String version, File file) {
- TimerTask task = null;
- task = new FileWatcher(
- file) {
- protected void onChange(File file) {
- // here we implement the onChange
- logger.info(CrudServiceMsgs.OXM_FILE_CHANGED, file.getName());
-
- try {
- OxmModelLoader.loadModel(version, file);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
- };
-
- if (!timers.containsKey(version)) {
- Timer timer = new Timer("oxm-" + version);
- timer.schedule(task, new Date(), 10000);
- timers.put(version, timer);
-
- }
- }
-
- private synchronized static void loadModel(String version, File file)
- throws JAXBException, IOException {
- InputStream inputStream = new FileInputStream(file);
- loadModel(version, file.getName(), inputStream);
- addtimer(version, file);
- }
-
- private synchronized static void loadModel(String version, Resource resource)
- throws JAXBException, IOException {
- InputStream inputStream = resource.getInputStream();
- loadModel(version, resource.getFilename(), inputStream);
- }
-
- private synchronized static void loadModel(String version, String resourceName,
- InputStream inputStream)
- throws JAXBException, IOException {
- Map<String, Object> properties = new HashMap<String, Object>();
- properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, inputStream);
- final DynamicJAXBContext jaxbContext = DynamicJAXBContextFactory
- .createContextFromOXM(Thread.currentThread().getContextClassLoader(), properties);
- versionContextMap.put(version, jaxbContext);
- logger.info(CrudServiceMsgs.LOADED_OXM_FILE, resourceName);
- }
-
- public static DynamicJAXBContext getContextForVersion(String version) throws CrudException {
- if (versionContextMap == null || versionContextMap.isEmpty()) {
- loadModels();
- } else if (!versionContextMap.containsKey(version)) {
- try {
- loadModel(version, new File(CrudServiceConstants.CRD_HOME_MODEL + "aai_oxm_"
- + version + ".xml"));
- } catch (Exception e) {
- throw new CrudException("", Status.NOT_FOUND);
- }
- }
-
- return versionContextMap.get(version);
- }
-
- public static Map<String, DynamicJAXBContext> getVersionContextMap() {
- return versionContextMap;
- }
-
- public static void setVersionContextMap(Map<String, DynamicJAXBContext> versionContextMap) {
- OxmModelLoader.versionContextMap = versionContextMap;
- }
-
-}
diff --git a/src/main/java/org/openecomp/schema/OxmModelValidator.java b/src/main/java/org/openecomp/schema/OxmModelValidator.java
index 45a2597..0ae3e13 100644
--- a/src/main/java/org/openecomp/schema/OxmModelValidator.java
+++ b/src/main/java/org/openecomp/schema/OxmModelValidator.java
@@ -32,6 +32,7 @@ import org.eclipse.persistence.internal.helper.DatabaseField;
import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.oxm.XMLField;
+import org.onap.aaiutils.oxm.OxmModelLoader;
import org.openecomp.crud.entity.Vertex;
import org.openecomp.crud.exception.CrudException;
import org.openecomp.crud.util.CrudServiceUtil;
@@ -74,7 +75,12 @@ public class OxmModelValidator {
Map<String, String> filter)
throws CrudException {
- DynamicJAXBContext jaxbContext = OxmModelLoader.getContextForVersion(version);
+ DynamicJAXBContext jaxbContext = null;
+ try {
+ jaxbContext = OxmModelLoader.getContextForVersion(version);
+ } catch (Exception e) {
+ throw new CrudException(e);
+ }
Map<String, Object> result = new HashMap<String, Object>();
if (jaxbContext == null) {
@@ -107,7 +113,12 @@ public class OxmModelValidator {
public static String resolveCollectionType(String version, String type) throws CrudException {
- DynamicJAXBContext jaxbContext = OxmModelLoader.getContextForVersion(version);
+ DynamicJAXBContext jaxbContext = null;
+ try {
+ jaxbContext = OxmModelLoader.getContextForVersion(version);
+ } catch (Exception e) {
+ throw new CrudException(e);
+ }
if (jaxbContext == null) {
throw new CrudException("", Status.NOT_FOUND);
diff --git a/src/test/java/org/openecomp/schema/OxmModelLoaderTest.java b/src/test/java/org/openecomp/schema/OxmModelLoaderTest.java
deleted file mode 100644
index 4f2fb04..0000000
--- a/src/test/java/org/openecomp/schema/OxmModelLoaderTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.openecomp.schema;
-
-import org.junit.Test;
-import org.openecomp.crud.exception.CrudException;
-
-import static org.junit.Assert.assertTrue;
-
-
-public class OxmModelLoaderTest {
-
- @Test
- public void loadModels() {
- try {
- OxmModelLoader.loadModels();
- } catch (CrudException e) {
- e.printStackTrace();
- assertTrue(false);
- }
- assertTrue(OxmModelLoader.getVersionContextMap().size() > 0);
- }
-}