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 2017/07/12 17:06:04 UTC

[2/6] tinkerpop git commit: Merge Combined WS and Http Channelizer to master

Merge Combined WS and Http Channelizer to master


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

Branch: refs/heads/master
Commit: cee56f527ad4975878a9ac866bc00a24b7fd3a88
Parents: 188fe4b c264390
Author: Keith Lohnes <kr...@us.ibm.com>
Authored: Wed Jul 12 11:35:17 2017 -0400
Committer: Keith Lohnes <kr...@us.ibm.com>
Committed: Wed Jul 12 11:35:17 2017 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 .../src/reference/gremlin-applications.asciidoc |   7 +-
 .../upgrade/release-3.2.x-incubating.asciidoc   |   9 +
 .../gremlin/server/AbstractChannelizer.java     |  11 +-
 .../server/channel/WebSocketChannelizer.java    |   7 +-
 .../server/channel/WsAndHttpChannelizer.java    |  61 ++++
 .../SaslAndHttpBasicAuthenticationHandler.java  |  57 +++
 .../server/handler/WebSocketHandlerUtil.java    |  38 ++
 .../handler/WsAndHttpChannelizerHandler.java    |  87 +++++
 .../AbstractGremlinServerIntegrationTest.java   |  23 +-
 .../server/GremlinServerIntegrateTest.java      |  37 --
 ...tGremlminServerChannelizerIntegrateTest.java | 346 +++++++++++++++++++
 .../channel/HttpChannelizerIntegrateTest.java   |  56 +++
 .../channel/NioChannelizerIntegrateTest.java    |  56 +++
 .../WebSocketChannelizerIntegrateTest.java      |  56 +++
 .../WsAndHttpChannelizerIntegrateTest.java      |  58 ++++
 16 files changed, 864 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cee56f52/CHANGELOG.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cee56f52/docs/src/reference/gremlin-applications.asciidoc
----------------------------------------------------------------------
diff --cc docs/src/reference/gremlin-applications.asciidoc
index 38e6be6,4e367e9..6263796
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@@ -882,9 -859,9 +882,9 @@@ programming languages, tools and librar
  with Gremlin Server.   It also may represent an easier upgrade path from link:http://rexster.tinkerpop.com/[Rexster]
  as the API for the endpoint is very similar to Rexster's link:https://github.com/tinkerpop/rexster/wiki/Gremlin-Extension[Gremlin Extension].
  
 -Gremlin Server provides for a single REST endpoint - a Gremlin evaluator - which allows the submission of a Gremlin
 +Gremlin Server provides for a single HTTP endpoint - a Gremlin evaluator - which allows the submission of a Gremlin
  script as a request.  For each request, it returns a response containing the serialized results of that script.
- To enable this endpoint, Gremlin Server needs to be configured with the `HttpChannelizer`, which replaces the default
+ To enable this endpoint, Gremlin Server needs to be configured with the `HttpChannelizer`, which replaces the default. The `WsAndHttpChannelizer` may also be configured to enable both WebSockets and the REST endpoint.
  `WebSocketChannelizer`, in the configuration file:
  
  [source,yaml]

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cee56f52/docs/src/upgrade/release-3.2.x-incubating.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cee56f52/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
----------------------------------------------------------------------
diff --cc gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
index cb088be,22bb1eb..d53cdfe
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
@@@ -81,10 -85,18 +81,17 @@@ public abstract class AbstractChanneliz
      protected ExecutorService gremlinExecutorService;
      protected ScheduledExecutorService scheduledExecutorService;
  
+ 
+     public static final String PIPELINE_AUTHENTICATOR = "authenticator";
+     public static final String PIPELINE_REQUEST_HANDLER = "request-handler";
+     public static final String PIPELINE_HTTP_RESPONSE_ENCODER = "http-response-encoder";
+ 
      protected static final String PIPELINE_SSL = "ssl";
      protected static final String PIPELINE_OP_SELECTOR = "op-selector";
 -    protected static final String PIPELINE_RESULT_ITERATOR_HANDLER = "result-iterator-handler";
      protected static final String PIPELINE_OP_EXECUTOR = "op-executor";
-     protected static final String PIPELINE_AUTHENTICATOR = "authenticator";
+     protected static final String PIPELINE_HTTP_REQUEST_DECODER = "http-request-decoder";
+ 
+     protected static final String GREMLIN_ENDPOINT = "/gremlin";
  
      protected final Map<String, MessageSerializer> serializers = new HashMap<>();
  

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cee56f52/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cee56f52/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 90076d5,aad8131..ef0d4f0
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@@ -210,24 -208,16 +206,19 @@@ public class GremlinServerIntegrateTes
                  // Trust ONLY the server cert
                  settings.ssl.trustCertChainFile = SERVER_CRT;
              	break;
-             case "shouldStartWithDefaultSettings":
-                 // test with defaults exception for port because we want to keep testing off of 8182
-                 final Settings defaultSettings = new Settings();
-                 defaultSettings.port = TestClientFactory.PORT;
-                 return settings;
              case "shouldUseSimpleSandbox":
 -                settings.scriptEngines.get("gremlin-groovy").config = getScriptEngineConfForSimpleSandbox();
 +                settings.scriptEngines.get("gremlin-groovy").plugins.put(GroovyCompilerGremlinPlugin.class.getName(), getScriptEngineConfForSimpleSandbox());
 +                // remove the script because it isn't used in the test but also because it's not CompileStatic ready
 +                settings.scriptEngines.get("gremlin-groovy").plugins.remove(ScriptFileGremlinPlugin.class.getName());
                  break;
              case "shouldUseInterpreterMode":
 -                settings.scriptEngines.get("gremlin-groovy").config = getScriptEngineConfForInterpreterMode();
 +                settings.scriptEngines.get("gremlin-groovy").plugins.put(GroovyCompilerGremlinPlugin.class.getName(), getScriptEngineConfForInterpreterMode());
                  break;
              case "shouldReceiveFailureTimeOutOnScriptEvalOfOutOfControlLoop":
 -                settings.scriptEngines.get("gremlin-groovy").config = getScriptEngineConfForTimedInterrupt();
 +                settings.scriptEngines.get("gremlin-groovy").plugins.put(GroovyCompilerGremlinPlugin.class.getName(), getScriptEngineConfForTimedInterrupt());
                  break;
              case "shouldUseBaseScript":
 +                settings.scriptEngines.get("gremlin-groovy").plugins.put(GroovyCompilerGremlinPlugin.class.getName(), getScriptEngineConfForBaseScript());
                  settings.scriptEngines.get("gremlin-groovy").config = getScriptEngineConfForBaseScript();
                  break;
              case "shouldReturnInvalidRequestArgsWhenBindingCountExceedsAllowable":