Author: colegreer Date: Wed Jul 26 20:48:31 2023 New Revision: 1911298 URL: http://svn.apache.org/viewvc?rev=1911298&view=rev Log: Deploy docs for TinkerPop 3.7.0-SNAPSHOT
Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/furnace-boxes.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-biggremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-cyborggremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-firegremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-gremzilla.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-lavagremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-noodles.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-raygremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-robogremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-spidergremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-squirrelgremlin.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-whale.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-neptune.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-octocat.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-zamfir.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-diver.png (with props) tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-pulls.png (with props) tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/argfile tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/javadoc.sh (with props) tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/options Removed: tinkerpop/site/javadocs/3.7.0-SNAPSHOT/core/ tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/allclasses-frame.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/allclasses-noframe.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/constant-values.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/deprecated-list.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/help-doc.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/index-all.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/index.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/org/ tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/overview-frame.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/overview-summary.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/overview-tree.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/package-list tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/script.js tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/serialized-form.html tinkerpop/site/javadocs/3.7.0-SNAPSHOT/full/stylesheet.css Modified: tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/developer/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/io/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/provider/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/recipes/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/reference/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/tutorials/getting-started/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/tutorials/gremlins-anatomy/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/tutorials/the-gremlin-console/index.html tinkerpop/site/docs/3.7.0-SNAPSHOT/upgrade/index.html Modified: tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/developer/index.html URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/developer/index.html?rev=1911298&r1=1911297&r2=1911298&view=diff ============================================================================== --- tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/developer/index.html (original) +++ tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/developer/index.html Wed Jul 26 20:48:31 2023 @@ -897,7 +897,6 @@ table.CodeRay td.code>pre{padding:0} </li> <li><a href="#site">Site</a></li> <li><a href="#logging">Logging</a></li> -<li><a href="#io">IO Documentation and Testing</a></li> </ul> </li> <li><a href="#_for_providers">For Providers</a></li> @@ -1915,21 +1914,6 @@ installed and running on your system.</p <div class="title">Important</div> </td> <td class="content"> -Beware of unexpected or unwanted changes on <code>package-lock.json</code> files when committing and merging. Changes -should not change SHA1 hashes to SHA512 and the <code>lockfileVersion</code> should be "2" for <code>3.6-dev</code> and "1" for <code>3.5-dev</code>. -If the <code>lockfileVersion</code> has changed somehow then it likely means that you’ve used the wrong version of npm as part of -the build. Ensure the correct version is in use for the correct branch. -</td> -</tr> -</table> -</div> -<div class="admonitionblock important"> -<table> -<tr> -<td class="icon"> -<div class="title">Important</div> -</td> -<td class="content"> Beware of unexpected or unwanted changes on <code>package-lock.json</code> files when committing and merging. </td> </tr> @@ -1967,7 +1951,7 @@ Consider using <a href="https://github.c <div class="sect2"> <h3 id="go-environment">Go Environment</h3> <div class="paragraph"> -<p>The build optionally requires <a href="https://go.dev/dl/">Go</a> (>=1.17) to work with the <code>gremlin-go</code> module. Creating an +<p>The build optionally requires <a href="https://go.dev/dl/">Go</a> (>=1.20) to work with the <code>gremlin-go</code> module. Creating an empty <code>.glv</code> file will enable running of tests inside of Maven. If <code>.glv</code> file does not exist, TinkerPop will still build with Maven, but Go projects will be skipped.</p> </div> @@ -2149,9 +2133,6 @@ mvn -Dmaven.javadoc.skip=true --projects </div> </li> <li> -<p>Generate <a href="#building-testing">test resources</a> for <code>gremlin-io-test</code>: <code>mvn clean install -pl :gremlin-io-test -Dio</code></p> -</li> -<li> <p>Regenerate toy graph data (only necessary given changes to IO classes): <code>mvn clean install -Dio</code> from <code>tinkergraph-gremlin</code> directory</p> <div class="ulist"> <ul> @@ -2216,7 +2197,8 @@ mvn -Dmaven.javadoc.skip=true --projects <div class="ulist"> <ul> <li> -<p>Execute with the <code>-DincludeNeo4j</code> option to include transactional tests.</p> +<p>Execute with the <code>-DincludeNeo4j</code> option to include neo4j-gremlin tests. As of 3.7.0, transactional tests on Gremlin Server, Gremlin Driver, +and GLVs will run automatically with integration tests against the TinkerTransactionGraph.</p> </li> <li> <p>Execute with the <code>-DuseEpoll</code> option to try to use Netty native transport (works on Linux, but will fallback to Java NIO on other OS).</p> @@ -4439,104 +4421,6 @@ best for everyone’s general purpos </div> </div> </div> -<div class="sect1"> -<h2 id="io">IO Documentation and Testing</h2> -<div class="sectionbody"> -<div class="paragraph"> -<p>The <a href="https://tinkerpop.apache.org/docs/3.7.0-SNAPSHOT/dev/io">IO Documentation</a> provides more details into GraphML and GraphSON -with a special focus on the needs of developers who are working directly with these formats. GraphSON gets -the greatest focus here as it is used as the primary IO format for <a href="https://tinkerpop.apache.org/docs/3.7.0-SNAPSHOT/reference/#gremlin-drivers-variants">GLVs</a>. -This documentation is largely generated from the <code>gremlin-io-test</code> module found under <code>gremlin-tools</code>. The -<code>gremlin-io-test</code> module also includes a testing framework which validates that formats don’t break between TinkerPop -versions. Unfortunately, this module requires some maintenance to ensure that the documentation and tests both stay -updated.</p> -</div> -<div class="paragraph"> -<p>The <code>gremlin-io-test</code> module contains a set of files in the test resources that are statically bound to the version in -which they were generated. Older versions should never be modified. The only time changes to these resources should be -accepted should be for the current <code>SNAPSHOT</code> version. The test resources are generated from the <code>Model</code> class which -contains the objects that will undergo serialization for purpose of testing. Note that these same objects in the -<code>Model</code> are also used to generate documentation.</p> -</div> -<div class="paragraph"> -<p>To generate these test resources and documentation snippets based on the <code>Model</code>, use this Maven command:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="CodeRay highlight"><code data-lang="text">mvn clean install -pl :gremlin-io-test -Dio</code></pre> -</div> -</div> -<div class="paragraph"> -<p>This command will generate two directories in the <code>/target</code> output directory of <code>gremlin-io-test</code>: <code>test-case-data</code> -and <code>dev-docs</code>. The contents of <code>test-case-data</code> represents the serialized <code>Model</code> objects that can be copied to the -test resources and the contents of the <code>dev-docs</code> contains asciidoc snippets that can be copied to the IO documentation.</p> -</div> -<div class="paragraph"> -<p>Generating data files in the fashion mentioned above with Maven is only good for versions of TinkerPop on the 3.3.x -line because the <code>gremlin-io-test</code> module did not exist in 3.2.x. Of course, compatibility is still tested back to -those older versions. To generate test data from 3.2.x, there are Groovy scripts in the comments of the -<code>graphson.asciidoc</code> files that can copy/pasted to the Gremlin Console. They will generate the batch of test files -needed for <code>gremlin-io-test</code>.</p> -</div> -<div class="paragraph"> -<p>When does this command need to be executed?</p> -</div> -<div class="olist arabic"> -<ol class="arabic"> -<li> -<p>If a new object is added to the <code>Model</code> - in this case, the newly created data files should be copied to the -appropriate test resource directory for the current <code>SNAPSHOT</code> version and the appropriate asciidoc snippet added to -the IO asciidocs.</p> -</li> -<li> -<p>After the release of a new TinkerPop version - in this case, a new test resource directory should be created for -the <code>SNAPSHOT</code> version and the generated <code>test-case-data</code> copied in appropriately.</p> -</li> -</ol> -</div> -<div class="paragraph"> -<p>The second case, does require some additional discussion. When a new version is added the following classes will need -to be updated in the following ways:</p> -</div> -<div class="paragraph"> -<p><strong>GraphBinaryCompatibility</strong> - Include new GraphBinary 1.0 enums for the current <code>SNAPSHOT</code>.</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="CodeRay highlight"><code data-lang="java">V1_3_4_3(<span class="string"><span class="delimiter">"</span><span class="content">3.4.3</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">1.0</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">v1</span><span class="delimiter">"</span></span>), -V1_3_4_4(<span class="string"><span class="delimiter">"</span><span class="content">3.4.4</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">1.0</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">v1</span><span class="delimiter">"</span></span>);</code></pre> -</div> -</div> -<div class="paragraph"> -<p><strong>GraphSONCompatibility</strong> - Include new GraphSON enums for each of the various GraphSON configurations and versions.</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="CodeRay highlight"><code data-lang="java">V1D0_3_3_x(<span class="string"><span class="delimiter">"</span><span class="content">3.3.x</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">1.0</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">v1d0</span><span class="delimiter">"</span></span>), -V2D0_PARTIAL_3_3_x(<span class="string"><span class="delimiter">"</span><span class="content">3.3.x</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">2.0</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">v2d0-partial</span><span class="delimiter">"</span></span>), -V2D0_NO_TYPE_3_3_x(<span class="string"><span class="delimiter">"</span><span class="content">3.3.x</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">2.0</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">v2d0-no-types</span><span class="delimiter">"</span></span>), -V3D0_PARTIAL_3_3_x(<span class="string"><span class="delimiter">"</span><span class="content">3.3.x</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">3.0</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">v3d0</span><span class="delimiter">"</span></span>);</code></pre> -</div> -</div> -<div class="paragraph"> -<p><strong>GraphBinaryCompatibilityTest</strong> - Add the newly included <code>GraphBinaryCompatibility</code> enums to the test parameters being -careful to match the appropriate "mapper" to the right version.</p> -</div> -<div class="paragraph"> -<p><strong>GraphSONUntypedCompatibilityTest</strong> - Add the newly included GraphSON 1.0 and 2.0 "untyped" enums to the test parameters -being careful to match the appropriate "mapper" to the right version.</p> -</div> -<div class="paragraph"> -<p><strong>GraphSONTypedCompatibilityTest</strong> - Add the newly included GraphSON 3.0 and 2.0 "typed" enums to the test parameters -being careful to match the appropriate "mapper" to the right version.</p> -</div> -<div class="paragraph"> -<p>At this point, all of the IO tests are rigged up properly and assuming the test resources are available a standard -<code>mvn clean install</code> should execute the compatibility tests and validate that everything is working as expected and -that there are no breaks in serialization processes.</p> -</div> -</div> -</div> <h1 id="_for_providers" class="sect0">For Providers</h1> <div class="openblock partintro"> <div class="content"> @@ -4831,19 +4715,6 @@ Resolution may have been assigned).</p> </ol> </div> </li> -<li> -<p>Be sure that <code>gremlin-io-test</code> has been updated (from 3.3.0 on - this module was not available prior to the 3.3.x line)</p> -<div class="olist lowerroman"> -<ol class="lowerroman" type="i"> -<li> -<p>This is typically a post-release task, but it’s worth checking to be sure in case the step was somehow overlooked.</p> -</li> -<li> -<p>Instructions for updating the module are described in the <a href="#io">IO Documentation and Testing Section</a>.</p> -</li> -</ol> -</div> -</li> </ol> </div> </li> @@ -5274,6 +5145,9 @@ and <a href="https://hub.docker.com/r/ti Releases" recall that the hyperlink must change to point to version in the <a href="https://archive.apache.org/dist/tinkerpop/">Apache Archives</a>.</p> </li> <li> +<p>Update <code>docs/gremlint/package.json</code> with the latest version of gremlint.</p> +</li> +<li> <p>Preview changes locally with <code>bin/generate-home.sh</code> then commit changes to git.</p> </li> </ol> @@ -6501,7 +6375,7 @@ roadmap:</p> </div> <div id="footer"> <div id="footer-text"> -Last updated 2023-05-24 17:05:39 -0400 +Last updated 2023-07-26 13:46:21 -0700 </div> </div> </body> Modified: tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/io/index.html URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/io/index.html?rev=1911298&r1=1911297&r2=1911298&view=diff ============================================================================== --- tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/io/index.html (original) +++ tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/io/index.html Wed Jul 26 20:48:31 2023 @@ -1375,8 +1375,27 @@ the basis for the format. <div class="paragraph"> <p>The following sections discuss the GraphSON object serialization format as available in each version of GraphSON. Core to understanding these sections is to understand that GraphSON can be produced with and without types being embedded -in the output. Without embedded types, the type system is restricted to standard JSON types of Object, List, String, -Number, Boolean and that will lead to "lossyness" in the format (i.e. a float will be interpreted as double).</p> +in the output. Without embedded types, the type system is restricted to standard JSON types of <code>Object</code>, <code>List</code>, +<code>String</code>, <code>Number</code>, <code>Boolean</code> and that will lead to "lossyness" in the format (i.e. a float will be interpreted as +double). It is also worth considering that choosing a GraphSON format without embedded types may also restrict the +type of results that can be obtained. For example, <code>g.V().groupCount()</code> returns a format with a <code>Map</code>. That’s fine +for GraphSON, but the key in that <code>Map</code> is a complex object (i.e. a <code>Vertex</code>) and as such is not compatible with JSON +itself which can only support <code>String</code> keys.</p> +</div> +<div class="admonitionblock warning"> +<table> +<tr> +<td class="icon"> +<div class="title">Warning</div> +</td> +<td class="content"> +The <code>application/json</code> mime type is shared with all versions of GraphSON and their variations and does not +reflect a particular one. Servers will return the GraphSON version and variation that this mime type is configured for +and it could be different (or change) from server to server. When building applications, it is recommended that the +mime type is made explicit on requests to avoid breaking changes or unexpected results. +</td> +</tr> +</table> </div> </div> </div> @@ -1384,7 +1403,20 @@ Number, Boolean and that will lead to "l <h2 id="graphson-1d0">Version 1.0</h2> <div class="sectionbody"> <div class="paragraph"> -<p>Version 1.0 of GraphSON was released with TinkerPop 3.0.0. When types are embedded, GraphSON uses the standard +<p>Version 1.0 of GraphSON was released with TinkerPop 3.0.0. It is referred to by the following mime types:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><code>application/vnd.gremlin-v1.0+json</code> - types embedded</p> +</li> +<li> +<p><code>application/vnd.gremlin-v1.0+json;types=false</code> - no types embedded</p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>When types are embedded, GraphSON uses the standard <a href="https://github.com/FasterXML/jackson-databind">Jackson</a> type embedding approach that writes the full Java class name into a "@class" field in the JSON. While this approach isn’t especially language agnostic it does at least give some hint as to what the expected type is.</p> @@ -2110,19 +2142,21 @@ types. While the <a href="#graphson-1d0" do the opposite as embedded types is the expected manner in which non-JVM languages will interact with TinkerPop.</p> </div> <div class="paragraph"> -<p>With GraphSON 2.0, there are essentially two type formats:</p> +<p>GraphSON 2.0 is referred to by the following mime types:</p> </div> <div class="ulist"> <ul> <li> -<p>A non-typed value which is assumed the type implied by JSON. These non-types are limited to <code>String</code>, <code>Boolean</code>, -<code>Map</code> and <code>Collection</code>.</p> +<p><code>application/vnd.gremlin-v2.0+json</code> - Values are typed by way of a "complex object" that defines a <code>@typeId</code> and +<code>@value</code>. The <code>@typeId</code> is composed of two parts: a namespace and a type name, in the format "namespace:typename". A +namespace allows TinkerPop providers and users to categorize custom types that they may implement and avoid collision +with existing TinkerPop types. By default, TinkerPop types will have the namespace "g" (or "gx" for "extended" types).</p> </li> <li> -<p>All other values are typed by way of a "complex object" that defines a <code>@typeId</code> and <code>@value</code>. The <code>@typeId</code> is -composed of two parts: a namespace and a type name, in the format "namespace:typename". A namespace allows TinkerPop -providers and users to categorize custom types that they may implement and avoid collision with existing TinkerPop -types. By default, TinkerPop types will have the namespace "g" (or "gx" for "extended" types).</p> +<p><code>application/vnd.gremlin-v2.0+json;types=false</code> - Values do not have their types embedded in the JSON. This format +does not follow the 1.0 untyped format in that it does not include a "type" field for <code>Vertex</code> and <code>Edge</code> objects and +it serializes property values in those graph objects with a <code>label</code> field which is redundant as the "key" field for +that property will already represent that value.</p> </li> </ul> </div> @@ -4654,13 +4688,13 @@ types. By default, TinkerPop types will <div class="sect2"> <h3 id="_extended">Extended</h3> <div class="paragraph"> -<p>Note that the "extended" types require the addition of the separate <code>GraphSONXModuleV2d0</code> module as follows:</p> +<p>Note that the "extended" types require the addition of the separate <code>GraphSONXModuleV2</code> module as follows:</p> </div> <div class="listingblock"> <div class="content"> <pre class="CodeRay highlight"><code data-lang="java">mapper = GraphSONMapper.build(). typeInfo(TypeInfo.PARTIAL_TYPES). - addCustomModule(GraphSONXModuleV2d0.build().create(<span class="predefined-constant">false</span>)). + addCustomModule(GraphSONXModuleV2.build()). version(GraphSONVersion.V2_0).create().createMapper()</code></pre> </div> </div> @@ -4906,24 +4940,18 @@ types. By default, TinkerPop types will <h2 id="graphson-3d0">Version 3.0</h2> <div class="sectionbody"> <div class="paragraph"> -<p>Version 3.0 of GraphSON was first introduced on TinkerPop 3.3.0 and is the default format when not specified as of this -version. It is quite similar to GraphSON 2.0 and in most cases will appear compatible to the eye, however there are -some critical differences:</p> +<p>Version 3.0 of GraphSON was first introduced on TinkerPop 3.3.0 and is represented by the <code>application/vnd.graphbinary-v3.0</code> +mime type. It was introduced as only having embedded types. It is quite similar to GraphSON 2.0 with embedded types +and in most cases will appear compatible to the eye, however there are some critical differences. GraphSON 2.0 relied +on JSON data types for collections like <code>Map</code> and <code>List</code>. In GraphSON 3.0, there is explicit typed support for <code>Map</code>, +<code>List</code> and <code>Set</code> as Gremlin relies on those types in quite specific ways that are not directly compatible with the +JSON definitions of those collections. In the case of <code>List</code> and <code>Set</code>, it was important to distinguish between the +two and for <code>Map</code> it was necessary to have the ability to return <code>Map</code> instances that did not have <code>String</code> keys +(e.g. <code>g.V().out().groupCount()</code>).</p> </div> -<div class="ulist"> -<ul> -<li> -<p>GraphSON 3.0 does not have an option to be typeless. Types are always embedded except for strings and boolean values -which are inferred from JSON types.</p> -</li> -<li> -<p>GraphSON 2.0 relied on JSON data types for collections like <code>Map</code> and <code>List</code>. In GraphSON 3.0, there is explicit -typed support for <code>Map</code>, <code>List</code> and <code>Set</code> as Gremlin relies on those types in quite specific ways that are not -directly compatible with the JSON definitions of those collections. In the case of <code>List</code> and <code>Set</code>, it was important -to distinguish between the two and for <code>Map</code> it was necessary to have the ability to return <code>Map</code> instances that did -not have <code>String</code> keys (e.g. <code>g.V().out().groupCount()</code>).</p> -</li> -</ul> +<div class="paragraph"> +<p>As of TinkerPop 3.7.0, GraphSON 3.0 also has a typeless representation referenced by the +<code>application/vnd.graphbinary-v3.0;types=false</code>. This format matches the format developed for 1.0.</p> </div> <div class="sect2"> <h3 id="_core_2">Core</h3> @@ -7123,7 +7151,7 @@ not have <code>String</code> keys (e.g. <div class="content"> <pre class="CodeRay highlight"><code data-lang="java">mapper = GraphSONMapper.build(). typeInfo(TypeInfo.PARTIAL_TYPES). - addCustomModule(GraphSONXModuleV3d0.build().create(<span class="predefined-constant">false</span>)). + addCustomModule(GraphSONXModuleV3.build()). version(GraphSONVersion.V3_0).create().createMapper()</code></pre> </div> </div> @@ -9056,7 +9084,7 @@ of the protocol, the value expected is < </div> <div id="footer"> <div id="footer-text"> -Last updated 2023-05-24 17:05:39 -0400 +Last updated 2023-07-26 13:46:21 -0700 </div> </div> </body> Modified: tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/provider/index.html URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/provider/index.html?rev=1911298&r1=1911297&r2=1911298&view=diff ============================================================================== --- tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/provider/index.html (original) +++ tinkerpop/site/docs/3.7.0-SNAPSHOT/dev/provider/index.html Wed Jul 26 20:48:31 2023 @@ -882,6 +882,7 @@ table.CodeRay td.code>pre{padding:0} <li><a href="#_steps">Steps</a> <ul class="sectlevel2"> <li><a href="#call-step">call()</a></li> +<li><a href="#concat-step">concat()</a></li> <li><a href="#dedup-step">dedup()</a></li> <li><a href="#element-step">element()</a></li> <li><a href="#merge-e-step">mergeE()</a></li> @@ -3064,10 +3065,10 @@ twenty. Under this model, the amount of <p>To demonstrate consider this example:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960756-1" type="radio" name="radio-set-1684960756-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960756-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960756-2" type="radio" name="radio-set-1684960756-1" class="tab-selector-2" /> - <label for="tab-1684960756-2" class="tab-label-2">groovy</label> + <input id="tab-1690402735-1" type="radio" name="radio-set-1690402735-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402735-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402735-2" type="radio" name="radio-set-1690402735-1" class="tab-selector-2" /> + <label for="tab-1690402735-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3075,9 +3076,9 @@ twenty. Under this model, the amount of <pre class="CodeRay highlight"><code data-lang="groovy">gremlin> cluster = Cluster.open() ==>localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span> gremlin> client = cluster.connect() -==>org.apache.tinkerpop.gremlin.driver.Client<span class="error">$</span>ClusteredClient<span class="error">@</span><span class="float">1444e35f</span> +==>org.apache.tinkerpop.gremlin.driver.Client<span class="error">$</span>ClusteredClient<span class="error">@</span><span class="integer">1</span>c8a2bec gremlin> aliased = client.alias(<span class="string"><span class="delimiter">"</span><span class="content">g</span><span class="delimiter">"</span></span>) -==>org.apache.tinkerpop.gremlin.driver.Client<span class="error">$</span>AliasClusteredClient<span class="error">@</span><span class="float">7e38d</span><span class="integer">2</span>a2 +==>org.apache.tinkerpop.gremlin.driver.Client<span class="error">$</span>AliasClusteredClient<span class="error">@</span><span class="integer">19273390</span> gremlin> g = traversal().withEmbedded(org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph.instance()) <span class="comment">//</span>// <b class="conum">(1)</b> ==>graphtraversalsource[emptygraph[empty], standard] gremlin> rs = aliased.submit(g.V().both().barrier().both().barrier()).all().get() <span class="comment">//</span>// <b class="conum">(2)</b> @@ -3416,9 +3417,9 @@ make their implementations available to <span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph</span>; <span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraphVariables</span>; <span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper</span>; -<span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0</span>; -<span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0</span>; -<span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0</span>; +<span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1</span>; +<span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2</span>; +<span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3</span>; <span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerProperty</span>; <span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex</span>; <span class="keyword">import</span> <span class="include">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertexProperty</span>; @@ -3436,9 +3437,9 @@ make their implementations available to TinkerGraph.class, TinkerGraphVariables.class, TinkerHelper.class, - TinkerIoRegistryV1d0.class, - TinkerIoRegistryV2d0.class, - TinkerIoRegistryV3d0.class, + TinkerIoRegistryV1.class, + TinkerIoRegistryV2.class, + TinkerIoRegistryV3.class, TinkerProperty.class, TinkerVertex.class, TinkerVertexProperty.class, @@ -4956,6 +4957,75 @@ will result in an <code>UnsupportedOpera </div> </div> <div class="sect2"> +<h3 id="concat-step">concat()</h3> +<div class="paragraph"> +<p><strong>Description:</strong> Concatenates the incoming String traverser with the input String arguments, and return the joined String.</p> +</div> +<div class="paragraph"> +<p><strong>Syntax:</strong> <code>concat()</code> | <code>concat(String…​)</code> | <code>concat(Traversal)</code></p> +</div> +<table class="tableblock frame-all grid-all stretch"> +<colgroup> +<col style="width: 20%;"> +<col style="width: 20%;"> +<col style="width: 20%;"> +<col style="width: 20%;"> +<col style="width: 20%;"> +</colgroup> +<thead> +<tr> +<th class="tableblock halign-left valign-top">Start Step</th> +<th class="tableblock halign-left valign-top">Mid Step</th> +<th class="tableblock halign-left valign-top">Modulated</th> +<th class="tableblock halign-left valign-top">Domain</th> +<th class="tableblock halign-left valign-top">Range</th> +</tr> +</thead> +<tbody> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock">N</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock">Y</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock">N</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td> +</tr> +</tbody> +</table> +<div class="paragraph"> +<p><strong>Arguments:</strong></p> +</div> +<div class="ulist"> +<ul> +<li> +<p><code>String…​</code> - If one or more String values are provided, they will be concatenated together with the +incoming traverser. If no argument is provided, the String value from the incoming traverser is returned.</p> +</li> +<li> +<p><code>Traversal</code> - The <code>Traversal</code> value must resolve to a <code>String</code>. The first result returned from the traversal will be +concatenated with the incoming traverser.</p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>Any <code>null</code> String values will be skipped when concatenated with non-<code>null</code> String values. If two <code>null</code> value are +concatenated, the <code>null</code> value will be propagated and returned.</p> +</div> +<div class="paragraph"> +<p><strong>Exceptions</strong></p> +</div> +<div class="ulist"> +<ul> +<li> +<p>If the incoming traverser is a non-String value then an <code>IllegalArgumentException</code> will be thrown.</p> +</li> +</ul> +</div> +<div class="paragraph"> +<p>See: <a href="https://github.com/apache/tinkerpop/tree/3.7.0-SNAPSHOT/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConcatStep.java">source</a>, +<a href="https://tinkerpop.apache.org/docs/3.7.0-SNAPSHOT/reference/#concat-step">reference</a></p> +</div> +</div> +<div class="sect2"> <h3 id="dedup-step">dedup()</h3> <div class="paragraph"> <p><strong>Description:</strong> Removes repeatedly seen results from the Traversal Stream.</p> @@ -5600,7 +5670,7 @@ being used for technical explanatory pur </div> <div id="footer"> <div id="footer-text"> -Last updated 2023-05-24 16:39:40 -0400 +Last updated 2023-07-26 13:24:43 -0700 </div> </div> </body> Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/furnace-boxes.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/furnace-boxes.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/furnace-boxes.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-biggremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-biggremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-biggremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-cyborggremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-cyborggremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-cyborggremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-firegremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-firegremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-firegremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-gremzilla.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-gremzilla.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-gremzilla.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-lavagremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-lavagremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-lavagremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-noodles.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-noodles.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-noodles.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-raygremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-raygremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-raygremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-robogremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-robogremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-robogremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-spidergremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-spidergremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-spidergremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-squirrelgremlin.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-squirrelgremlin.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-squirrelgremlin.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-whale.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-whale.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/future-whale.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-neptune.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-neptune.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-neptune.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-octocat.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-octocat.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-octocat.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-zamfir.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-zamfir.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/gremlin-zamfir.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-diver.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-diver.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-diver.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-pulls.png URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-pulls.png?rev=1911298&view=auto ============================================================================== Binary file - no diff available. Propchange: tinkerpop/site/docs/3.7.0-SNAPSHOT/images/rexster-pulls.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream