List of usage examples for org.apache.commons.configuration MapConfiguration MapConfiguration
public MapConfiguration(Map map)
From source file:org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy.java
@Override public Configuration getConfiguration() { final Map<String, Object> map = new HashMap<>(); map.put(GRAPH_COMPUTER, this.computer.getGraphComputerClass().getCanonicalName()); if (-1 != this.computer.getWorkers()) map.put(WORKERS, this.computer.getWorkers()); if (null != this.computer.getPersist()) map.put(PERSIST, this.computer.getPersist().name()); if (null != this.computer.getResultGraph()) map.put(RESULT, this.computer.getResultGraph().name()); if (null != this.computer.getVertices()) map.put(VERTICES, this.computer.getVertices()); if (null != this.computer.getEdges()) map.put(EDGES, this.computer.getEdges()); map.putAll(this.computer.getConfiguration()); return new MapConfiguration(map); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSourceTest.java
@Test public void shouldSupportMapBasedStrategies() throws Exception { GraphTraversalSource g = EmptyGraph.instance().traversal(); assertFalse(g.getStrategies().getStrategy(SubgraphStrategy.class).isPresent()); g = g.withStrategies(SubgraphStrategy.create(new MapConfiguration(new HashMap<String, Object>() { {// w w w . ja v a2s . c om put("vertices", __.hasLabel("person")); put("vertexProperties", __.limit(0)); put("edges", __.hasLabel("knows")); } }))); assertTrue(g.getStrategies().getStrategy(SubgraphStrategy.class).isPresent()); g = g.withoutStrategies(SubgraphStrategy.class); assertFalse(g.getStrategies().getStrategy(SubgraphStrategy.class).isPresent()); // assertFalse(g.getStrategies().getStrategy(ReadOnlyStrategy.class).isPresent()); g = g.withStrategies(ReadOnlyStrategy.instance()); assertTrue(g.getStrategies().getStrategy(ReadOnlyStrategy.class).isPresent()); g = g.withoutStrategies(ReadOnlyStrategy.class); assertFalse(g.getStrategies().getStrategy(ReadOnlyStrategy.class).isPresent()); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategy.java
@Override public Configuration getConfiguration() { final Map<String, Object> map = new HashMap<>(); map.put(STRATEGY, ElementIdStrategy.class.getCanonicalName()); map.put(ID_PROPERTY_KEY, this.idPropertyKey); map.put(ID_MAKER, this.idMaker); return new MapConfiguration(map); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy.java
@Override public Configuration getConfiguration() { final Map<String, Object> map = new HashMap<>(); map.put(STRATEGY, HaltedTraverserStrategy.class.getCanonicalName()); map.put(HALTED_TRAVERSER_FACTORY, this.haltedTraverserFactory.getCanonicalName()); return new MapConfiguration(map); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy.java
@Override public Configuration getConfiguration() { final Map<String, Object> map = new HashMap<>(); map.put(STRATEGY, PartitionStrategy.class.getCanonicalName()); map.put(INCLUDE_META_PROPERTIES, this.includeMetaProperties); if (null != this.writePartition) map.put(WRITE_PARTITION, this.writePartition); if (null != this.readPartitions) map.put(READ_PARTITIONS, this.readPartitions); if (null != this.partitionKey) map.put(PARTITION_KEY, this.partitionKey); return new MapConfiguration(map); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategyProcessTest.java
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE) public void shouldWriteToMultiplePartitions() { final PartitionStrategy partitionStrategyAA = PartitionStrategy.build().partitionKey(partition) .writePartition("A").readPartitions("A").create(); final GraphTraversalSource sourceAA = g.withStrategies(partitionStrategyAA); final PartitionStrategy partitionStrategyBA = PartitionStrategy.build().partitionKey(partition) .writePartition("B").readPartitions("A").create(); final GraphTraversalSource sourceBA = g.withStrategies(partitionStrategyBA); final PartitionStrategy partitionStrategyCAB = PartitionStrategy.build().partitionKey(partition) .writePartition("C").addReadPartition("A").addReadPartition("B").create(); final GraphTraversalSource sourceCAB = g.withStrategies(partitionStrategyCAB); final PartitionStrategy partitionStrategyC = PartitionStrategy.build().partitionKey(partition) .writePartition("C").create(); final GraphTraversalSource sourceC = g.withStrategies(partitionStrategyC); final PartitionStrategy partitionStrategyCA = PartitionStrategy.build().partitionKey(partition) .writePartition("C").readPartitions("A").create(); final GraphTraversalSource sourceCA = g.withStrategies(partitionStrategyCA); final GraphTraversalSource sourceCABC = g .withStrategies(PartitionStrategy.create(new MapConfiguration(new HashMap<String, Object>() { {//from w w w .j a v a 2 s . c om put(PartitionStrategy.WRITE_PARTITION, "C"); put(PartitionStrategy.PARTITION_KEY, partition); put(PartitionStrategy.READ_PARTITIONS, Arrays.asList("A", "B", "C")); } }))); final PartitionStrategy partitionStrategyCC = PartitionStrategy.build().partitionKey(partition) .writePartition("C").addReadPartition("C").create(); final GraphTraversalSource sourceCC = g.withStrategies(partitionStrategyCC); final PartitionStrategy partitionStrategyCBC = PartitionStrategy.build().partitionKey(partition) .writePartition("C").readPartitions(Arrays.asList("B", "C")).create(); final GraphTraversalSource sourceCBC = g.withStrategies(partitionStrategyCBC); final Vertex vA = sourceAA.addV().property("any", "a").next(); final Vertex vAA = sourceAA.addV().property("any", "aa").next(); final Edge eAtoAA = sourceAA.withSideEffect("vAA", vAA).V(vA.id()).addE("aTOa").to("vAA").next(); final Vertex vB = sourceBA.addV().property("any", "b").next(); sourceBA.withSideEffect("vB", vB).V(vA.id()).addE("aTOb").to("vB").next(); final Vertex vC = sourceCAB.addV().property("any", "c").next(); final Edge eBtovC = sourceCAB.withSideEffect("vC", vC).V(vB.id()).addE("bTOc").to("vC").next(); final Edge eAtovC = sourceCAB.withSideEffect("vC", vC).V(vA.id()).addE("aTOc").to("vC").next(); assertEquals(0, IteratorUtils.count(sourceC.V())); assertEquals(0, IteratorUtils.count(sourceC.E())); assertEquals(new Long(2), sourceCA.V().count().next()); assertEquals(new Long(1), sourceCA.E().count().next()); assertEquals(new Long(1), sourceCA.V(vA.id()).outE().count().next()); assertEquals(eAtoAA.id(), sourceCA.V(vA.id()).outE().next().id()); assertEquals(new Long(1), sourceCA.V(vA.id()).out().count().next()); assertEquals(vAA.id(), sourceCA.V(vA.id()).out().next().id()); final Vertex vA1 = sourceCA.V(vA.id()).next(); assertEquals(new Long(1), sourceCA.V(vA1).outE().count().next()); assertEquals(eAtoAA.id(), sourceCA.V(vA1).outE().next().id()); assertEquals(new Long(1), sourceCA.V(vA1).out().count().next()); assertEquals(vAA.id(), sourceCA.V(vA1).out().next().id()); assertEquals(new Long(3), sourceCAB.V().count().next()); assertEquals(new Long(2), sourceCAB.E().count().next()); assertEquals(new Long(4), sourceCABC.V().count().next()); assertEquals(new Long(4), sourceCABC.E().count().next()); assertEquals(1, IteratorUtils.count(sourceCC.V())); // two edges are in the "C" partition, but one each of their incident vertices are not assertEquals(2, IteratorUtils.count(sourceCC.E())); // two edges are in the "C" partition, but one each of their incident vertices are not assertEquals(new Long(2), sourceCC.V(vC.id()).inE().count().next()); assertEquals(new Long(0), sourceCC.V(vC.id()).in().count().next()); // excluded vertices; vA is not in {B,C} assertEquals(new Long(2), sourceCBC.V(vC.id()).inE().count().next()); assertEquals(new Long(1), sourceCBC.V(vC.id()).in().count().next()); assertEquals(vC.id(), sourceCBC.E(eBtovC.id()).inV().id().next()); assertEquals(vB.id(), sourceCBC.E(eBtovC.id()).outV().id().next()); assertEquals(vC.id(), sourceCBC.E(eAtovC.id()).inV().id().next()); assertFalse(sourceCBC.E(eAtovC.id()).outV().hasNext()); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy.java
@Override public Configuration getConfiguration() { final Map<String, Object> map = new HashMap<>(); if (null != this.vertexCriterion) map.put(VERTICES, this.vertexCriterion); if (null != this.edgeCriterion) map.put(EDGES, this.edgeCriterion); if (null != this.vertexPropertyCriterion) map.put(VERTEX_PROPERTIES, this.vertexPropertyCriterion); return new MapConfiguration(map); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategyProcessTest.java
@Test @LoadGraphWith(CREW)/*from w w w . j av a 2 s.c o m*/ public void shouldFilterVertexProperties() throws Exception { GraphTraversalSource sg = g .withStrategies(SubgraphStrategy.create(new MapConfiguration(new HashMap<String, Object>() { { put(SubgraphStrategy.VERTEX_PROPERTIES, __.has("startTime", P.gt(2005))); } }))); checkResults(Arrays.asList("purcellville", "baltimore", "oakland", "seattle", "aachen"), sg.V().properties("location").value()); checkResults(Arrays.asList("purcellville", "baltimore", "oakland", "seattle", "aachen"), sg.V().values("location")); if (sg.getStrategies().getStrategy(InlineFilterStrategy.class).isPresent()) assertFalse(TraversalHelper.hasStepOfAssignableClassRecursively(TraversalFilterStep.class, sg.V().properties("location").value().iterate().asAdmin())); // check to make sure edge properties are not analyzed sg = g.withStrategies(SubgraphStrategy.build().vertexProperties(has("startTime", P.gt(2005))).create()); checkResults(Arrays.asList("purcellville", "baltimore", "oakland", "seattle", "aachen"), sg.V().as("a") .properties("location").as("b").select("a").outE().properties().select("b").value().dedup()); checkResults(Arrays.asList("purcellville", "baltimore", "oakland", "seattle", "aachen"), sg.V().as("a").values("location").as("b").select("a").outE().properties().select("b").dedup()); if (sg.getStrategies().getStrategy(InlineFilterStrategy.class).isPresent()) assertFalse(TraversalHelper.hasStepOfAssignableClassRecursively(TraversalFilterStep.class, sg.V().as("a").values("location").as("b").select("a").outE().properties().select("b").dedup() .iterate().asAdmin())); // sg = g.withStrategies(SubgraphStrategy.build().vertices(has("name", P.neq("stephen"))) .vertexProperties(has("startTime", P.gt(2005))).create()); checkResults(Arrays.asList("baltimore", "oakland", "seattle", "aachen"), sg.V().properties("location").value()); checkResults(Arrays.asList("baltimore", "oakland", "seattle", "aachen"), sg.V().values("location")); // sg = g.withStrategies(SubgraphStrategy.build().vertices(has("name", P.not(P.within("stephen", "daniel")))) .vertexProperties(has("startTime", P.gt(2005))).create()); checkResults(Arrays.asList("baltimore", "oakland", "seattle"), sg.V().properties("location").value()); checkResults(Arrays.asList("baltimore", "oakland", "seattle"), sg.V().values("location")); // sg = g.withStrategies(SubgraphStrategy.build().vertices(has("name", P.eq("matthias"))) .vertexProperties(has("startTime", P.gte(2014))).create()); checkResults(makeMapList(1, "seattle", 1L), sg.V().groupCount().by("location")); // sg = g.withStrategies( SubgraphStrategy.build().vertices(has("location")).vertexProperties(hasNot("endTime")).create()); checkOrderedResults(Arrays.asList("aachen", "purcellville", "santa fe", "seattle"), sg.V().order().by("location", Order.incr).values("location")); // sg = g.withStrategies(SubgraphStrategy.create(new MapConfiguration(new HashMap<String, Object>() { { put(SubgraphStrategy.VERTICES, __.has("location")); put(SubgraphStrategy.VERTEX_PROPERTIES, __.hasNot("endTime")); } }))); checkResults(Arrays.asList("aachen", "purcellville", "santa fe", "seattle"), sg.V().valueMap("location").select(Column.values).unfold().unfold()); checkResults(Arrays.asList("aachen", "purcellville", "santa fe", "seattle"), sg.V().propertyMap("location").select(Column.values).unfold().unfold().value()); // sg = g.withStrategies(SubgraphStrategy.build().edges(__.<Edge>hasLabel("uses").has("skill", 5)).create()); checkResults(Arrays.asList(5, 5, 5), sg.V().outE().valueMap().select(Column.values).unfold()); checkResults(Arrays.asList(5, 5, 5), sg.V().outE().propertyMap().select(Column.values).unfold().value()); // sg = g.withStrategies(SubgraphStrategy.build().vertexProperties(__.hasNot("skill")).create()); checkResults(Arrays.asList(3, 3, 3, 4, 4, 5, 5, 5), sg.V().outE("uses").values("skill")); checkResults(Arrays.asList(3, 3, 3, 4, 4, 5, 5, 5), sg.V().as("a").properties().select("a").dedup().outE().values("skill")); checkResults(Arrays.asList(3, 3, 3, 4, 4, 5, 5, 5), sg.V().as("a").properties().select("a").dedup().outE() .properties("skill").as("b").identity().select("b").by(__.value())); }
From source file:org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.MatchAlgorithmStrategy.java
@Override public Configuration getConfiguration() { return new MapConfiguration(Collections.singletonMap(MATCH_ALGORITHM, null != this.matchAlgorithmClass.getDeclaringClass() ? this.matchAlgorithmClass.getCanonicalName().replace( "." + this.matchAlgorithmClass.getSimpleName(), "$" + this.matchAlgorithmClass.getSimpleName()) : this.matchAlgorithmClass.getCanonicalName())); }
From source file:org.apache.tinkerpop.gremlin.structure.util.GraphFactory.java
/** * Open a graph. See each {@link org.apache.tinkerpop.gremlin.structure.Graph} instance for its configuration options. * * @param configuration A {@link java.util.Map} based configuration that will be converted to an {@link org.apache.commons.configuration.Configuration} object * via {@link org.apache.commons.configuration.MapConfiguration} and passed to the appropriate overload. * @return A Graph instance.//from ww w.ja v a 2s . co m */ public static Graph open(final Map configuration) { if (null == configuration) throw Graph.Exceptions.argumentCanNotBeNull("configuration"); return open(new MapConfiguration(configuration)); }