You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/08/14 14:48:40 UTC

[1/2] incubator-tinkerpop git commit: Apply windows path cleanup to all copied paths in DependencyGrabber.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/tp30 f94c36c11 -> e4352a408


Apply windows path cleanup to all copied paths in DependencyGrabber.

This was causing an exception as shown in TINKERPOP3-804.  Refactored the code a bit to remove some duplication.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/089c0f72
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/089c0f72
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/089c0f72

Branch: refs/heads/tp30
Commit: 089c0f720c9af1646c2fdc67b6d08f93410bca4b
Parents: f94c36c
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Aug 14 08:40:24 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Aug 14 08:40:24 2015 -0400

----------------------------------------------------------------------
 .../groovy/util/DependencyGrabber.groovy        | 62 +++++++++-----------
 1 file changed, 29 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/089c0f72/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/util/DependencyGrabber.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/util/DependencyGrabber.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/util/DependencyGrabber.groovy
index 14f6bbf..07102fe 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/util/DependencyGrabber.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/util/DependencyGrabber.groovy
@@ -76,47 +76,43 @@ class DependencyGrabber {
         final def dependencyLocations = [] as Set<URI>
         dependencyLocations.addAll(Grape.resolve([classLoader: this.classLoaderToUse], null, dep))
 
-        // if windows then the path contains a starting forward slash that prevents it from being
-        // recognized by FileSystem - strip it off
-        dependencyLocations.collect {
-            def p = SystemUtils.IS_OS_WINDOWS ? it.path.substring(1) : it.path
-            return fs.getPath(p)
-        }.findAll { !(it.fileName.toFile().name ==~ /(slf4j|logback\-classic)-.*\.jar/) }.findAll {
-            !filesAlreadyInPath.collect { it.getFileName().toString() }.contains(it.fileName.toFile().name)
-        }.each {
-            def copying = targetPluginPath.resolve(it.fileName)
-            Files.copy(it, copying, StandardCopyOption.REPLACE_EXISTING)
-            println "Copying - $copying"
-        }
-
-        dependencyLocations.collect {
-            def p = SystemUtils.IS_OS_WINDOWS ? it.path.substring(1) : it.path
-            return fs.getPath(p)
-        }.each {
-            def copying = targetLibPath.resolve(it.fileName)
-            Files.copy(it, copying, StandardCopyOption.REPLACE_EXISTING)
-            println "Copying - $copying"
-        }
-
-        getAdditionalDependencies(targetPluginPath, artifact).collect { fs.getPath(it.path) }
+        // get dependencies for the plugin path which should be part of the class path
+        dependencyLocations.collect(convertUriToPath(fs))
+                .findAll { !(it.fileName.toFile().name ==~ /(slf4j|logback\-classic)-.*\.jar/) }
+                .findAll {!filesAlreadyInPath.collect { it.getFileName().toString() }.contains(it.fileName.toFile().name)}
+                .each(copyTo(targetPluginPath))
+        getAdditionalDependencies(targetPluginPath, artifact).collect(convertUriToPath(fs))
             .findAll { !(it.fileName.toFile().name ==~ /(slf4j|logback\-classic)-.*\.jar/) }
             .findAll { !filesAlreadyInPath.collect { it.getFileName().toString() }.contains(it.fileName.toFile().name)}
-            .each {
-                def copying = targetPluginPath.resolve(it.fileName)
-                Files.copy(it, copying, StandardCopyOption.REPLACE_EXISTING)
-                println "Copying - $copying"
-            }
+            .each(copyTo(targetPluginPath))
 
-        getAdditionalDependencies(targetLibPath, artifact).collect { fs.getPath(it.path) }.each {
-            def copying = targetLibPath.resolve(it.fileName)
-            Files.copy(it, copying, StandardCopyOption.REPLACE_EXISTING)
-            println "Copying - $copying"
-        }
+        // get dependencies for the lib path.  the lib path should not filter out any jars - used for reference
+        dependencyLocations.collect(convertUriToPath(fs)).each(copyTo(targetLibPath))
+        getAdditionalDependencies(targetLibPath, artifact).collect(convertUriToPath(fs)).each(copyTo(targetLibPath))
 
         alterPaths("Gremlin-Plugin-Paths", targetPluginPath, artifact)
         alterPaths("Gremlin-Lib-Paths", targetLibPath, artifact)
     }
 
+    private static Closure copyTo(final Path path) {
+        return { Path p ->
+            def copying = path.resolve(p.fileName)
+            Files.copy(p, copying, StandardCopyOption.REPLACE_EXISTING)
+            println "Copying - $copying"
+        }
+    }
+
+    /**
+     * Windows places a starting forward slash in the URI that needs to be stripped off or else the
+     * {@code FileSystem} won't properly resolve it.
+     */
+    private static Closure convertUriToPath(final FileSystem fs) {
+        return { URI uri ->
+            def p = SystemUtils.IS_OS_WINDOWS ? uri.path.substring(1) : uri.path
+            return fs.getPath(p)
+        }
+    }
+
     private Set<URI> getAdditionalDependencies(final Path extPath, final Artifact artifact) {
         try {
             def pathToInstalled = extPath.resolve(artifact.artifact + "-" + artifact.version + ".jar")


[2/2] incubator-tinkerpop git commit: Included a Gremlin Server sample config for Neo4j.

Posted by sp...@apache.org.
Included a Gremlin Server sample config for Neo4j.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/e4352a40
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/e4352a40
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/e4352a40

Branch: refs/heads/tp30
Commit: e4352a408a5d95bb2e8e3b6c04d989a1461d6eb8
Parents: 089c0f7
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Aug 14 08:48:12 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Aug 14 08:48:12 2015 -0400

----------------------------------------------------------------------
 gremlin-server/conf/gremlin-server-neo4j.yaml | 71 ++++++++++++++++++++++
 gremlin-server/conf/neo4j-empty.properties    |  5 ++
 2 files changed, 76 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e4352a40/gremlin-server/conf/gremlin-server-neo4j.yaml
----------------------------------------------------------------------
diff --git a/gremlin-server/conf/gremlin-server-neo4j.yaml b/gremlin-server/conf/gremlin-server-neo4j.yaml
new file mode 100644
index 0000000..aef5403
--- /dev/null
+++ b/gremlin-server/conf/gremlin-server-neo4j.yaml
@@ -0,0 +1,71 @@
+# 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.
+
+# Note that TinkerPop does not include Neo4j dependencies in its
+# distributions. This file cannot be used as a configuration file to 
+# Gremlin Server unless Neo4j dependencies are installed on the 
+# Gremlin Server path with:
+#
+# bin/gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin x.y.z
+# 
+# Note that unless under a commercial agreement with Neo Technology, 
+# Neo4j is licensed AGPL. 
+
+host: localhost
+port: 8182
+threadPoolWorker: 1
+gremlinPool: 8
+scriptEvaluationTimeout: 30000
+serializedResponseTimeout: 30000
+channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
+graphs: {
+  graph: conf/neo4j-empty.properties}
+plugins:
+  - tinkerpop.neo4j
+scriptEngines: {
+  gremlin-groovy: {
+    imports: [java.lang.Math],
+    staticImports: [java.lang.Math.PI],
+    scripts: [scripts/empty-sample.groovy]},
+  nashorn: {
+      imports: [java.lang.Math],
+      staticImports: [java.lang.Math.PI]}}
+serializers:
+  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0 }                                             # application/vnd.gremlin-v1.0+gryo
+  - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}   # application/vnd.gremlin-v1.0+gryo-stringd
+  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0 }                                  # application/vnd.gremlin-v1.0+json
+  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 }                                         # application/json
+processors:
+  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
+metrics: {
+  consoleReporter: {enabled: true, interval: 180000},
+  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
+  jmxReporter: {enabled: true},
+  slf4jReporter: {enabled: true, interval: 180000},
+  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
+  graphiteReporter: {enabled: false, interval: 180000}}
+threadPoolBoss: 1
+maxInitialLineLength: 4096
+maxHeaderSize: 8192
+maxChunkSize: 8192
+maxContentLength: 65536
+maxAccumulationBufferComponents: 1024
+resultIterationBatchSize: 64
+writeBufferHighWaterMark: 32768
+writeBufferHighWaterMark: 65536
+ssl: {
+  enabled: false}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e4352a40/gremlin-server/conf/neo4j-empty.properties
----------------------------------------------------------------------
diff --git a/gremlin-server/conf/neo4j-empty.properties b/gremlin-server/conf/neo4j-empty.properties
index 6d01a5e..0ea551b 100644
--- a/gremlin-server/conf/neo4j-empty.properties
+++ b/gremlin-server/conf/neo4j-empty.properties
@@ -22,6 +22,11 @@
 # with:
 #
 # gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin 3.y.z
+#
+# Note that unless under a commercial agreement with Neo Technology,
+# Neo4j is licensed AGPL.
+
+
 gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
 gremlin.neo4j.directory=/tmp/neo4j
 gremlin.neo4j.conf.node_auto_indexing=true