You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2017/01/13 18:56:43 UTC
[27/50] [abbrv] tinkerpop git commit: added GraphActorsHelper which
will configure a GraphActors via its fluent interface via a provided
Configuration. Added a new GraphActorsTest that ensures worker counts are
correct.
added GraphActorsHelper which will configure a GraphActors via its fluent interface via a provided Configuration. Added a new GraphActorsTest that ensures worker counts are correct.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5316eaeb
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5316eaeb
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5316eaeb
Branch: refs/heads/TINKERPOP-1564
Commit: 5316eaebec5d9229be107d51155fa16760abacf8
Parents: 504f594
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Dec 16 15:41:47 2016 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Jan 13 11:55:55 2017 -0700
----------------------------------------------------------------------
.../akka/process/actor/AkkaGraphActors.java | 13 +++++-
.../gremlin/process/actor/GraphActors.java | 2 +
.../process/actor/util/GraphActorsHelper.java | 48 ++++++++++++++++++++
.../gremlin/process/actors/GraphActorsTest.java | 11 +++++
.../process/computer/TinkerGraphComputer.java | 5 +-
5 files changed, 75 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5316eaeb/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actor/AkkaGraphActors.java
----------------------------------------------------------------------
diff --git a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actor/AkkaGraphActors.java b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actor/AkkaGraphActors.java
index 05e63be..c5a77db 100644
--- a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actor/AkkaGraphActors.java
+++ b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actor/AkkaGraphActors.java
@@ -26,11 +26,13 @@ import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigValueFactory;
import org.apache.commons.configuration.BaseConfiguration;
import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationUtils;
import org.apache.tinkerpop.gremlin.process.actor.ActorProgram;
import org.apache.tinkerpop.gremlin.process.actor.ActorsResult;
import org.apache.tinkerpop.gremlin.process.actor.Address;
import org.apache.tinkerpop.gremlin.process.actor.GraphActors;
import org.apache.tinkerpop.gremlin.process.actor.util.DefaultActorsResult;
+import org.apache.tinkerpop.gremlin.process.actor.util.GraphActorsHelper;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Partitioner;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
@@ -55,9 +57,10 @@ public final class AkkaGraphActors<R> implements GraphActors<R> {
private boolean executed = false;
private AkkaGraphActors(final Configuration configuration) {
- this.configuration = configuration;
+ this.configuration = new BaseConfiguration();
+ ConfigurationUtils.copy(configuration, this.configuration);
this.configuration.setProperty(GRAPH_ACTORS, AkkaGraphActors.class.getCanonicalName());
- this.workers = this.configuration.getInt(GRAPH_ACTORS_WORKERS, 1);
+ GraphActorsHelper.configure(this, this.configuration);
}
@Override
@@ -79,6 +82,12 @@ public final class AkkaGraphActors<R> implements GraphActors<R> {
}
@Override
+ public GraphActors<R> configure(final String key, final Object value) {
+ this.configuration.addProperty(key, value);
+ return this;
+ }
+
+ @Override
public Future<R> submit(final Graph graph) {
if (this.executed)
throw new IllegalStateException("Can not execute twice");
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5316eaeb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/GraphActors.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/GraphActors.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/GraphActors.java
index 63804ab..29c032b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/GraphActors.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/GraphActors.java
@@ -56,6 +56,8 @@ public interface GraphActors<R> extends Processor {
*/
public GraphActors<R> workers(final int workers);
+ public GraphActors<R> configure(final String key, final Object value);
+
/**
* Submit the {@link ActorProgram} for execution by the {@link GraphActors}.
*
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5316eaeb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/util/GraphActorsHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/util/GraphActorsHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/util/GraphActorsHelper.java
new file mode 100644
index 0000000..eebee17
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actor/util/GraphActorsHelper.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.tinkerpop.gremlin.process.actor.util;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.tinkerpop.gremlin.process.actor.GraphActors;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+
+import java.util.Iterator;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class GraphActorsHelper {
+
+ private GraphActorsHelper() {
+
+ }
+
+ public static GraphActors configure(GraphActors actors, final Configuration configuration) {
+ final Iterator<String> keys = IteratorUtils.asList(configuration.getKeys()).iterator();
+ while (keys.hasNext()) {
+ final String key = keys.next();
+ if (key.equals(GraphActors.GRAPH_ACTORS_WORKERS))
+ actors = actors.workers(configuration.getInt(GraphActors.GRAPH_ACTORS_WORKERS));
+ else if (!key.equals(GraphActors.GRAPH_ACTORS))
+ actors = actors.configure(key, configuration.getProperty(key));
+ }
+ return actors;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5316eaeb/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/actors/GraphActorsTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/actors/GraphActorsTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/actors/GraphActorsTest.java
index d040f49..ec3ece2 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/actors/GraphActorsTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/actors/GraphActorsTest.java
@@ -39,4 +39,15 @@ public class GraphActorsTest extends AbstractGremlinProcessTest {
final GraphActors actors = graphProvider.getGraphActors(graph);
assertEquals(StringFactory.graphActorsString(actors), actors.toString());
}
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void shouldHaveProperWorkerCounte() {
+ final GraphActors actors = graphProvider.getGraphActors(graph);
+ for (int i = 1; i < 10; i++) {
+ assertEquals(6L, g.withProcessor(actors.workers(i)).V().count().next().longValue());
+ assertEquals(i, actors.configuration().getProperty(GraphActors.GRAPH_ACTORS_WORKERS));
+
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5316eaeb/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerGraphComputer.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerGraphComputer.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerGraphComputer.java
index cbbe53f..4fd9383 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerGraphComputer.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerGraphComputer.java
@@ -95,9 +95,10 @@ public final class TinkerGraphComputer implements GraphComputer {
private TinkerGraphComputer(final Configuration configuration) {
this.graph = null;
- this.configuration = configuration;
+ this.configuration = new BaseConfiguration();
+ ConfigurationUtils.copy(configuration,this.configuration);
this.configuration.setProperty(GRAPH_COMPUTER, TinkerGraphComputer.class.getCanonicalName());
- GraphComputerHelper.configure(this, ConfigurationUtils.cloneConfiguration(configuration));
+ GraphComputerHelper.configure(this, configuration);
}
public static TinkerGraphComputer open(final Configuration configuration) {