Merge blueprints-ramcloud-graph into ONOS code
diff --git a/src/apps/java/com/tinkerpop/blueprints/impls/ramcloud/FurnaceExamples.java b/src/apps/java/com/tinkerpop/blueprints/impls/ramcloud/FurnaceExamples.java
new file mode 100644
index 0000000..66cf8ea
--- /dev/null
+++ b/src/apps/java/com/tinkerpop/blueprints/impls/ramcloud/FurnaceExamples.java
@@ -0,0 +1,57 @@
+package com.tinkerpop.blueprints.impls.ramcloud;
+
+import java.util.logging.Level;
+
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.furnace.generators.CommunityGenerator;
+import com.tinkerpop.furnace.generators.DistributionGenerator;
+import com.tinkerpop.furnace.generators.NormalDistribution;
+
+public class FurnaceExamples {
+
+  public FurnaceExamples() {
+    // TODO Auto-generated constructor stub
+  }
+
+  public static int generateCommunityGraph(Graph graph, String label) {
+    CommunityGenerator cg = new CommunityGenerator(label);
+    int numEdges;
+    
+    for(int i = 0; i<30; i++) {
+      graph.addVertex(null);
+    }
+    
+    cg.setCommunityDistribution(new NormalDistribution(2.0));
+    cg.setDegreeDistribution(new NormalDistribution(2.0));
+    numEdges = cg.generate(graph, 3, 60);
+    
+    return numEdges;
+  }
+  
+  public static int generateDistributionGraph(Graph graph, String label) {
+    DistributionGenerator dg = new DistributionGenerator(label);
+    int numEdges;
+    
+    for(int i = 0; i<10; i++) {
+      graph.addVertex(null);
+    }
+    
+    dg.setAllowLoops(true);
+    dg.setInDistribution(new NormalDistribution(2.0));
+    dg.setOutDistribution(new NormalDistribution(2.0));
+    numEdges = dg.generate(graph, 20);
+    
+    return numEdges;
+  }
+  
+  public static void main(String[] args) {
+    Graph graph = new RamCloudGraph(Level.FINER);
+    
+    //generateCommunityGraph(graph, "HippieCommune");
+    
+    //generateDistributionGraph(graph, "HippieRefuge");
+    
+    graph.shutdown();
+  }
+
+}
diff --git a/src/apps/java/com/tinkerpop/blueprints/impls/ramcloud/JUNGExamples.java b/src/apps/java/com/tinkerpop/blueprints/impls/ramcloud/JUNGExamples.java
new file mode 100644
index 0000000..86631b1
--- /dev/null
+++ b/src/apps/java/com/tinkerpop/blueprints/impls/ramcloud/JUNGExamples.java
@@ -0,0 +1,89 @@
+package com.tinkerpop.blueprints.impls.ramcloud;
+
+import java.awt.Dimension;
+import java.util.logging.Level;
+
+import javax.swing.JFrame;
+
+import org.apache.commons.collections15.Transformer;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.Vertex;
+import com.tinkerpop.blueprints.oupls.jung.GraphJung;
+
+import edu.uci.ics.jung.algorithms.layout.BalloonLayout;
+import edu.uci.ics.jung.algorithms.layout.CircleLayout;
+import edu.uci.ics.jung.algorithms.layout.DAGLayout;
+import edu.uci.ics.jung.algorithms.layout.FRLayout;
+import edu.uci.ics.jung.algorithms.layout.FRLayout2;
+import edu.uci.ics.jung.algorithms.layout.ISOMLayout;
+import edu.uci.ics.jung.algorithms.layout.KKLayout;
+import edu.uci.ics.jung.algorithms.layout.Layout;
+import edu.uci.ics.jung.algorithms.scoring.PageRank;
+import edu.uci.ics.jung.visualization.BasicVisualizationServer;
+
+public class JUNGExamples {
+
+  public JUNGExamples() {
+    // TODO Auto-generated constructor stub
+  }
+  
+  public static void calculatePageRank(Graph graph) {
+    PageRank<Vertex,Edge> pageRank = new PageRank<Vertex, Edge>(new GraphJung(graph), 0.15d);
+    pageRank.evaluate();
+    
+    for (Vertex vertex : graph.getVertices()) {
+      System.out.println("The PageRank score of " + vertex + " is: " + pageRank.getVertexScore(vertex));
+    }
+  }
+
+  public static void displayGraph(Graph graph) {
+    GraphJung gj = new GraphJung(graph);
+    
+    Layout<Vertex, Edge> layout = new CircleLayout<Vertex, Edge>(gj);
+    layout.setSize(new Dimension(600, 600));
+    BasicVisualizationServer<Vertex, Edge> viz = new BasicVisualizationServer<Vertex, Edge>(layout);
+    viz.setPreferredSize(new Dimension(650, 650));
+
+    Transformer<Vertex, String> vertexLabelTransformer = new Transformer<Vertex, String>() {
+      public String transform(Vertex vertex) {
+        return (String) vertex.getProperty("name");
+      }
+    };
+
+    Transformer<Edge, String> edgeLabelTransformer = new Transformer<Edge, String>() {
+      public String transform(Edge edge) {
+        return edge.getLabel();
+      }
+    };
+
+    viz.getRenderContext().setEdgeLabelTransformer(edgeLabelTransformer);
+    viz.getRenderContext().setVertexLabelTransformer(vertexLabelTransformer);
+
+    JFrame frame = new JFrame("TinkerPop");
+    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+    frame.getContentPane().add(viz);
+    frame.pack();
+    frame.setVisible(true);
+    
+    try {
+      System.in.read();
+    } catch(Exception e) {
+      // poop
+    }
+  }
+  
+  public static void main(String[] args) {
+    Graph graph = new RamCloudGraph(Level.FINER);
+    
+    FurnaceExamples.generateDistributionGraph(graph, "ex");
+    
+    //calculatePageRank(graph);
+    
+    displayGraph(graph);
+    
+    graph.shutdown();
+  }
+
+}