Reduce the number of problems in aai-common by removing unused imports
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / dbmap / InMemoryGraph.java
index e5d4c2e..51a2c22 100644 (file)
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.aai.dbmap;
 
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-
 import java.util.Properties;
 
-import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.tinkerpop.gremlin.structure.io.IoCore;
+import org.janusgraph.core.JanusGraph;
+import org.janusgraph.core.JanusGraphFactory;
+import org.janusgraph.core.JanusGraphTransaction;
+import org.janusgraph.core.schema.JanusGraphManagement;
+import org.onap.aai.dbgen.GraphSONPartialIO;
 import org.onap.aai.dbgen.SchemaGenerator;
 import org.onap.aai.logging.LogFormatTools;
-
-import com.thinkaurelius.titan.core.TitanFactory;
-import com.thinkaurelius.titan.core.TitanGraph;
-import com.thinkaurelius.titan.core.TitanTransaction;
-import com.thinkaurelius.titan.core.schema.TitanManagement;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class InMemoryGraph {
 
-       private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(InMemoryGraph.class);
-       private TitanGraph graph = null;
-
-
-       public InMemoryGraph(Builder builder) throws IOException  {
-               /*
-                * Create a In-memory graph
-                */
-               InputStream is = new FileInputStream(builder.propertyFile);
-               try {
-                       graph = TitanFactory.open(builder.propertyFile);
-                       
-                       Properties graphProps = new Properties();
-                       graphProps.load(is);
-                       TitanManagement graphMgt = graph.openManagement();
-            if(builder.isSchemaEnabled){
-               LOGGER.info("Schema Enabled");
-               SchemaGenerator.loadSchemaIntoTitan(graph, graphMgt);
+    private static final Logger LOGGER = LoggerFactory.getLogger(InMemoryGraph.class);
+    private JanusGraph graph = null;
+
+    public InMemoryGraph(Builder builder) throws IOException {
+        /*
+         * Create a In-memory graph
+         */
+        try (InputStream is = new FileInputStream(builder.propertyFile)) {
+            graph = JanusGraphFactory.open(builder.propertyFile);
+
+            Properties graphProps = new Properties();
+            graphProps.load(is);
+            JanusGraphManagement graphMgt = graph.openManagement();
+            if (builder.isSchemaEnabled) {
+                LOGGER.info("Schema Enabled");
+                SchemaGenerator.loadSchemaIntoJanusGraph(graphMgt, graphProps.getProperty("storage.backend"));
+            }
+            try (JanusGraphTransaction transaction = graph.newTransaction()) {
+                LOGGER.info("Loading snapshot");
+                if (builder.isPartialGraph) {
+                    if ((builder.graphsonLocation != null) && (builder.graphsonLocation.length() > 0)) {
+                        transaction.io(GraphSONPartialIO.build()).readGraph(builder.graphsonLocation);
+                    } else {
+                        transaction.io(GraphSONPartialIO.build()).reader().create().readGraph(builder.seqInputStream,
+                                graph);
+                    }
+                } else {
+                    if ((builder.graphsonLocation != null) && (builder.graphsonLocation.length() > 0)) {
+                        transaction.io(IoCore.graphson()).readGraph(builder.graphsonLocation);
+                    } else {
+                        transaction.io(IoCore.graphson()).reader().create().readGraph(builder.seqInputStream, graph);
+                    }
+                }
+                transaction.commit();
             }
-                       TitanTransaction transaction = graph.newTransaction();
-                       LOGGER.info("Loading snapshot");
-                       transaction.io(IoCore.graphson()).readGraph(builder.graphsonLocation);
-                       transaction.commit();
-                       
-               } catch (Exception e) {
-                       // TODO : Changesysout to logger
-                       LOGGER.error(
-                                       "ERROR: Could not load datasnapshot to in memory graph. \n" + LogFormatTools.getStackTop(e));
-                       throw new IllegalStateException("Could not load datasnapshot to in memory graph");
-
-               }
-               finally{
-                       is.close();
-               }
-
-       }
-
-       public static class Builder {
-               private String graphsonLocation = "";
-               private String propertyFile = "";
-               private boolean isSchemaEnabled = false;
-
-               /*
-                * Builder constructor doesnt do anything
-                */
-               public Builder() {
-                       //Do nothing
-               }
-
-               public InMemoryGraph build(String graphsonFile, String propertyFile, boolean isSchemaEnabled) throws IOException {
-                       this.graphsonLocation = graphsonFile;
-                       this.propertyFile = propertyFile;
-                       this.isSchemaEnabled = isSchemaEnabled;
-                       return new InMemoryGraph(this);
-               }
-       }
-
-       public TitanGraph getGraph() {
-               return graph;
-       }
+
+        } catch (Exception e) {
+            LOGGER.error(String.format("ERROR: Could not load datasnapshot to in memory graph. %n%s",
+                    LogFormatTools.getStackTop(e)));
+            throw new IllegalStateException("Could not load datasnapshot to in memory graph");
+
+        }
+
+    }
+
+    public static class Builder {
+        private String graphsonLocation = "";
+        private String propertyFile = "";
+        private boolean isSchemaEnabled = false;
+        private InputStream seqInputStream = null;
+        private boolean isPartialGraph = false;
+
+        /*
+         * Builder constructor doesnt do anything
+         */
+        public Builder() {
+            // Do nothing
+        }
+
+        public InMemoryGraph build(String graphsonFile, String propertyFile, boolean isSchemaEnabled)
+                throws IOException {
+            this.graphsonLocation = graphsonFile;
+            this.propertyFile = propertyFile;
+            this.isSchemaEnabled = isSchemaEnabled;
+            return new InMemoryGraph(this);
+        }
+
+        public InMemoryGraph build(InputStream sis, String propertyFile, boolean isSchemaEnabled) throws IOException {
+            this.graphsonLocation = null;
+            this.propertyFile = propertyFile;
+            this.isSchemaEnabled = isSchemaEnabled;
+            this.seqInputStream = sis;
+            return new InMemoryGraph(this);
+        }
+
+        public InMemoryGraph build(String graphsonFile, String propertyFile, boolean isSchemaEnabled,
+                boolean isPartialGraph) throws IOException {
+            this.graphsonLocation = graphsonFile;
+            this.propertyFile = propertyFile;
+            this.isSchemaEnabled = isSchemaEnabled;
+            this.isPartialGraph = isPartialGraph;
+            return new InMemoryGraph(this);
+        }
+
+        public InMemoryGraph build(InputStream sis, String propertyFile, boolean isSchemaEnabled,
+                boolean isPartialGraph) throws IOException {
+            this.graphsonLocation = null;
+            this.propertyFile = propertyFile;
+            this.isSchemaEnabled = isSchemaEnabled;
+            this.seqInputStream = sis;
+            this.isPartialGraph = isPartialGraph;
+            return new InMemoryGraph(this);
+        }
+    }
+
+    public JanusGraph getGraph() {
+        return graph;
+    }
 
 }