Modified: tinkerpop/site/docs/4.0.0-SNAPSHOT/upgrade/index.html
URL: 
http://svn.apache.org/viewvc/tinkerpop/site/docs/4.0.0-SNAPSHOT/upgrade/index.html?rev=1923180&r1=1923179&r2=1923180&view=diff
==============================================================================
--- tinkerpop/site/docs/4.0.0-SNAPSHOT/upgrade/index.html (original)
+++ tinkerpop/site/docs/4.0.0-SNAPSHOT/upgrade/index.html Fri Jan 17 02:11:00 
2025
@@ -820,63 +820,27 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <div id="toctitle">Table of Contents</div>
 <ul class="sectlevel0">
 <li><a href="#_tinkerpop_upgrade_information">TinkerPop Upgrade 
Information</a></li>
-<li><a href="#_tinkerpop_4_0_0">TinkerPop 4.0.0</a>
+<li><a href="#_tinkerpop_3_7_0">TinkerPop 3.7.0</a>
 <ul class="sectlevel1">
-<li><a href="#_tinkerpop_4_0_0_m1">TinkerPop 4.0.0.M1</a>
+<li><a href="#_tinkerpop_3_7_4">TinkerPop 3.7.4</a>
 <ul class="sectlevel2">
 <li><a href="#_upgrading_for_users">Upgrading for Users</a>
 <ul class="sectlevel3">
-<li><a href="#_result_bulking_from_server">Result Bulking from Server</a></li>
-<li><a href="#_bulkset_behavior_changes">BulkSet Behavior Changes</a></li>
-<li><a href="#_configuration_changes">Configuration changes</a></li>
-<li><a href="#_simplification_to_g_creation">Simplification to g 
creation</a></li>
-<li><a href="#_changes_to_java_requestinterceptor">Changes to Java 
RequestInterceptor</a></li>
-<li><a href="#_addition_of_python_interceptor">Addition of Python 
interceptor</a></li>
-<li><a href="#_changes_to_deserialization_for_gremlin_javascript">Changes to 
deserialization for gremlin-javascript</a></li>
-<li><a href="#_gremlin_grammar_changes">Gremlin Grammar Changes</a></li>
-<li><a href="#_renamed_none_to_discard">Renamed none() to discard()</a></li>
-<li><a href="#_splitting_a_string_into_characters_using_split">Splitting a 
string into characters using split()</a></li>
-<li><a href="#_improved_handling_of_integer_overflows">Improved handling of 
integer overflows</a></li>
-<li><a href="#_seedstrategy_construction">SeedStrategy Construction</a></li>
-<li><a href="#_removal_of_gremlin_archetype">Removal of 
<code>gremlin-archetype</code></a></li>
-<li><a href="#_improved_translators">Improved Translators</a></li>
-<li><a href="#_change_to_optionsstrategy_in_gremlin_python">Change to 
<code>OptionsStrategy</code> in <code>gremlin-python</code></a></li>
-<li><a href="#_custom_traversal_strategy_construction">Custom Traversal 
Strategy Construction</a></li>
-<li><a href="#_changes_to_serialization">Changes to Serialization</a></li>
-<li><a href="#_changes_to_authentication_and_authorization">Changes to 
Authentication and Authorization</a></li>
-<li><a href="#_transactions_disabled">Transactions Disabled</a></li>
-<li><a href="#_result_bulking_changes">Result Bulking Changes</a></li>
-<li><a href="#_gremlin_java_changes">Gremlin Java Changes</a></li>
+<li><a href="#_improved_server_memory_management">Improved Server Memory 
Management</a></li>
+<li><a href="#_channel_metrics">Channel Metrics</a></li>
 </ul>
 </li>
 <li><a href="#_upgrading_for_providers">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_renaming_nonestep_to_discardstep">Renaming NoneStep to 
DiscardStep</a></li>
-<li><a href="#_changes_to_serialization_2">Changes to Serialization</a></li>
 <li><a href="#_graph_system_providers">Graph System Providers</a></li>
 <li><a href="#_graph_driver_providers">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
-</ul>
-</li>
-<li><a href="#_tinkerpop_3_7_0">TinkerPop 3.7.0</a>
-<ul class="sectlevel1">
-<li><a href="#_tinkerpop_3_7_4">TinkerPop 3.7.4</a>
-<ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_2">Upgrading for Users</a></li>
-<li><a href="#_upgrading_for_providers_2">Upgrading for Providers</a>
-<ul class="sectlevel3">
-<li><a href="#_graph_system_providers_2">Graph System Providers</a></li>
-<li><a href="#_graph_driver_providers_2">Graph Driver Providers</a></li>
-</ul>
-</li>
-</ul>
-</li>
 <li><a href="#_tinkerpop_3_7_3">TinkerPop 3.7.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_3">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_2">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_graphbinary_compatibility">GraphBinary Compatibility</a></li>
 </ul>
@@ -886,23 +850,23 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_tinkerpop_3_7_2">TinkerPop 3.7.2</a></li>
 <li><a href="#_tinkerpop_3_7_1">TinkerPop 3.7.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_4">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_3">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_string_manipulation_steps">String Manipulation Steps</a></li>
 <li><a href="#_list_manipulation_steps">List Manipulation Steps</a></li>
 <li><a href="#_date_manipulation_steps">Date Manipulation Steps</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_3">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_2">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_3">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_2">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_7_0_2">TinkerPop 3.7.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_5">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_4">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_string_concat_step">String concat() Step</a></li>
 <li><a href="#_union_start_step">union() Start Step</a></li>
@@ -917,10 +881,10 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_building_and_running_with_jdk_17">Building and Running with JDK 
17</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_4">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_3">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_driver_providers_3">Graph Driver Providers</a></li>
-<li><a href="#_graph_system_providers_4">Graph System Providers</a></li>
+<li><a href="#_graph_driver_providers_2">Graph Driver Providers</a></li>
+<li><a href="#_graph_system_providers_3">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
@@ -931,7 +895,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <ul class="sectlevel1">
 <li><a href="#_tinkerpop_3_6_8">TinkerPop 3.6.8</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_6">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_5">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_runtime_updates">Runtime Updates</a></li>
 </ul>
@@ -940,7 +904,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_6_7">TinkerPop 3.6.7</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_7">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_6">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_runtime_version_upgrades">Runtime Version Upgrades</a></li>
 <li><a 
href="#_gremlin_net_fixed_a_bug_in_traversal_enumeration_on_net_8">Gremlin.Net: 
Fixed a bug in traversal enumeration on .NET 8</a></li>
@@ -950,12 +914,12 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_6_6">TinkerPop 3.6.6</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_providers_5">Upgrading for Providers</a></li>
+<li><a href="#_upgrading_for_providers_4">Upgrading for Providers</a></li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_6_5">TinkerPop 3.6.5</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_8">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_7">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_http_plain_text">HTTP Plain Text</a></li>
 <li><a href="#_untyped_graphson">Untyped GraphSON</a></li>
@@ -966,35 +930,35 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_tinkerpop_3_6_4">TinkerPop 3.6.4</a></li>
 <li><a href="#_tinkerpop_3_6_3">TinkerPop 3.6.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_9">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_8">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_deprecation_warning_for_go_1_17">Deprecation Warning for Go 
1.17</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_6">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_5">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_5">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_4">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_6_2">TinkerPop 3.6.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_10">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_9">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_changes_to_mergeve_semantics">Changes to mergeV/E 
semantics</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_7">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_6">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_6">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_5">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_6_1">TinkerPop 3.6.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_11">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_10">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_graphbinary_default_serialization">GraphBinary Default 
Serialization</a></li>
 </ul>
@@ -1003,7 +967,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_6_0_2">TinkerPop 3.6.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_12">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_11">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_element_step">element() Step</a></li>
 <li><a href="#_mergev_and_mergee">mergeV() and mergeE()</a></li>
@@ -1023,9 +987,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_property_with_map"><code>property()</code> with Map</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_8">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_7">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_7">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_6">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
@@ -1037,7 +1001,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_tinkerpop_3_5_8">TinkerPop 3.5.8</a></li>
 <li><a href="#_tinkerpop_3_5_7">TinkerPop 3.5.7</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_13">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_12">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_runtime_version_upgrades_2">Runtime Version Upgrades</a></li>
 <li><a href="#_graphson_max_token_lengths">GraphSON max token lengths</a></li>
@@ -1048,23 +1012,23 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_5_6">TinkerPop 3.5.6</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_14">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_13">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_deprecation_warning_for_node_10_and_go_1_17">Deprecation 
Warning for Node 10 and Go 1.17</a></li>
 <li><a href="#_arm64_support_for_gremlin_server_docker_image">ARM64 Support 
for Gremlin Server Docker Image</a></li>
 <li><a href="#_performance_improvements">Performance Improvements</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_9">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_8">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_8">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_7">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_5_5">TinkerPop 3.5.5</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_15">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_14">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_net_add_logging">Gremlin.NET: Add logging</a></li>
 <li><a href="#_gremlin_driver_host_availability">gremlin-driver Host 
Availability</a></li>
@@ -1076,7 +1040,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_5_4">TinkerPop 3.5.4</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_16">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_15">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_sparkioutil_utility">SparkIOUtil utility</a></li>
 <li><a href="#_gremlin_go">Gremlin-Go</a></li>
@@ -1088,7 +1052,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_5_3">TinkerPop 3.5.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_17">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_16">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_net_websocket_compression_support">.NET WebSocket Compression 
Support</a></li>
 <li><a href="#_net_translator_to_groovy">.NET: Translator to Groovy</a></li>
@@ -1098,7 +1062,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_5_2">TinkerPop 3.5.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_18">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_17">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_tx_in_net_and_python">Tx() in .NET and Python</a></li>
 <li><a href="#_datetime">datetime()</a></li>
@@ -1112,7 +1076,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_5_1">TinkerPop 3.5.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_19">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_18">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_tx_in_javascript">tx() in Javascript</a></li>
 <li><a href="#_gremlint_library">Gremlint Library</a></li>
@@ -1123,7 +1087,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_5_0_2">TinkerPop 3.5.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_20">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_19">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_host_language_runtimes">Host Language Runtimes</a></li>
 <li><a href="#_gremlint">Gremlint</a></li>
@@ -1145,10 +1109,10 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_deprecation_removal">Deprecation Removal</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_10">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_9">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_9">Graph System Providers</a></li>
-<li><a href="#_graph_driver_providers_4">Graph Driver Providers</a></li>
+<li><a href="#_graph_system_providers_8">Graph System Providers</a></li>
+<li><a href="#_graph_driver_providers_3">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
@@ -1161,7 +1125,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_tinkerpop_3_4_12">TinkerPop 3.4.12</a></li>
 <li><a href="#_tinkerpop_3_4_11">TinkerPop 3.4.11</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_21">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_20">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_barrier_control">barrier() Control</a></li>
 </ul>
@@ -1170,7 +1134,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_10">TinkerPop 3.4.10</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_22">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_21">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_python_timeout_issue">Python Timeout Issue</a></li>
 </ul>
@@ -1179,7 +1143,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_9">TinkerPop 3.4.9</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_23">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_22">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_translator_implementations">Translator Implementations</a></li>
 <li><a href="#_bytecode_command_improvements">Bytecode Command 
Improvements</a></li>
@@ -1193,16 +1157,16 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_lambdas_in_gremlin_javascript">Lambdas in 
gremlin-javascript</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_11">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_10">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_10">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_9">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_4_8">TinkerPop 3.4.8</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_24">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_23">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_net_automatic_reconnect">Gremlin.NET: Automatic 
Reconnect</a></li>
 </ul>
@@ -1211,7 +1175,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_7">TinkerPop 3.4.7</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_25">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_24">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_clear_screen_command">Clear Screen Command</a></li>
 </ul>
@@ -1220,7 +1184,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_6">TinkerPop 3.4.6</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_26">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_25">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_drop_properties">drop() Properties</a></li>
 </ul>
@@ -1229,23 +1193,23 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_5">TinkerPop 3.4.5</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_27">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_26">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_bystring_modulator">by(String) Modulator</a></li>
 <li><a href="#_haskey_step_and_hasvalue_step">hasKey() Step and hasValue() 
Step</a></li>
 <li><a href="#_properties_equality">Properties Equality</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_12">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_11">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_driver_providers_5">Graph Driver Providers</a></li>
+<li><a href="#_graph_driver_providers_4">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_4_4">TinkerPop 3.4.4</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_28">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_27">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_python_graphbinary">Python GraphBinary</a></li>
 <li><a href="#_elementmap_step">elementMap() Step</a></li>
@@ -1255,43 +1219,43 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_3">TinkerPop 3.4.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_29">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_28">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_deprecated_store">Deprecated store()</a></li>
 <li><a href="#_deprecate_gryo_in_gremlin_server">Deprecate Gryo in Gremlin 
Server</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_13">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_12">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_driver_providers_6">Graph Driver Providers</a></li>
+<li><a href="#_graph_driver_providers_5">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_4_2">TinkerPop 3.4.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_30">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_29">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_per_request_options_2">Per Request Options</a></li>
 <li><a href="#_gremlin_console_timeout">Gremlin Console Timeout</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_14">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_13">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_11">Graph System Providers</a></li>
-<li><a href="#_graph_driver_providers_7">Graph Driver Providers</a></li>
+<li><a href="#_graph_system_providers_10">Graph System Providers</a></li>
+<li><a href="#_graph_driver_providers_6">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_4_1">TinkerPop 3.4.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_31">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_30">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_mix_sparql_and_gremlin">Mix SPARQL and Gremlin</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_15">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_14">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers">Graph Database Providers</a></li>
 </ul>
@@ -1300,7 +1264,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_4_0_2">TinkerPop 3.4.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_32">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_31">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_sparql_gremlin">sparql-gremlin</a></li>
 <li><a href="#_gremlin_net_driver_improvements">Gremlin.NET Driver 
Improvements</a></li>
@@ -1327,10 +1291,10 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_deprecation_and_removal">Deprecation and Removal</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_16">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_15">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_2">Graph Database Providers</a></li>
-<li><a href="#_graph_driver_providers_8">Graph Driver Providers</a></li>
+<li><a href="#_graph_driver_providers_7">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
@@ -1341,13 +1305,13 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <ul class="sectlevel1">
 <li><a href="#_tinkerpop_3_3_11">TinkerPop 3.3.11</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_33">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_32">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_glv_sessions">GLV Sessions</a></li>
 <li><a href="#_deprecate_maxwaitforsessionclose">Deprecate 
maxWaitForSessionClose</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_17">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_16">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_driver_providers">Gremlin Driver Providers</a></li>
 </ul>
@@ -1356,7 +1320,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_10">TinkerPop 3.3.10</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_34">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_33">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_traversal_clone">Traversal Clone</a></li>
 <li><a href="#_deprecated_jython_support">Deprecated Jython Support</a></li>
@@ -1366,7 +1330,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_9">TinkerPop 3.3.9</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_35">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_34">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a 
href="#_reservedkeysverificationstrategy">ReservedKeysVerificationStrategy</a></li>
 <li><a href="#_javascript_responseerror">Javascript ResponseError</a></li>
@@ -1378,7 +1342,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_8">TinkerPop 3.3.8</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_36">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_35">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_branch_steps_accept_predicates_and_traversals">Branch Steps 
Accept Predicates and Traversals</a></li>
 <li><a href="#_python_datetime">Python DateTime</a></li>
@@ -1392,14 +1356,14 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_7">TinkerPop 3.3.7</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_37">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_36">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_javascript_dsl_pattern">JavaScript DSL Pattern</a></li>
 <li><a href="#_gremlin_console_interrupt">Gremlin Console Interrupt</a></li>
 <li><a href="#_removed_gperfutils_dependency">Removed gperfutils 
Dependency</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_18">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_17">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_3">Graph Database Providers</a></li>
 </ul>
@@ -1408,7 +1372,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_6">TinkerPop 3.3.6</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_38">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_37">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_anti_patterns_documentation">Anti-Patterns 
Documentation</a></li>
 </ul>
@@ -1417,7 +1381,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_5">TinkerPop 3.3.5</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_39">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_38">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_anonymoustraversalsource">AnonymousTraversalSource</a></li>
 <li><a href="#_bytecode_command">Bytecode Command</a></li>
@@ -1425,7 +1389,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_rangestep_optimizing_strategy">RangeStep Optimizing 
Strategy</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_19">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_18">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_4">Graph Database Providers</a></li>
 </ul>
@@ -1434,7 +1398,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_4">TinkerPop 3.3.4</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_40">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_39">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_introducing_order_asc_and_order_desc">Introducing Order.asc and 
Order.desc</a></li>
 <li><a href="#_timedinterrupt">TimedInterrupt</a></li>
@@ -1444,7 +1408,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_3">TinkerPop 3.3.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_41">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_40">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_credential_dsl_changes">Credential DSL Changes</a></li>
 </ul>
@@ -1453,7 +1417,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_2">TinkerPop 3.3.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_42">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_41">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_python_sets">Gremlin Python Sets</a></li>
 </ul>
@@ -1462,7 +1426,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_1">TinkerPop 3.3.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_43">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_42">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_python_path">Gremlin Python path()</a></li>
 <li><a href="#_added_math_step_for_scientific_traversal_computing">Added 
<code>math()</code>-step for Scientific Traversal Computing</a></li>
@@ -1473,7 +1437,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_upgrade_neo4j">Upgrade Neo4j</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_20">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_19">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_5">Graph Database Providers</a></li>
 </ul>
@@ -1482,7 +1446,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_3_0_2">TinkerPop 3.3.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_44">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_43">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_packaged_data_files">Packaged Data Files</a></li>
 <li><a href="#_graphtraversal_has_methods_re_organized">GraphTraversal 
Has-Methods Re-Organized</a></li>
@@ -1501,9 +1465,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_scriptinputformat">ScriptInputFormat</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_21">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_20">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_12">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_11">Graph System Providers</a></li>
 <li><a href="#_graph_database_providers_6">Graph Database Providers</a></li>
 <li><a href="#_driver_providers">Driver Providers</a></li>
 </ul>
@@ -1517,7 +1481,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_tinkerpop_3_2_11">TinkerPop 3.2.11</a></li>
 <li><a href="#_tinkerpop_3_2_10">TinkerPop 3.2.10</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_45">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_44">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_sasl_in_gremlin_javascript">SASL in Gremlin-Javascript</a></li>
 <li><a href="#_ssl_security">SSL Security</a></li>
@@ -1528,7 +1492,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_gremlin_javascript_script_submission">Gremlin Javascript Script 
Submission</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_22">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_21">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_7">Graph Database Providers</a></li>
 </ul>
@@ -1537,7 +1501,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_9">TinkerPop 3.2.9</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_46">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_45">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_lambda_construction">Lambda Construction</a></li>
 </ul>
@@ -1546,7 +1510,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_8">TinkerPop 3.2.8</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_47">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_46">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_improved_connection_monitoring">Improved Connection 
Monitoring</a></li>
 <li><a href="#_gremlin_net_lambdas">Gremlin.Net Lambdas</a></li>
@@ -1554,16 +1518,16 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_gremlin_net_traversal_predicate_classes_merged">Gremlin.Net: 
Traversal Predicate Classes Merged</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_23">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_22">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_13">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_12">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_2_7">TinkerPop 3.2.7</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_48">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_47">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_python_core_types">Gremlin-Python Core Types</a></li>
 <li><a href="#_eventstrategy_detachment">EventStrategy Detachment</a></li>
@@ -1576,7 +1540,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_mutationlistener_changes">MutationListener Changes</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_24">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_23">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a 
href="#_direction_both_requires_duplication_of_self_edges">Direction.BOTH 
Requires Duplication of Self-Edges</a></li>
 </ul>
@@ -1585,13 +1549,13 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_6">TinkerPop 3.2.6</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_49">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_48">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_deprecated_usemapperfromgraph">Deprecated 
useMapperFromGraph</a></li>
 <li><a href="#_wsandhttpchannelizer">WsAndHttpChannelizer</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_25">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_24">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_referencevertex_label">ReferenceVertex Label</a></li>
 </ul>
@@ -1600,7 +1564,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_5">TinkerPop 3.2.5</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_50">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_49">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_dsl_support">DSL Support</a></li>
 <li><a href="#_graphson_path_serialization">GraphSON Path 
Serialization</a></li>
@@ -1614,7 +1578,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_gremlin_python_driver">Gremlin-Python Driver</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_26">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_25">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_8">Graph Database Providers</a></li>
 </ul>
@@ -1623,7 +1587,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_4">TinkerPop 3.2.4</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_51">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_50">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_tinkergraph_deserialization">TinkerGraph 
Deserialization</a></li>
 <li><a href="#_traversal_promises">Traversal Promises</a></li>
@@ -1633,7 +1597,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_ssl_client_authentication">SSL Client Authentication</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_27">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_26">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_9">Graph Database Providers</a></li>
 <li><a href="#_drivers_providers">Drivers Providers</a></li>
@@ -1643,7 +1607,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_3">TinkerPop 3.2.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_52">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_51">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_renamed_null_result_preference">Renamed Null Result 
Preference</a></li>
 <li><a href="#_java_driver_keep_alive">Java Driver Keep-Alive</a></li>
@@ -1654,16 +1618,16 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_io_reference_documentation">IO Reference Documentation</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_28">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_27">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_14">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_13">Graph System Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_2_2">TinkerPop 3.2.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_53">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_52">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_graphson_2_0">GraphSON 2.0</a></li>
 <li><a href="#_log4j_dependencies">Log4j Dependencies</a></li>
@@ -1672,9 +1636,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_rest_api_renamed_to_http_api">REST API Renamed to HTTP 
API</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_29">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_28">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_15">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_14">Graph System Providers</a></li>
 <li><a href="#_drivers_providers_2">Drivers Providers</a></li>
 </ul>
 </li>
@@ -1682,7 +1646,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_1">TinkerPop 3.2.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_54">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_53">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gephi_plugin">Gephi Plugin</a></li>
 <li><a href="#_gryomapper_construction">GryoMapper Construction</a></li>
@@ -1691,9 +1655,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_gremlin_console_flags">Gremlin Console Flags</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_30">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_29">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_16">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_15">Graph System Providers</a></li>
 <li><a href="#_graph_database_providers_10">Graph Database Providers</a></li>
 <li><a href="#_graph_language_providers">Graph Language Providers</a></li>
 </ul>
@@ -1702,7 +1666,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_2_0_2">TinkerPop 3.2.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_55">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_54">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_hadoop_filesystem_variable">Hadoop FileSystem Variable</a></li>
 <li><a href="#_hadoop_configurations">Hadoop Configurations</a></li>
@@ -1714,9 +1678,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_remotegraph">RemoteGraph</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_31">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_30">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_17">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_16">Graph System Providers</a></li>
 <li><a href="#_graph_processor_providers">Graph Processor Providers</a></li>
 <li><a href="#_graph_language_providers_2">Graph Language Providers</a></li>
 </ul>
@@ -1730,7 +1694,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_tinkerpop_3_1_8">TinkerPop 3.1.8</a></li>
 <li><a href="#_tinkerpop_3_1_7">TinkerPop 3.1.7</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_56">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_55">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_graphml_xslt">GraphML XSLT</a></li>
 </ul>
@@ -1739,7 +1703,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_6">TinkerPop 3.1.6</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_providers_32">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_31">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_driver_providers_2">Driver Providers</a></li>
 </ul>
@@ -1748,7 +1712,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_5">TinkerPop 3.1.5</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_57">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_56">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_java_driver_and_close">Java Driver and close()</a></li>
 </ul>
@@ -1757,7 +1721,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_4">TinkerPop 3.1.4</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_58">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_57">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_server_workers">Gremlin Server Workers</a></li>
 </ul>
@@ -1766,14 +1730,14 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_3">TinkerPop 3.1.3</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_59">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_58">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_reserved_gremlin_server_keys">Reserved Gremlin Server 
Keys</a></li>
 <li><a href="#_remote_timeout">Remote Timeout</a></li>
 <li><a href="#_gremlin_server_workers_2">Gremlin Server Workers</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_33">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_32">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_graph_database_providers_11">Graph Database Providers</a></li>
 <li><a href="#_graph_language_providers_3">Graph Language Providers</a></li>
@@ -1784,7 +1748,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_2">TinkerPop 3.1.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_60">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_59">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_aliasing_sessions">Aliasing Sessions</a></li>
 <li><a href="#_remote_console">Remote Console</a></li>
@@ -1794,10 +1758,10 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_session_timeout_setting">Session Timeout Setting</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_34">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_33">Upgrading for Providers</a>
 <ul class="sectlevel3">
 <li><a href="#_all_providers">All Providers</a></li>
-<li><a href="#_graph_system_providers_18">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_17">Graph System Providers</a></li>
 <li><a href="#_driver_providers_4">Driver Providers</a></li>
 <li><a href="#_plugin_providers">Plugin Providers</a></li>
 </ul>
@@ -1806,7 +1770,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_1">TinkerPop 3.1.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_61">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_60">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_storage_io">Storage I/O</a></li>
 <li><a href="#_gremlin_server_transaction_management">Gremlin Server 
Transaction Management</a></li>
@@ -1819,9 +1783,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_deprecated_supportsaddproperty">Deprecated 
supportsAddProperty()</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_35">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_34">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_19">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_18">Graph System Providers</a></li>
 <li><a href="#_graph_database_providers_12">Graph Database Providers</a></li>
 <li><a href="#_graph_processor_providers_2">Graph Processor Providers</a></li>
 </ul>
@@ -1830,7 +1794,7 @@ table.CodeRay td.code{padding:0 0 0 .75e
 </li>
 <li><a href="#_tinkerpop_3_1_0_2">TinkerPop 3.1.0</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_62">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_61">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_shading_jackson">Shading Jackson</a></li>
 <li><a href="#_partitionstrategy_and_vertexproperty">PartitionStrategy and 
VertexProperty</a></li>
@@ -1850,9 +1814,9 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <li><a href="#_aliasing_remotes_in_the_console">Aliasing Remotes in the 
Console</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_36">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_35">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_20">Graph System Providers</a></li>
+<li><a href="#_graph_system_providers_19">Graph System Providers</a></li>
 <li><a href="#_driver_providers_5">Driver Providers</a></li>
 </ul>
 </li>
@@ -1864,32 +1828,32 @@ table.CodeRay td.code{padding:0 0 0 .75e
 <ul class="sectlevel1">
 <li><a href="#_tinkerpop_3_0_2">TinkerPop 3.0.2</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_63">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_62">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_bulkloadervertexprogram_blvp">BulkLoaderVertexProgram 
(BLVP)</a></li>
 <li><a href="#_tinkergraph">TinkerGraph</a></li>
 <li><a href="#_gremlin_driver_and_server">Gremlin Driver and Server</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_37">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_36">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_driver_providers_9">Graph Driver Providers</a></li>
+<li><a href="#_graph_driver_providers_8">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
 </li>
 <li><a href="#_tinkerpop_3_0_1">TinkerPop 3.0.1</a>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_64">Upgrading for Users</a>
+<li><a href="#_upgrading_for_users_63">Upgrading for Users</a>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_server_2">Gremlin Server</a></li>
 <li><a href="#_neo4j">Neo4j</a></li>
 </ul>
 </li>
-<li><a href="#_upgrading_for_providers_38">Upgrading for Providers</a>
+<li><a href="#_upgrading_for_providers_37">Upgrading for Providers</a>
 <ul class="sectlevel3">
-<li><a href="#_graph_system_providers_21">Graph System Providers</a></li>
-<li><a href="#_graph_driver_providers_10">Graph Driver Providers</a></li>
+<li><a href="#_graph_system_providers_20">Graph System Providers</a></li>
+<li><a href="#_graph_driver_providers_9">Graph Driver Providers</a></li>
 </ul>
 </li>
 </ul>
@@ -1928,720 +1892,70 @@ equally useful to TinkerPop providers, w
 TinkerPop exposes.
 </div>
 </div>
-<h1 id="_tinkerpop_4_0_0" class="sect0">TinkerPop 4.0.0</h1>
+<h1 id="_tinkerpop_3_7_0" class="sect0">TinkerPop 3.7.0</h1>
 <div class="openblock partintro">
 <div class="content">
 <div class="imageblock">
 <div class="content">
-<img 
src="https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-standing.png";
 alt="gremlin standing" width="185">
+<img 
src="https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-zamfir.png";
 alt="gremlin zamfir" width="185">
 </div>
 </div>
 <div class="paragraph">
-<p><strong>4.0.0</strong></p>
+<p><strong>Gremfir Master of the Pan Flute</strong></p>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_tinkerpop_4_0_0_m1">TinkerPop 4.0.0.M1</h2>
+<h2 id="_tinkerpop_3_7_4">TinkerPop 3.7.4</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p><strong>Release Date: NOT OFFICIALLY RELEASED YET</strong></p>
 </div>
 <div class="paragraph">
-<p>Please see the <a 
href="https://github.com/apache/tinkerpop/blob/4.0.0/CHANGELOG.asciidoc#release-4-0-0";>changelog</a>
 for a
+<p>Please see the <a 
href="https://github.com/apache/tinkerpop/blob/3.7.4/CHANGELOG.asciidoc#release-3-7-4";>changelog</a>
 for a
 complete list of all the modifications that are part of this release.</p>
 </div>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">
-4.0.0.M1 is a milestone release. It is for meant as a preview version to try 
out the new HTTP API features in
-the server and drivers (Java/Python only). As this is a milestone version 
only, you can expect breaking changes to
-occur in future milestones for 4.0.0 on the way to its General Availability 
release. Items that have important
-limitations and constraints pertinent to this milestone will be highlighted 
through the documentation inside an
-"IMPORTANT" box that starts with "4.0 Milestone Release".
-</td>
-</tr>
-</table>
-</div>
 <div class="sect2">
 <h3 id="_upgrading_for_users">Upgrading for Users</h3>
 <div class="sect3">
-<h4 id="_result_bulking_from_server">Result Bulking from Server</h4>
-<div class="paragraph">
-<p>In previous versions, when a traversal is submitted through the 
DriverRemoteConnection (DRC) via the Bytecode processor,
-the results from the server were bulked as Traverser, which provides a form of 
result optimization across the wire.
-Starting with 4.0, with the removal of Bytecode and Traverser serializer, this 
optimization is now achieved via
-<code>GraphBinaryV4</code> response message serialization, and can be 
controlled through cluster setting or per request option.</p>
-</div>
-<div class="paragraph">
-<p>Per request option setting will always override cluster settings, and 
regardless of cluster or request option settings,
-bulking will only occur if the script processing language is set to 
<code>gremlin-lang</code> and the serializer is set to 
<code>GraphBinaryV4</code>.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="comment">// 
cluster setting</span>
-Cluster cluster = Cluster.build().bulkResults(<span 
class="predefined-constant">true</span>).create();
-
-<span class="comment">// per request option</span>
-GraphTraversalSource g = 
traversal().with(DriverRemoteConnection.using(cluster));
-<span class="predefined-type">List</span> result = g.with(<span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">language</span><span class="delimiter">&quot;</span></span>, 
<span class="string"><span class="delimiter">&quot;</span><span 
class="content">gremlin-lang</span><span 
class="delimiter">&quot;</span></span>).with(<span class="string"><span 
class="delimiter">&quot;</span><span class="content">bulkResults</span><span 
class="delimiter">&quot;</span></span>, <span 
class="predefined-constant">true</span>).inject(<span 
class="integer">1</span>).toList();</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>By default, the cluster setting of <code>bulkResults</code> is false. To 
remain consistent with previous behavior, remote traversal
-submitted through the DRC will always send a request option setting 
<code>bulkResults</code> to <code>true</code>. This implies that if 
<code>gremlin-lang</code>
-script engine and <code>GraphBinaryV4</code> serializer are used, then server 
will bulk results before sending regardless of cluster setting,
-and can only be disabled via per request option.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_bulkset_behavior_changes">BulkSet Behavior Changes</h4>
-<div class="paragraph">
-<p>Starting with 4.0, steps which return BulkSet (e.g. 
<code>aggregate()</code>) will have results returned in different format
-depending on embedded or remote usage.</p>
-</div>
-<div class="paragraph">
-<p>For embedded cases, a BulkSet will be returned as before.</p>
-</div>
-<div class="paragraph">
-<p>For remote cases, BulkSets will now be expanded into Lists upon 
deserialization with <code>gremlin-driver</code>. All other GLVs already 
expanded BulkSet to List prior to TinkerPop 4.
-Each element in the BulkSet will appear in the list the same number of times 
as specified by its bulk value.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_configuration_changes">Configuration changes</h4>
-<div class="paragraph">
-<p>This is a placeholder to summarize configuration-related changes.</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p><code>maxContentLength</code> setting for Gremlin Driver has been renamed 
to <code>maxResponseContentLength</code> and now blocks incoming responses that 
are too large based on total response size.</p>
-</li>
-<li>
-<p><code>maxContentLength</code> setting for Gremlin Server has been renamed 
to <code>maxRequestContentLength</code>.</p>
-</li>
-<li>
-<p><code>enableCompression</code> setting has been removed.</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_simplification_to_g_creation">Simplification to g creation</h4>
-<div class="paragraph">
-<p>The creation of "g" is the start point to writing Gremlin. There are a 
number of ways to create it, but TinkerPop has
-long recommended the use of the anonymous <code>traversal()</code> function 
for this creation.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="groovy"><span 
class="comment">// for embedded cases</span>
-graph = TinkerGraph.open()
-g = traversal().withEmbedded(graph)
-
-<span class="comment">// for remote cases</span>
-g = traversal().withRemote(DriverRemoteConnection.using(...)))</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>As of this release, those two methods have been deprecated in favor of just 
<code>with()</code> which means you could simply write:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="groovy"><span 
class="comment">// for embedded cases</span>
-graph = TinkerGraph.open()
-g = traversal().with(graph)
-
-<span class="comment">// for remote cases</span>
-g = traversal().with(DriverRemoteConnection.using(...)))</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>That&#8217;s a bit less to type, but also removes need to programmatically 
decide which function to call which hopefully
-strengthens the abstraction further. To demonstrate this further consider this 
next example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="groovy">g = 
traversal().with(<span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">config.properties</span><span 
class="delimiter">&quot;</span></span>)</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The properties file in the above example can either point to a remote 
configuration or a embedded configuration allowing
-"g" to be switched as needed without code changes.</p>
-</div>
-<div class="paragraph">
-<p>See: <a 
href="https://issues.apache.org/jira/browse/TINKERPOP-3017";>TINKERPOP-3017</a></p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_changes_to_java_requestinterceptor">Changes to Java 
RequestInterceptor</h4>
-<div class="paragraph">
-<p>Because the underlying transport has been changed from WebSockets to HTTP, 
the usage of the <code>RequestInterceptor</code> has
-changed as well. The <code>RequestInterceptor</code> will now be run per 
request and will allow you to completely modify the HTTP
-request that is sent to the server. <code>Cluster</code> has four new methods 
added to it: <code>addInterceptorAfter</code>,
-<code>addInterceptorBefore</code>, <code>removeInterceptor</code> and 
<code>addInterceptor</code>. Each interceptor requires a name as it will be used
-to insert new interceptors in different positions.</p>
-</div>
-<div class="paragraph">
-<p>The interceptors work with a new class called HttpRequest. This is just a 
basic abstraction over a request but it also
-contains some useful strings for common headers. The initial 
<code>HttpRequest</code> that is passed to the first interceptor will
-contain a <code>RequestMessage</code>. <code>RequestMessage</code> is 
immutable and only certain keys can be added to them. If you want to
-customize the body by adding other fields, you will need to make a different 
copy of the <code>RequestMessage</code> or completely
-change the body to contain a different data type. The final interceptor must 
return a <code>HttpRequest</code> whose body contains
-a <code>byte[]</code>.</p>
-</div>
-<div class="paragraph">
-<p>After the initial HTTP request is generated, the interceptors will be 
called in order to allow the request to be
-modified. After each <code>RequestInterceptor</code> is run, the request is 
updated with the data from the final <code>HttpRequest</code> and
-that is sent to the endpoint. There is a default interceptor added to every 
<code>Cluster</code> called "serializer". This
-interceptor is responsible for serializing the request body is which what the 
server normally expects. This is intended
-to be an advanced customization technique that should only be used when 
needed.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_addition_of_python_interceptor">Addition of Python interceptor</h4>
-<div class="paragraph">
-<p>HTTP interceptors have been added to <code>gremlin-python</code> to enable 
capability similar to that of Java GLV. These
-interceptors can be passed into either a <code>DriverRemoteConnection</code> 
or a <code>Client</code> using the interceptors parameter. An
-interceptor is a <code>Callable</code> that accepts one argument which is the 
HTTP request (dictionary containing header, payload
-and auth) or a list/tuple of these functions. The interceptors will run after 
the request serializer has run but before
-any auth functions run so the HTTP request may still get modified after your 
interceptors are run. In situations where
-you don&#8217;t want the payload to be serialized, the 
<code>message_serializer</code> has been split into a 
<code>request_serializer</code> and a
-<code>response_serializer</code>. Simply set the 
<code>request_serializer</code> to <code>None</code> and this will prevent the 
<code>RequestMessage</code> from
-being serialized. Again, this is expected to be an advanced feature so some 
knowledge of implementation details will be
-required to make this work. For example, you&#8217;ll need to know what 
payload formats are accepted by <code>aiohttp</code> for the
-request to be sent.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_changes_to_deserialization_for_gremlin_javascript">Changes to 
deserialization for gremlin-javascript</h4>
-<div class="paragraph">
-<p>Starting from this version, <code>gremlin-javascript</code> will 
deserialize <code>Set</code> data into a ECMAScript 2015 Set. Previously,
-these were deserialized into arrays.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_gremlin_grammar_changes">Gremlin Grammar Changes</h4>
-<div class="paragraph">
-<p>A number of changes have been introduced to the Gremlin grammar to help 
make it be more consistent and easier to use.</p>
-</div>
-<div class="paragraph">
-<p><strong><code>new</code> keyword is now optional</strong></p>
-</div>
-<div class="paragraph">
-<p>The <code>new</code> keyword is now optional in all cases where it was 
previously used. Both of the following examples are now
-valid syntax with the second being the preferred form going forward:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code 
data-lang="groovy">g.V().withStrategies(<span class="keyword">new</span> 
SubgraphStrategy(<span class="key">vertices</span>: __.hasLabel(<span 
class="string"><span class="delimiter">'</span><span 
class="content">person</span><span class="delimiter">'</span></span>)))
-
-g.V().withStrategies(SubgraphStrategy(<span class="key">vertices</span>: 
__.hasLabel(<span class="string"><span class="delimiter">'</span><span 
class="content">person</span><span 
class="delimiter">'</span></span>)))</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>In a future version, it is likely that the <code>new</code> keyword will be 
removed entirely from the grammar.</p>
-</div>
-<div class="paragraph">
-<p><strong>Refined variable support</strong></p>
-</div>
-<div class="paragraph">
-<p>The Gremlin grammar allows variables to be used in various places. Unlike 
Groovy, from which the Gremlin grammar is
-partially derived and which allows variables to be used for any argument to a 
method, Gremlin only allows for variables
-to be used when they refer to particular types. In making this change it did 
mean that all enums like, <code>Scope</code>, <code>Pop</code>,
-<code>Order</code>, etc. can no longer be used in that way and can therefore 
only be recognized as literal values.</p>
-</div>
-<div class="paragraph">
-<p><strong>Supports withoutStrategies()</strong></p>
-</div>
-<div class="paragraph">
-<p>The <code>withoutStrategies()</code> configuration step is now supported 
syntax for the grammar. While this option is not commonly
-used it is still a part of the Gremlin language and there are times where it 
is helpful to have this fine grained
-control over how a traversal works.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code 
data-lang="groovy">g.V().withoutStrategies(CountStrategy)</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See: <a 
href="https://issues.apache.org/jira/browse/TINKERPOP-2862";>TINKERPOP-2862</a>,
-<a 
href="https://issues.apache.org/jira/browse/TINKERPOP-3046";>TINKERPOP-3046</a></p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_renamed_none_to_discard">Renamed none() to discard()</h4>
-<div class="paragraph">
-<p>The <code>none()</code> step, which was primarily used by 
<code>iterate()</code> to discard traversal results in remote contexts, has been
-renamed to <code>discard()</code>. In its place is a new list filtering step 
<code>none()</code>, which takes a predicate as an argument and
-passes lists with no elements matching the predicate.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_splitting_a_string_into_characters_using_split">Splitting a string 
into characters using split()</h4>
-<div class="paragraph">
-<p>The <code>split()</code> step will now split a string into a list of its 
characters if the given separator is an empty string.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="groovy"><span 
class="comment">// previous implementation</span>
-g.inject(<span class="string"><span class="delimiter">&quot;</span><span 
class="content">Hello</span><span 
class="delimiter">&quot;</span></span>).split(<span class="string"><span 
class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>)
-==&gt;[Hello]
-
-<span class="comment">// new implementation</span>
-g.inject(<span class="string"><span class="delimiter">&quot;</span><span 
class="content">Hello</span><span 
class="delimiter">&quot;</span></span>).split(<span class="string"><span 
class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>)
-==&gt;[H,e,l,l,o]</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See: <a 
href="https://issues.apache.org/jira/browse/TINKERPOP-3083";>TINKERPOP-3083</a></p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_improved_handling_of_integer_overflows">Improved handling of integer 
overflows</h4>
-<div class="paragraph">
-<p>Integer overflows caused by addition and multiplication operations will 
throw an exception instead of being silently
-skipped with incorrect result.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_seedstrategy_construction">SeedStrategy Construction</h4>
-<div class="paragraph">
-<p>The <code>SeedStrategy</code> public constructor has been removed for Java 
and has been replaced by the builder pattern common
-to all strategies. This change was made to ensure that the 
<code>SeedStrategy</code> could be constructed in a consistent manner.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_removal_of_gremlin_archetype">Removal of 
<code>gremlin-archetype</code></h4>
-<div class="paragraph">
-<p><code>gremlin-archetype</code>, which contained example projects 
demonstrating the use cases of TinkerPop, has been removed in
-favor of newer sample applications which can be found in each GLV&#8217;s 
<code>examples</code> folder.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_improved_translators">Improved Translators</h4>
-<div class="paragraph">
-<p>The various Java <code>Translator</code> implementations allowing 
conversion of Gremlin traversals to string forms in various
-languages have been modified considerably. First, they have been moved from to 
the
-<code>org.apache.tinkerpop.gremlin.language.translator</code> package, because 
they now depend on the ANTLR grammar in
-<code>gremlin-language</code> to handled the translation process. Making this 
change allowed for a more accurate translation of
-Gremlin that doesn&#8217;t need to rely on reflection and positional arguments 
to determine which step was intended for use.</p>
-</div>
-<div class="paragraph">
-<p>Another important change was the introduction of specific translators for 
Groovy and Java. While Groovy translation
-tends to work for most Java cases, there is syntax specific to Groovy where it 
does not. With a specific Java
-translator, the translation process can be more accurate and less error 
prone.</p>
-</div>
-<div class="paragraph">
-<p>The syntax for the translators has simplified as well. The translator 
function now takes a Gremlin string and a target
-language to translate to. Consider the following example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="text">gremlin&gt; 
GremlinTranslator.translate(&quot;g.V().out('knows')&quot;, Translator.GO)
-==&gt;g.V().Out(&quot;knows&quot;)</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Further note that Gremlin language variants produce 
<code>gremlin-language</code> compliant strings directly since bytecode was
-removed. As a result, all translators in .NET, Python, Go and Javascript have 
been removed.</p>
-</div>
-<div class="paragraph">
-<p>See: <a 
href="https://issues.apache.org/jira/browse/TINKERPOP-3028";>TINKERPOP-3028</a></p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_change_to_optionsstrategy_in_gremlin_python">Change to 
<code>OptionsStrategy</code> in <code>gremlin-python</code></h4>
-<div class="paragraph">
-<p>The <code>__init__()</code> syntax has been updated to be both more 
pythonic and more aligned to the <code>gremlin-lang</code> syntax.
-Previously, <code>OptionsStrategy()</code> took a single argument 
<code>options</code> which was a <code>dict</code> of all options to be set.
-Now, all options should be set directly as keyword arguments.</p>
-</div>
-<div class="paragraph">
-<p>For example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="python"><span 
class="comment"># 3.7 and before:</span>
-g.with_strategies(OptionsStrategy(options={<span class="string"><span 
class="delimiter">'</span><span class="content">key1</span><span 
class="delimiter">'</span></span>: <span class="string"><span 
class="delimiter">'</span><span class="content">value1</span><span 
class="delimiter">'</span></span>, <span class="string"><span 
class="delimiter">'</span><span class="content">key2</span><span 
class="delimiter">'</span></span>: <span 
class="predefined-constant">True</span>}))
-<span class="comment"># 4.x and newer:</span>
-g.with_strategies(OptionsStrategy(key1=<span class="string"><span 
class="delimiter">'</span><span class="content">value1</span><span 
class="delimiter">'</span></span>, key2=<span 
class="predefined-constant">True</span>))
-
-myOptions = {<span class="string"><span class="delimiter">'</span><span 
class="content">key1</span><span class="delimiter">'</span></span>: <span 
class="string"><span class="delimiter">'</span><span 
class="content">value1</span><span class="delimiter">'</span></span>, <span 
class="string"><span class="delimiter">'</span><span 
class="content">key2</span><span class="delimiter">'</span></span>: <span 
class="predefined-constant">True</span>}
-<span class="comment"># 3.7 and before:</span>
-g.with_strategies(OptionsStrategy(options=myOptions))
-<span class="comment"># 4.x and newer:</span>
-g.with_strategies(OptionsStrategy(**myOptions))</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_custom_traversal_strategy_construction">Custom Traversal Strategy 
Construction</h4>
-<div class="paragraph">
-<p>Traversal strategy construction has been updated such that it is no longer 
required to have concrete classes for each
-strategy being added to a graph traversal (use of concrete classes remains 
viable and is recommended for "native"
-TinkerPop strategies). To use strategies without a concrete class, 
<code>TraversalStrategyProxy</code> can be used in Java, and
-<code>TraversalStrategy</code> in Python.</p>
-</div>
-<div class="paragraph">
-<p>All the following examples will produce the script 
<code>g.withStrategies(new MyStrategy(config1:'my 
value',config2:123))</code>:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span 
class="predefined-type">Map</span>&lt;<span 
class="predefined-type">String</span>, <span 
class="predefined-type">Object</span>&gt; configMap = <span 
class="keyword">new</span> <span 
class="predefined-type">LinkedHashMap</span>&lt;&gt;();
-        configMap.put(<span class="string"><span 
class="delimiter">&quot;</span><span class="content">config1</span><span 
class="delimiter">&quot;</span></span>, <span class="string"><span 
class="delimiter">&quot;</span><span class="content">my value</span><span 
class="delimiter">&quot;</span></span>);
-        configMap.put(<span class="string"><span 
class="delimiter">&quot;</span><span class="content">config2</span><span 
class="delimiter">&quot;</span></span>, <span class="integer">123</span>);
-        TraversalStrategy strategyProxy = <span class="keyword">new</span> 
TraversalStrategyProxy(<span class="string"><span 
class="delimiter">&quot;</span><span class="content">MyStrategy</span><span 
class="delimiter">&quot;</span></span>, <span class="keyword">new</span> 
MapConfiguration(configMap));
-
-        GraphTraversal traversal = 
g.withStrategies(strategyProxy);</code></pre>
-</div>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code 
data-lang="python">g.with_strategies(TraversalStrategy(
-            strategy_name=<span class="string"><span 
class="delimiter">'</span><span class="content">MyStrategy</span><span 
class="delimiter">'</span></span>,
-            config1=<span class="string"><span class="delimiter">'</span><span 
class="content">my value</span><span class="delimiter">'</span></span>,
-            config2=<span class="integer">123</span>
-        ))</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_changes_to_serialization">Changes to Serialization</h4>
-<div class="paragraph">
-<p>The GLVs will only support GraphBinaryV4 and GraphSON support will be 
removed. This means that the serializer option
-that was available in most GLVs has been removed. GraphBinary is a more 
compact format and has support for the same
-types. This should lead to increased performance for users upgrading from any 
version of GraphSON to GraphBinary.</p>
-</div>
+<h4 id="_improved_server_memory_management">Improved Server Memory 
Management</h4>
 <div class="paragraph">
-<p>The number of serializable types has been reduced in V4. For example, only 
a single temporal type remains. You have two
-options when trying to work with data types whose serializer has been removed: 
first, you can attempt to convert the
-data to another type that still have a serializer or, second, the type may 
have been too specific and therefore removed
-in which case your provider should have a Provider Defined Type (PDT) for it. 
See the next paragraph for information on
-PDTs.</p>
+<p>A TinkerPop-specific <code>MessageSizeEstimator</code> was added to more 
accurately measure the size of responses being written
+back to the client. With a more accurate measurement, the server is able to 
better prevent exhaustion of direct memory
+by overly eager channels writing large result sets to slower clients. Overall, 
this change should help reduce the
+likelihood of the server hitting <code>OutOfMemoryExceptions</code> and other 
performance problems that may appear under certain
+workloads and network conditions.</p>
 </div>
 <div class="paragraph">
-<p>Custom serializers have also been removed so if you previously included 
those as part of your application, they should
-now be removed. In its place, PDTs have been introduced. In particular, there 
is the Primitive PDT and the Composite
-PDT. Primitive PDTs are string-based representations of a primitive type 
supported by your provider. Composite types
-contain a map of fields. You should consult your provider&#8217;s 
documentation to determine what types of fields a
-particular PDT may contain.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_changes_to_authentication_and_authorization">Changes to 
Authentication and Authorization</h4>
-<div class="paragraph">
-<p>With the move to HTTP, the only authentication option supported 
out-of-the-box is HTTP basic access authentication
-(username/password). The SASL-based authentication mechanisms are no longer 
supported (e.g. Kerberos). Your graph
-system provider may choose to implement other authentication mechanisms over 
HTTP which you would have to use via a
-request interceptor. Refer to your provider&#8217;s documentation to determine 
if other authentication mechanisms are
-available.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_transactions_disabled">Transactions Disabled</h4>
-<div class="admonitionblock important">
-<table>
-<tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">
-4.0 Milestone Release - Transactions are currently disabled and use of 
<code>tx()</code> will return an error.
-</td>
-</tr>
-</table>
-</div>
+<p>It is worth noting that logging around the 
<code>writeBufferHighWaterMark</code> has been modified to include a bit more
+information about the pause. This warning formerly was only issued on the 
first pause per request. Additional pauses
+for that request would not be noted in the logs. The warnings now appear 
periodically for a request, immediately for
+the first pause and then warnings will continue for subsequent pauses using an 
exponential backoff.</p>
 </div>
-<div class="sect3">
-<h4 id="_result_bulking_changes">Result Bulking Changes</h4>
 <div class="paragraph">
-<p>Previous versions of the Gremlin Server would attempt to "bulk" the result 
if bytecode was used in the request. This
-"bulking" increased performance by sending similar results once with a count 
of occurrences. Starting in 4.0, Gremlin
-Server will bulk based on a newly introduced <code>bulked</code> field in the 
<code>RequestMessage</code>. It only applies to GraphBinary and
-<code>gremlin-lang</code> requests and other requests won&#8217;t be bulked. 
This can be toggled in the language variants by setting a
-boolean value with <code>enableBulkedResult()</code> in the 
<code>Cluster</code> settings.</p>
+<p>See: <a 
href="https://issues.apache.org/jira/browse/TINKERPOP-3124";>TINKERPOP-3124</a></p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_gremlin_java_changes">Gremlin Java Changes</h4>
+<h4 id="_channel_metrics">Channel Metrics</h4>
 <div class="paragraph">
-<p>Connection pooling has been updated to work with HTTP. Previously, 
connections could only be opened one at a time, but
-this has changed and now many connections can be opened at the same time. This 
supports bursty workloads where many
-queries may be issued within a short period of time. Connections are no longer 
closed based on how "busy" they are
-based on the <code>minInProcessPerConnection</code> and 
<code>minSimultaneousUsagePerConnection</code>, rather they are closed based on 
an
-idle timeout called <code>idleConnectionTimeout</code>. Because the number of 
connections can increase much faster and connections
-are closed based on a timeout, the <code>minConnectionPoolSize</code> option 
has been removed and there may be zero connections
-available if the driver has been idle for a while.</p>
+<p>Gremlin Server has three new metrics in the 
<code>org.apache.tinkerpop.gremlin.server.GremlinServer</code> space:
+<code>channels.paused</code>, <code>channels.total</code>, and 
<code>channels.write-pauses</code>. These metrics are designed to provide more 
insight
+into channel (websocket and http) operations to use as a tool in understanding 
server memory issues and latency.</p>
 </div>
 <div class="paragraph">
-<p>The Java driver can currently handle a response that is a maximum of 2^31-1 
(<code>Integer.MAX_VALUE</code>) bytes in size.
-Queries that return more data will have to be separated into multiple queries 
that return less data.</p>
+<p>See: <a 
href="https://tinkerpop.apache.org/docs/3.7.4/reference/#metrics";>Reference 
Documentation - Metrics</a></p>
 </div>
 </div>
 </div>
 <div class="sect2">
 <h3 id="_upgrading_for_providers">Upgrading for Providers</h3>
 <div class="sect3">
-<h4 id="_renaming_nonestep_to_discardstep">Renaming NoneStep to 
DiscardStep</h4>
-<div class="paragraph">
-<p>NoneStep, which was primarily used by <code>iterate()</code> to discard 
traversal results in remote contexts, has been renamed to
-DiscardStep. In its place is a new list filtering NoneStep, which takes a 
predicate as an argument and passes lists with
-no elements matching the predicate.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_changes_to_serialization_2">Changes to Serialization</h4>
-<div class="paragraph">
-<p>The V4 versions of GraphBinary and GraphSON are being introduced. Support 
for the older versions of GraphBinary (V1)
-and GraphSON (V1-3) is removed. Upon the full release of 4.0, the GLVs will 
only use GraphBinary, however, the Gremlin
-Server will support both GraphSON and GraphBinary. The following is a list of 
the major changes to the GraphBinary
-format:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>Removed type serializers:</p>
-<div class="ulist">
-<ul>
-<li>
-<p>Period</p>
-</li>
-<li>
-<p>Date</p>
-</li>
-<li>
-<p>TimeStamp</p>
-</li>
-<li>
-<p>Instant</p>
-</li>
-<li>
-<p>ZonedDateTime</p>
-</li>
-<li>
-<p>OffsetTime</p>
-</li>
-<li>
-<p>LocalDateTime</p>
-</li>
-<li>
-<p>LocalDate</p>
-</li>
-<li>
-<p>LocalTime</p>
-</li>
-<li>
-<p>MonthDay</p>
-</li>
-<li>
-<p>YearMonth</p>
-</li>
-<li>
-<p>Year</p>
-</li>
-<li>
-<p>ZoneOffset</p>
-</li>
-<li>
-<p>BulkSet</p>
-</li>
-<li>
-<p>Class</p>
-</li>
-<li>
-<p>Binding</p>
-</li>
-<li>
-<p>Bytecode</p>
-</li>
-<li>
-<p>Barrier</p>
-</li>
-<li>
-<p>Cardinality</p>
-</li>
-<li>
-<p>Column</p>
-</li>
-<li>
-<p>Operator</p>
-</li>
-<li>
-<p>Order</p>
-</li>
-<li>
-<p>Pick</p>
-</li>
-<li>
-<p>Pop</p>
-</li>
-<li>
-<p>Scope</p>
-</li>
-<li>
-<p>Merge</p>
-</li>
-<li>
-<p>DT</p>
-</li>
-<li>
-<p>Lambda</p>
-</li>
-<li>
-<p>P</p>
-</li>
-<li>
-<p>Traverser</p>
-</li>
-<li>
-<p>TextP</p>
-</li>
-<li>
-<p>TraversalStrategy</p>
-</li>
-<li>
-<p>Metrics</p>
-</li>
-<li>
-<p>TraversalMetrics</p>
-</li>
-<li>
-<p>InetAddress</p>
-</li>
-</ul>
-</div>
-</li>
-<li>
-<p>Byte is redefined from being unsigned byte to a signed byte.</p>
-</li>
-<li>
-<p>List has a <code>0x02</code> value_flag used to denote bulking.</p>
-</li>
-<li>
-<p>Map has a <code>0x02</code> value_flag used to denote ordering.</p>
-</li>
-<li>
-<p><code>Element</code> (Vertex, Edge, VertexProperty) labels have been 
changed from <code>String</code> to <code>List</code> of 
<code>String</code>.</p>
-</li>
-<li>
-<p><code>Element</code> (Vertex, Edge, VertexProperty) properties are no 
longer null and are <code>List</code> of <code>Property</code>.</p>
-</li>
-<li>
-<p>Custom is replaced with Provider Defined Types</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>One of the biggest differences is in datetime support. Previously, in the 
Java implementation, <code>java.util.Date</code>,
-<code>java.sql.Timestamp</code> and most types from the <code>java.time</code> 
package had serializers. This is isn&#8217;t the case in GraphSON 4
-as only <code>java.time.OffsetDateTime</code> is supported. Java provides 
methods to convert amongst these classes so they should
-be used to convert your data to and from 
<code>java.time.OffsetDateTime</code>.</p>
-</div>
-<div class="paragraph">
-<p>The <code>GraphSONSerializerProvider</code> is not used in GraphSON 4. The 
<code>GraphSONSerializerProvider</code> uses the
-<code>ToStringSerializer</code> for any unknown type and was used in previous 
GraphSON versions. Because GraphSON 4 is only
-intended to serialize specific types and not used as a general serializer, 
GraphSON 4 serializers will throw an error
-when encountering unknown types.</p>
-</div>
-</div>
-<div class="sect3">
 <h4 id="_graph_system_providers">Graph System Providers</h4>
-<div class="sect4">
-<h5 
id="_abstractauthenticatorhandler_constructor">AbstractAuthenticatorHandler 
Constructor</h5>
-<div class="paragraph">
-<p>The deprecated one-arg constructor for 
<code>AbstractAuthenticationHandler</code> has been removed along with two-arg 
constructors
-for the implementations. Gremlin Server formerly supported the two-arg 
<code>Authenticator</code>, and <code>Settings</code> constructor for
-instantiating new custom instances. It now expects implementations of 
<code>AbstractAuthenticationHandler</code> to use a
-three-arg constructor that takes <code>Authenticator</code>, 
<code>Authorizer</code>, and <code>Settings</code>.</p>
-</div>
-</div>
-<div class="sect4">
-<h5 id="_graphmanager_changes">GraphManager Changes</h5>
-<div class="paragraph">
-<p>The <code>beforeQueryStart()</code>, <code>onQueryError()</code>, and 
<code>onQuerySuccess()</code> of <code>GraphManager</code> have been removed. 
These were
-originally intended to give providers more insight into when execution occurs 
in the server and the outcome of that
-execution. However, they depended on <code>RequestMessage</code> containing a 
Request ID, which isn&#8217;t the case anymore.</p>
-</div>
-</div>
-<div class="sect4">
-<h5 id="_gremlin_server_updates">Gremlin Server Updates</h5>
-<div class="paragraph">
-<p>The <code>OpProcessor</code> extension point of the server has been 
removed. In order to extend the functionality of the Gremlin
-Server, you have to implement your own <code>Channelizer</code>.</p>
-</div>
-<div class="paragraph">
-<p>If you are a provider that makes use of the Gremlin Server, you may need to 
update server configuration YAML files that
-you provide to your users. With the change from WebSockets to HTTP, some of 
the previous default values are invalid and
-some of the fields no longer exist. See <a 
href="https://tinkerpop.apache.org/docs/4.0.0/reference/#_configuring_2";>options</a>
-for an updated list. One of the most important changes is to the 
<code>Channelizer</code> configuration as only the
-<code>HttpChannelizer</code> remains and the rest have been removed.</p>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_graph_driver_providers">Graph Driver Providers</h4>
-<div class="sect4">
-<h5 id="_application_layer_protocol_support">Application Layer Protocol 
Support</h5>
-<div class="paragraph">
-<p>HTTP/1.1 is now the only supported application-layer protocol and 
WebSockets support is dropped. Please follow the
-instructions in the
-<a 
href="https://tinkerpop.apache.org/docs/4.0.0/dev/provider/#_graph_driver_provider_requirements";>provider
 documentation</a>
-for more detailed information. The subprotocol remains fairly similar but has 
been adjusted to work better with HTTP.
-Also, the move to HTTP means that SASL has been removed as an authentication 
mechanism and only HTTP basic remains.</p>
-</div>
-</div>
-<div class="sect4">
-<h5 id="_request_interceptor">Request Interceptor</h5>
-<div class="paragraph">
-<p>It is strongly recommended that every graph driver provider give a way for 
users to intercept and modify the HTTP
-request before it is sent off to the server. This capability is needed in 
cases where the graph system provider has
-additional functionality that can be enabled by modifying the HTTP request.</p>
-</div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<h1 id="_tinkerpop_3_7_0" class="sect0">TinkerPop 3.7.0</h1>
-<div class="openblock partintro">
-<div class="content">
-<div class="imageblock">
-<div class="content">
-<img 
src="https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-zamfir.png";
 alt="gremlin zamfir" width="185">
-</div>
-</div>
-<div class="paragraph">
-<p><strong>Gremfir Master of the Pan Flute</strong></p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_tinkerpop_3_7_4">TinkerPop 3.7.4</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p><strong>Release Date: NOT OFFICIALLY RELEASED YET</strong></p>
-</div>
-<div class="paragraph">
-<p>Please see the <a 
href="https://github.com/apache/tinkerpop/blob/3.7.4/CHANGELOG.asciidoc#release-3-7-4";>changelog</a>
 for a
-complete list of all the modifications that are part of this release.</p>
-</div>
-<div class="sect2">
-<h3 id="_upgrading_for_users_2">Upgrading for Users</h3>
 
 </div>
-<div class="sect2">
-<h3 id="_upgrading_for_providers_2">Upgrading for Providers</h3>
 <div class="sect3">
-<h4 id="_graph_system_providers_2">Graph System Providers</h4>
-
-</div>
-<div class="sect3">
-<h4 id="_graph_driver_providers_2">Graph Driver Providers</h4>
+<h4 id="_graph_driver_providers">Graph Driver Providers</h4>
 
 </div>
 </div>
@@ -2658,7 +1972,7 @@ complete list of all the modifications t
 complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_3">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_2">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_graphbinary_compatibility">GraphBinary Compatibility</h4>
 <div class="paragraph">
@@ -2711,7 +2025,7 @@ complete list of all the modifications t
 complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_4">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_3">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_string_manipulation_steps">String Manipulation Steps</h4>
 <div class="paragraph">
@@ -3090,9 +2404,9 @@ See: <a href="https://issues.apache.org/
 </div>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_providers_3">Upgrading for Providers</h3>
+<h3 id="_upgrading_for_providers_2">Upgrading for Providers</h3>
 <div class="sect3">
-<h4 id="_graph_system_providers_3">Graph System Providers</h4>
+<h4 id="_graph_system_providers_2">Graph System Providers</h4>
 <div class="sect4">
 <h5 id="_multiproperty_and_metaproperty_test_tags">MultiProperty and 
MetaProperty Test Tags</h5>
 <div class="paragraph">
@@ -3124,7 +2438,7 @@ removed.</p>
 <p>Please see the <a 
href="https://github.com/apache/tinkerpop/blob/3.7.0/CHANGELOG.asciidoc#release-3-7-0";>changelog</a>
 for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_5">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_4">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_string_concat_step">String concat() Step</h4>
 <div class="paragraph">
@@ -3695,9 +3009,9 @@ the JVM. The following are only examples
 </div>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_providers_4">Upgrading for Providers</h3>
+<h3 id="_upgrading_for_providers_3">Upgrading for Providers</h3>
 <div class="sect3">
-<h4 id="_graph_driver_providers_3">Graph Driver Providers</h4>
+<h4 id="_graph_driver_providers_2">Graph Driver Providers</h4>
 <div class="sect4">
 <h5 id="_gremlin_net_nullable_reference_types">Gremlin.NET: Nullable Reference 
Types</h5>
 <div class="paragraph">
@@ -3719,7 +3033,7 @@ We also used this opportunity to convert
 </div>
 </div>
 <div class="sect3">
-<h4 id="_graph_system_providers_4">Graph System Providers</h4>
+<h4 id="_graph_system_providers_3">Graph System Providers</h4>
 <div class="sect4">
 <h5 id="_reworked_gremlin_socket_server">Reworked Gremlin Socket Server</h5>
 <div class="paragraph">
@@ -3792,7 +3106,7 @@ In previous version <code>toString</code
 complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_6">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_5">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_runtime_updates">Runtime Updates</h4>
 <div class="paragraph">
@@ -3814,7 +3128,7 @@ complete list of all the modifications t
 complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_7">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_6">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_runtime_version_upgrades">Runtime Version Upgrades</h4>
 <div class="paragraph">
@@ -3853,7 +3167,7 @@ Gremlin.Net driver expected.</p>
 complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_providers_5">Upgrading for Providers</h3>
+<h3 id="_upgrading_for_providers_4">Upgrading for Providers</h3>
 <div class="paragraph">
 <p>The <code>HttpGremlinRequestEncoder</code> constructor has been deprecated 
in favor of one with an additional parameter <code>boolean 
userAgentEnabled</code>.
 User agent HTTP headers can now be encoded if this flag is enabled.</p>
@@ -3871,7 +3185,7 @@ User agent HTTP headers can now be encod

[... 963 lines stripped ...]


Reply via email to