Replace OxmModelLoader with aaiutils 71/10371/1
authorDaniel Silverthorn <daniel.silverthorn@amdocs.com>
Tue, 5 Sep 2017 15:38:41 +0000 (11:38 -0400)
committerDaniel Silverthorn <daniel.silverthorn@amdocs.com>
Tue, 5 Sep 2017 15:39:51 +0000 (11:39 -0400)
Issue ID: AAI-245
Change-Id: I38312e114a221686834303a81e6e21a49ee27b2a
Signed-off-by: Daniel Silverthorn <daniel.silverthorn@amdocs.com>
pom.xml
src/main/java/org/openecomp/crud/service/CrudGraphDataService.java
src/main/java/org/openecomp/schema/OxmModelLoader.java [deleted file]
src/main/java/org/openecomp/schema/OxmModelValidator.java
src/test/java/org/openecomp/schema/OxmModelLoaderTest.java [deleted file]

diff --git a/pom.xml b/pom.xml
index 8704324..b6891b9 100644 (file)
--- a/pom.xml
+++ b/pom.xml
           <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>
index a8c0248..f38fe0f 100644 (file)
@@ -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 (file)
index 4ef77a2..0000000
+++ /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;
-  }
-
-}
index 45a2597..0ae3e13 100644 (file)
@@ -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 (file)
index 4f2fb04..0000000
+++ /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);
-  }
-}