Split out Titan specific dependencies from core 21/8321/1
authorabatos <adrian.batos-parac@amdocs.com>
Tue, 22 Aug 2017 18:23:21 +0000 (14:23 -0400)
committerabatos <adrian.batos-parac@amdocs.com>
Tue, 22 Aug 2017 19:33:04 +0000 (15:33 -0400)
Remove the Titan specific references within the gizmo core and prepare
for dependency on new champ core library.

Change-Id: I29a4e7b6528e8357715b095d8db5456cd01eb636
Issue-ID: AAI-21
Signed-off-by: abatos <adrian.batos-parac@amdocs.com>
janus-deps-pom.xml [new file with mode: 0644]
pom.xml
src/main/ajsc/crud-api_v1/crud-api/v1/routes/crud.route
src/main/bin/start.sh
src/main/docker/Dockerfile
src/main/java/org/openecomp/crud/dao/champ/ChampDao.java
src/main/java/org/openecomp/crud/logging/CrudServiceMsgs.java
src/main/java/org/openecomp/crud/service/CrudGraphDataService.java
src/main/resources/logging/CrudServiceMsgs.properties
src/test/java/org/openecomp/crud/dao/champ/ChampDaoTest.java
titan-deps-pom.xml [new file with mode: 0644]

diff --git a/janus-deps-pom.xml b/janus-deps-pom.xml
new file mode 100644 (file)
index 0000000..7a0cd77
--- /dev/null
@@ -0,0 +1,90 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.test</groupId>
+  <artifactId>myjanus</artifactId>
+  <version>0.0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  
+  <dependencies>
+               
+               <dependency>
+               <groupId>org.openecomp.aai</groupId>
+                       <artifactId>champ-janus</artifactId>
+                       <version>1.1.1-AMDOCS-SNAPSHOT</version>
+               </dependency>
+               <dependency>
+            <groupId>org.janusgraph</groupId>
+            <artifactId>janusgraph-cassandra</artifactId>
+            <version>0.1.1</version>
+            <optional>true</optional>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tinkerpop</groupId>
+                    <artifactId>gremlin-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tinkerpop</groupId>
+                    <artifactId>gremlin-groovy</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.janusgraph</groupId>
+            <artifactId>janusgraph-hbase</artifactId>
+            <version>0.1.1</version>
+            <optional>true</optional>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.tinkerpop</groupId>
+                    <artifactId>gremlin-groovy</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tinkerpop</groupId>
+                    <artifactId>gremlin-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+                             
+       </dependencies>
+       <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>3.0.1</version>
+        <executions>
+          <execution>
+            <id>copy-dependencies</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/graph-deps/janus-deps</outputDirectory>
+              <overWriteReleases>false</overWriteReleases>
+              <overWriteSnapshots>false</overWriteSnapshots>
+              <overWriteIfNewer>true</overWriteIfNewer>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+       
+</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d16e93c..99dd62b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
             <version>2.6.2</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.thinkaurelius.titan</groupId>
-            <artifactId>titan-cassandra</artifactId>
-            <version>1.0.0</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.tinkerpop</groupId>
-                    <artifactId>gremlin-groovy</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>ch.qos.logback</groupId>
-                    <artifactId>logback-classic</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.tinkerpop</groupId>
-                    <artifactId>gremlin-core</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>com.thinkaurelius.titan</groupId>
-            <artifactId>titan-hbase</artifactId>
-            <version>1.0.0</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.tinkerpop</groupId>
-                    <artifactId>gremlin-groovy</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>ch.qos.logback</groupId>
-                    <artifactId>logback-classic</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.tinkerpop</groupId>
-                    <artifactId>gremlin-core</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-client</artifactId>
-            <version>1.0.2</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
         <!-- Common logging framework -->
         <dependency>
           <groupId>org.openecomp.aai.logging-service</groupId>
                 </exclusion>
             </exclusions>
         </dependency>
+        
+        <!-- TEST Dependencies -->
+               
+               <dependency>
+            <groupId>org.apache.tinkerpop</groupId>
+            <artifactId>tinkergraph-gremlin</artifactId>
+            <version>3.2.3</version>
+            <scope>test</scope>
+        </dependency>
 
-        <!-- Since for some reason the Champ library marks this artifact as an
-            'optional' dependency, we don't get it as a transitive dependency, even though
-            we are guaranteed No-Clas-Def errors if we don't have it on the class path,
-            so... we need to explicitly include it ourselves... -->
         <dependency>
-            <groupId>com.thinkaurelius.titan</groupId>
-            <artifactId>titan-cassandra</artifactId>
-            <version>1.0.0</version>
+               <groupId>org.apache.tinkerpop</groupId>
+            <artifactId>gremlin-core</artifactId> 
+            <version>3.2.3</version>
+            <scope>test</scope>
             <exclusions>
               <exclusion>
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>jcl-over-slf4j</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
index 185aa6a..65420a3 100644 (file)
@@ -1,4 +1,4 @@
 <route xmlns="http://camel.apache.org/schema/spring" trace="true">
   <from uri="att-dme2-servlet:///inventory?matchOnUriPrefix=true" />
-  <to uri="cxfbean:crudServices" />
+  <to uri="cxfbean:crudRestService" />
 </route>
\ No newline at end of file
index 8a68460..003852f 100644 (file)
@@ -39,6 +39,24 @@ fi
 CLASSPATH="$AJSC_HOME/lib/*"
 CLASSPATH="$CLASSPATH:$AJSC_HOME/extJars/"
 CLASSPATH="$CLASSPATH:$AJSC_HOME/etc/"
+
+# Check to see if the provided implementation exists in the image and add it to the classpath
+for file in $( find ${BASEDIR}graph-deps/* -maxdepth 0 -type d ); do
+        CURRIMPL=$(echo $file | cut -d"/" -f6)
+        if [ "x$GRAPHIMPL" = "x$CURRIMPL" ]; then
+                CLASSPATH_GRAPHIMPL=$file
+                echo "Setting up graph implementation of $GRAPHIMPL"
+        else
+                SUPPORTED_GRAPHIMPL="$SUPPORTED_GRAPHIMPL $CURRIMPL"
+        fi
+done
+if [ -n "$CLASSPATH_GRAPHIMPL" ]; then
+        cp $CLASSPATH_GRAPHIMPL/* $AJSC_HOME/extJars/
+else
+        echo "Configured graph implementation '$GRAPHIMPL' is not supported. Acceptable implementations are one of: $SUPPORTED_GRAPHIMPL"
+        exit 1
+fi
+
 PROPS="-DAJSC_HOME=$AJSC_HOME"
 PROPS="$PROPS -DAJSC_CONF_HOME=$BASEDIR/bundleconfig/"
 PROPS="$PROPS -Dlogback.configurationFile=$BASEDIR/bundleconfig/etc/logback.xml"
index e4459d1..c342772 100644 (file)
@@ -2,6 +2,7 @@ FROM ubuntu:14.04
 
 ARG MICRO_HOME=/opt/app/crud-api
 ARG BIN_HOME=$MICRO_HOME/bin
+ARG GRAPHLIB_HOME=$MICRO_HOME/graph-deps
 
 RUN apt-get update
 
@@ -16,6 +17,8 @@ RUN export JAVA_HOME
 # Build up the deployment folder structure
 RUN mkdir -p $MICRO_HOME
 ADD swm/package/nix/dist_files/appl/crud-api/* $MICRO_HOME/
+RUN mkdir -p $GRAPHLIB_HOME
+ADD graph-deps $GRAPHLIB_HOME
 RUN mkdir -p $BIN_HOME
 COPY *.sh $BIN_HOME
 RUN chmod 755 $BIN_HOME/*
index c8a68e7..5e9d10a 100644 (file)
  */
 package org.openecomp.crud.dao.champ;
 
-import org.openecomp.aai.champ.ChampAPI;
-import org.openecomp.aai.champ.ChampGraph;
-import org.openecomp.aai.champ.exceptions.ChampMarshallingException;
-import org.openecomp.aai.champ.exceptions.ChampObjectNotExistsException;
-import org.openecomp.aai.champ.exceptions.ChampRelationshipNotExistsException;
-import org.openecomp.aai.champ.exceptions.ChampSchemaViolationException;
-import org.openecomp.aai.champ.exceptions.ChampUnmarshallingException;
-import org.openecomp.aai.champ.graph.impl.TitanChampGraphImpl;
-import org.openecomp.aai.champ.model.ChampObject;
-import org.openecomp.aai.champ.model.ChampRelationship;
-import org.openecomp.aai.champ.model.fluent.object.ObjectBuildOrPropertiesStep;
+import org.openecomp.aai.champcore.ChampGraph;
+import org.openecomp.aai.champcore.exceptions.ChampMarshallingException;
+import org.openecomp.aai.champcore.exceptions.ChampObjectNotExistsException;
+import org.openecomp.aai.champcore.exceptions.ChampRelationshipNotExistsException;
+import org.openecomp.aai.champcore.exceptions.ChampSchemaViolationException;
+import org.openecomp.aai.champcore.exceptions.ChampTransactionException;
+import org.openecomp.aai.champcore.exceptions.ChampUnmarshallingException;
+import org.openecomp.aai.champcore.model.ChampObject;
+import org.openecomp.aai.champcore.model.ChampRelationship;
+import org.openecomp.aai.champcore.model.fluent.object.ObjectBuildOrPropertiesStep;
 import org.openecomp.cl.api.Logger;
 import org.openecomp.cl.eelf.LoggerFactory;
 import org.openecomp.crud.dao.GraphDao;
@@ -47,8 +46,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.Properties;
-import java.util.Random;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -81,11 +78,6 @@ public class ChampDao implements GraphDao {
     DSE
   }
   
-  /**
-   * Set of configuration properties for the DAI.
-   */
-  private Properties daoConfig;
-
   /**
    * Instance of the API used for interacting with the Champ library.
    */
@@ -97,20 +89,12 @@ public class ChampDao implements GraphDao {
   /**
    * Creates a new instance of the ChampDao.
    *
-   * @param config - Set of configuration properties to be applied to this instance
-   *               of the DAO.
+   * @param champGraph - Concrete implementation of the graph dao layer
    */
-  public ChampDao(Properties config) {
-
-    // Store the configuration properties.
-    daoConfig = config;
-
-    // Apply the configuration to the DAO.
-    configure();
-
+  public ChampDao(ChampGraph champGraph) {
+       this.champApi = champGraph;
   }
 
-
   @Override
   public Vertex getVertex(String id, String type) throws CrudException {
 
@@ -635,112 +619,6 @@ public class ChampDao implements GraphDao {
     return edgeBuilder.build();
   }
 
-
-  /**
-   * Performs all one-time configuration operations which are required when creating
-   * a new instance of the DAO.
-   */
-  private void configure() {
-
-    // Instantiate the Champ library API.
-    try {
-
-      // Determine which back end we are using.
-      switch (getBackendTypeFromConfig()) {
-
-        case IN_MEMORY:
-
-          logger.info(CrudServiceMsgs.INSTANTIATE_GRAPH_DAO,
-              "In Memory",
-              daoConfig.getProperty(CONFIG_GRAPH_NAME, DEFAULT_GRAPH_NAME),
-              "Not applicable");
-
-          champApi = ChampGraph.Factory.newInstance(ChampGraph.Type.IN_MEMORY,
-              daoConfig.getProperty(CONFIG_GRAPH_NAME, DEFAULT_GRAPH_NAME));
-
-          break;
-
-        case TITAN:
-          try {
-            String db = daoConfig.getProperty(CONFIG_STORAGE_BACKEND_DB);
-            Short graphIdSuffix = (short) new Random().nextInt(Short.MAX_VALUE);
-            logger.info(CrudServiceMsgs.TITAN_GRAPH_INFO, GRAPH_UNQ_INSTANCE_ID_SUFFIX
-                + ": = " + graphIdSuffix);
-            if (db.equalsIgnoreCase(STORAGE_CASSANDRA_DB)) {
-              logger.info(CrudServiceMsgs.INSTANTIATE_GRAPH_DAO, "Titan with cassandra backend",
-                  daoConfig.getProperty(CONFIG_GRAPH_NAME, DEFAULT_GRAPH_NAME),
-                  daoConfig.getProperty(CONFIG_STORAGE_HOSTNAMES));
-
-              TitanChampGraphImpl.Builder champApiBuilder =
-                  new TitanChampGraphImpl.Builder(daoConfig.getProperty(CONFIG_GRAPH_NAME,
-                      DEFAULT_GRAPH_NAME))
-                      .property("storage.backend", "cassandrathrift")
-                      .property(GRAPH_UNQ_INSTANCE_ID_SUFFIX, graphIdSuffix)
-                      .property("storage.hostname", daoConfig.get(CONFIG_STORAGE_HOSTNAMES));
-
-              if (daoConfig.containsKey(CONFIG_EVENT_STREAM_PUBLISHER)) {
-                champApiBuilder.property("champ.event.stream.publisher",
-                    daoConfig.get(CONFIG_EVENT_STREAM_PUBLISHER));
-              }
-
-              if (daoConfig.containsKey(CONFIG_EVENT_STREAM_NUM_PUBLISHERS)) {
-                champApiBuilder.property("champ.event.stream.publisher-pool-size",
-                    daoConfig.get(CONFIG_EVENT_STREAM_NUM_PUBLISHERS));
-              }
-
-              champApi = champApiBuilder.build();
-
-            } else if (db.equalsIgnoreCase(STORAGE_HBASE_DB)) {
-
-              logger.info(CrudServiceMsgs.INSTANTIATE_GRAPH_DAO, "Titan with Hbase backend",
-                  daoConfig.getProperty(CONFIG_GRAPH_NAME, DEFAULT_GRAPH_NAME),
-                  daoConfig.getProperty(CONFIG_STORAGE_HOSTNAMES));
-              TitanChampGraphImpl.Builder champApiBuilder =
-                  new TitanChampGraphImpl.Builder(daoConfig
-                      .getProperty(CONFIG_GRAPH_NAME, DEFAULT_GRAPH_NAME))
-                      .property("storage.backend", "hbase")
-                      .property("storage.hbase.ext.zookeeper.znode.parent",
-                          daoConfig.get(CONFIG_HBASE_ZNODE_PARENT))
-                      .property("storage.port", daoConfig.get(CONFIG_STORAGE_PORT))
-                      .property(GRAPH_UNQ_INSTANCE_ID_SUFFIX, graphIdSuffix)
-                      .property("storage.hostname", daoConfig.get(CONFIG_STORAGE_HOSTNAMES));
-
-              if (daoConfig.containsKey(CONFIG_EVENT_STREAM_PUBLISHER)) {
-                champApiBuilder.property("champ.event.stream.publisher",
-                    daoConfig.get(CONFIG_EVENT_STREAM_PUBLISHER));
-              }
-
-              if (daoConfig.containsKey(CONFIG_EVENT_STREAM_NUM_PUBLISHERS)) {
-                champApiBuilder.property("champ.event.stream.publisher-pool-size",
-                    daoConfig.get(CONFIG_EVENT_STREAM_NUM_PUBLISHERS));
-              }
-              champApi = champApiBuilder.build();
-            } else {
-              logger.error(CrudServiceMsgs.INVALID_GRAPH_BACKEND,
-                  daoConfig.getProperty(CONFIG_STORAGE_BACKEND_DB));
-            }
-
-          } catch (com.thinkaurelius.titan.core.TitanException e) {
-
-            logger.error(CrudServiceMsgs.INSTANTIATE_GRAPH_BACKEND_ERR, "Titan", e.getMessage());
-          }
-
-
-          break;
-
-        default:
-          logger.error(CrudServiceMsgs.INVALID_GRAPH_BACKEND,
-              daoConfig.getProperty(CONFIG_STORAGE_BACKEND));
-          break;
-      }
-
-    } catch (CrudException e) {
-      logger.error(CrudServiceMsgs.INSTANTIATE_GRAPH_BACKEND_ERR,
-          daoConfig.getProperty(CONFIG_STORAGE_BACKEND), e.getMessage());
-    }
-  }
-
-
   /**
    * Performs any necessary shut down operations when the DAO is no longer needed.
    */
@@ -753,30 +631,4 @@ public class ChampDao implements GraphDao {
       champApi.shutdown();
     }
   }
-
-
-  /**
-   * This helper function converts the 'graph back end type' config parameter into the
-   * corresponding {@link ChampAPI.Type}.
-   *
-   * @return - A {@link ChampAPI.Type}
-   * @throws CrudException
-   */
-  private GraphType getBackendTypeFromConfig() throws CrudException {
-
-    // Get the back end type from the DAO's configuration properties.
-    String backend = daoConfig.getProperty(CONFIG_STORAGE_BACKEND, "in-memory");
-
-    // Now, find the appropriate ChampAPI type and return it.
-    if (backend.equals("in-memory")) {
-      return GraphType.IN_MEMORY;
-    } else if (backend.equals("titan")) {
-      return GraphType.TITAN;
-    }
-
-    // If we are here, then whatever was in the config properties didn't match to a supported
-    // back end type, so just throw an exception and let the caller figure it out.
-    throw new CrudException("Invalid graph backend type '" + backend + "' specified.",
-        javax.ws.rs.core.Response.Status.BAD_REQUEST);
-  }
 }
index 71fb14b..265f327 100644 (file)
@@ -60,16 +60,6 @@ public enum CrudServiceMsgs implements LogMessageEnum {
    */
   OXM_LOAD_ERROR,
 
-  /**
-   * Instantiate data access layer for graph data store type: {0} graph: {1} using hosts: {2}
-   *
-   * <p>Arguments:
-   * {0} = Graph data store technology type
-   * {1} = Graph name
-   * {2} = Hosts list
-   */
-  INSTANTIATE_GRAPH_DAO,
-
   /**
    * Stopping ChampDAO...
    *
@@ -77,23 +67,6 @@ public enum CrudServiceMsgs implements LogMessageEnum {
    */
   STOPPING_CHAMP_DAO,
 
-  /**
-   * Unsupported graph database {0} specified.
-   *
-   * <p>Arguments:
-   * {0} = Graph database back end.
-   */
-  INVALID_GRAPH_BACKEND,
-
-  /**
-   * Failure instantiating {0} graph database backend.  Cause: {1}
-   *
-   * <p>Arguments:
-   * {0} - Graph database type.
-   * {1} - Failure cause.
-   */
-  INSTANTIATE_GRAPH_BACKEND_ERR,
-
   /**
    * Failure instantiating CRUD Rest Service.  Cause: {0}
    *
@@ -102,14 +75,6 @@ public enum CrudServiceMsgs implements LogMessageEnum {
    */
   INSTANTIATE_AUTH_ERR,
 
-  /**
-   * Any info log related to titan graph
-   *
-   * <p>Arguments:
-   * {0} - Info.
-   */
-  TITAN_GRAPH_INFO,
-  
   /**
    * Arguments:
    * {0} Opertaion
index 8693505..e6d6748 100644 (file)
  */
 package org.openecomp.crud.service;
 
-import org.onap.aai.event.api.EventPublisher;
-
+import org.openecomp.aai.champcore.ChampGraph;
 import org.openecomp.crud.dao.GraphDao;
 import org.openecomp.crud.dao.champ.ChampDao;
 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.crud.util.CrudProperties;
-import org.openecomp.crud.util.CrudServiceConstants;
 import org.openecomp.schema.OxmModelLoader;
 import org.openecomp.schema.OxmModelValidator;
 import org.openecomp.schema.RelationshipSchemaLoader;
@@ -40,42 +37,14 @@ import org.openecomp.schema.RelationshipSchemaValidator;
 
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 
 public class CrudGraphDataService {
 
   private GraphDao dao;
 
-  public CrudGraphDataService(EventPublisher champEventPublisher) throws CrudException {
-
-    // Configure the GraphDao and wire it
-    Properties champProperties = new Properties();
-    champProperties.put(ChampDao.CONFIG_STORAGE_BACKEND, "titan");
-    champProperties.put(ChampDao.CONFIG_STORAGE_BACKEND_DB,
-        CrudProperties.get(CrudServiceConstants.CRD_STORAGE_BACKEND_DB, "hbase"));
-    champProperties.put(ChampDao.CONFIG_STORAGE_HOSTNAMES,
-        CrudProperties.get(CrudServiceConstants.CRD_GRAPH_HOST));
-    champProperties.put(ChampDao.CONFIG_STORAGE_PORT,
-        CrudProperties.get(CrudServiceConstants.CRD_GRAPH_PORT, "2181"));
-    champProperties.put(ChampDao.CONFIG_HBASE_ZNODE_PARENT,
-        CrudProperties.get(CrudServiceConstants.CRD_HBASE_ZNODE_PARENT, "/hbase-unsecure"));
-
-    if (CrudProperties.get("crud.graph.name") != null) {
-      champProperties.put(ChampDao.CONFIG_GRAPH_NAME, CrudProperties.get("crud.graph.name"));
-    }
-
-    if (champEventPublisher != null) {
-      champProperties.put(ChampDao.CONFIG_EVENT_STREAM_PUBLISHER, champEventPublisher);
-    }
-
-    if (CrudProperties.get(ChampDao.CONFIG_EVENT_STREAM_NUM_PUBLISHERS) != null) {
-      champProperties.put(ChampDao.CONFIG_EVENT_STREAM_NUM_PUBLISHERS,
-          Integer.parseInt(CrudProperties.get(ChampDao.CONFIG_EVENT_STREAM_NUM_PUBLISHERS)));
-    }
-
-    ChampDao champDao = new ChampDao(champProperties);
+  public CrudGraphDataService(ChampGraph graphImpl) throws CrudException {
 
-    this.dao = champDao;
+       this.dao = new ChampDao(graphImpl);
 
     //load the schemas
     OxmModelLoader.loadModels();
index 850574f..13554e5 100644 (file)
@@ -42,22 +42,10 @@ INVALID_OXM_DIR=\
             CRD0005I|\
             Invalid OXM dir: {0}\
       
-INSTANTIATE_GRAPH_DAO=\
-            CRD0006I|\
-            Instantiate data access layer for graph data store type: {0} graph: {1} using hosts: {2}
-
 LOADED_OXM_FILE=\
             CRD0007I|\
             Successfully loaded schema: {0}
 
-INVALID_GRAPH_BACKEND=\
-            CRD0301E|\
-            Unsupported graph database {0} specified.
-
-INSTANTIATE_GRAPH_BACKEND_ERR=\
-            CRD0302E|\
-            Failure instantiating {0} graph database backend.  Cause: {1}           
-
 EXCEPTION_DURING_METHOD_CALL=\
             CRD0502E|\
             Failed to {0} request for {1} due to: {2}|\
@@ -67,9 +55,3 @@ EXCEPTION_DURING_METHOD_CALL=\
 OXM_LOAD_ERROR=\
             CRD0503E|\
             Unable to load OXM schema: {0}
-
-
-TITAN_GRAPH_INFO=\
-            CRD0504I|\
-            Titan Graph Info: {0}
-                   
\ No newline at end of file
index b11e274..a895066 100644 (file)
@@ -35,10 +35,10 @@ public class ChampDaoTest {
 
     // Create an instance of the Champ DAO, backed by the Champ library's in-memory back end
     // for testing purposes.
-    Properties champDaoProperties = new Properties();
+         Map<String, Object> champDaoProperties = new HashMap<String, Object>();
     champDaoProperties.put(ChampDao.CONFIG_STORAGE_BACKEND, "in-memory");
     champDaoProperties.put(ChampDao.CONFIG_GRAPH_NAME, GRAPH_NAME);
-    champDao = new ChampDao(champDaoProperties);
+    champDao = new ChampDao(new InMemoryChampGraphImpl.Builder().properties(champDaoProperties).build());
   }
 
 
diff --git a/titan-deps-pom.xml b/titan-deps-pom.xml
new file mode 100644 (file)
index 0000000..869c9a1
--- /dev/null
@@ -0,0 +1,89 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.test</groupId>
+  <artifactId>mytitan</artifactId>
+  <version>0.0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  
+  <dependencies>
+               
+               
+                       <dependency>
+                       <groupId>org.openecomp.aai</groupId>
+                               <artifactId>champ-titan</artifactId>
+                               <version>1.1.1-AMDOCS-SNAPSHOT</version>
+                       </dependency>
+                       <dependency>
+                       <groupId>com.thinkaurelius.titan</groupId>
+                       <artifactId>titan-cassandra</artifactId>
+                       <version>1.0.0</version>                        
+                       <exclusions>
+                               <exclusion>
+                                       <groupId>org.apache.tinkerpop</groupId>
+                                       <artifactId>gremlin-groovy</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>org.slf4j</groupId>
+                                       <artifactId>slf4j-log4j12</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>ch.qos.logback</groupId>
+                                       <artifactId>logback-classic</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>org.apache.tinkerpop</groupId>
+                                       <artifactId>gremlin-core</artifactId>
+                               </exclusion>
+                       </exclusions>
+               </dependency>
+               <dependency>
+                       <groupId>com.thinkaurelius.titan</groupId>
+                       <artifactId>titan-hbase</artifactId>
+                       <version>1.0.0</version>                
+                       <exclusions>
+                               <exclusion>
+                                       <groupId>org.apache.tinkerpop</groupId>
+                                       <artifactId>gremlin-groovy</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>org.slf4j</groupId>
+                                       <artifactId>slf4j-log4j12</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>ch.qos.logback</groupId>
+                                       <artifactId>logback-classic</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>org.apache.tinkerpop</groupId>
+                                       <artifactId>gremlin-core</artifactId>
+                               </exclusion>
+                       </exclusions>
+               </dependency>
+                             
+       </dependencies>
+       <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>3.0.1</version>
+        <executions>
+          <execution>
+            <id>copy-dependencies</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/graph-deps/titan-deps</outputDirectory>
+              <overWriteReleases>false</overWriteReleases>
+              <overWriteSnapshots>false</overWriteSnapshots>
+              <overWriteIfNewer>true</overWriteIfNewer>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+       
+</project>
\ No newline at end of file