You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2020/09/02 15:40:42 UTC

[tinkerpop] branch master updated (486bc5d -> 2661f82)

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git.


    from 486bc5d  Merge branch '3.4-dev'
     new f1c6a16  Updated csproj template to use https for links.
     new a4a5579  Made links to GLV subsections consistent in their naming CTR
     new 2661f82  Merge branch '3.4-dev'

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 docs/src/reference/gremlin-variants.asciidoc | 50 ++++++++++++++++++++++------
 1 file changed, 39 insertions(+), 11 deletions(-)


[tinkerpop] 03/03: Merge branch '3.4-dev'

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 2661f8207aee4095151191e542f99a5d5fbee722
Merge: 486bc5d a4a5579
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Sep 2 11:40:12 2020 -0400

    Merge branch '3.4-dev'

 docs/src/reference/gremlin-variants.asciidoc | 50 ++++++++++++++++++++++------
 1 file changed, 39 insertions(+), 11 deletions(-)

diff --cc docs/src/reference/gremlin-variants.asciidoc
index 7696bfd,1013c8a..24cabd1
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@@ -307,12 -312,11 +311,13 @@@ GraphTraversalSource g = traversal().wi
  
  The `IoRegistry` tells the serializer what classes from the graph provider to auto-register during serialization.
  Gremlin Server roughly uses this same approach when it configures its serializers, so using this same model will
 -ensure compatibility when making requests. Obviously, it is possible to switch to GraphSON or GraphBinary by building
 -the appropriate `MessageSerializer` (`GraphSONMessageSerializerV3d0` or `GraphBinaryMessageSerializerV1` respectively)
 +ensure compatibility when making requests. Obviously, it is possible to switch to GraphSON or Gryo by using
 +the appropriate `MessageSerializer` (e.g. `GraphSONMessageSerializerV3d0` or `GryoMessageSerializerV3d0` respectively)
  in the same way and building that into the `Cluster` object.
  
 +NOTE: Gryo is no longer the preferred binary serialization format for Gremlin Server - please prefer GraphBinary.
 +
+ [[gremlin-java-lambda]]
  === The Lambda Solution
  
  Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
@@@ -721,13 -727,13 +730,14 @@@ With statics loaded its possible to rep
  Finally, statics includes all the `+__+`-methods and thus, anonymous traversals like `+__.out()+` can be expressed as below.
  That is, without the `+__+`-prefix.
  
 -[gremlin-python,modern]
 +[source,python]
  ----
 -g.V().repeat(out()).times(2).name.fold().toList()
 +>>> g.V().repeat(out()).times(2).name.fold().toList()
 +[['ripple', 'lop']]
  ----
  
- [[python-configuration]]
+ anchor:python-configuration[]
+ [[gremlin-python-configuration]]
  === Configuration
  
  The following table describes the various configuration options for the Gremlin-Python Driver. They
@@@ -809,16 -828,63 +820,17 @@@ Finally, Gremlin `Bytecode` that includ
  engine to to cache traversals that will be reused over and over again save that some parameterization may change. Thus,
  instead of translating, compiling, and then executing each submitted bytecode, it is possible to simply execute.
  
 -[gremlin-python,modern]
 +[source,python]
  ----
 -g.V(Bindings.of('id',1)).out('created').map(lambda: ("it.get().value('name').length()", "gremlin-groovy")).sum().toList()
 -g.V(Bindings.of('id',4)).out('created').map(lambda: ("it.get().value('name').length()", "gremlin-groovy")).sum().toList()
 +>>> g.V(Bindings.of('x',1)).out('created').map(lambda: "it.get().value('name').length()").sum().toList()
 +[3]
 +>>> g.V(Bindings.of('x',4)).out('created').map(lambda: "it.get().value('name').length()").sum().toList()
 +[9]
  ----
  
 -==== Native Python Lambdas
 -
 -To process lambdas in Python, the `GremlinJythonScriptEngine` must be enabled on the remote end. If that remote is
 -Gremlin Server, then these instructions can help configuration it. As an example, the
 -`conf/gremlin-server-modern-py.yaml` configuration maintains a `GremlinJythonScriptEngine`.
 -
 -[source,bash]
 -----
 -$ bin/gremlin-server.sh install org.apache.tinkerpop gremlin-python x.y.z
 -$ bin/gremlin-server.sh conf/gremlin-server-modern-py.yaml
 -[INFO] GremlinServer -
 -       \,,,/
 -       (o o)
 ----oOOo-(3)-oOOo---
 -
 -[INFO] GremlinServer - Configuring Gremlin Server from conf/gremlin-server-modern-py.yaml
 -[INFO] MetricManager - Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
 -[INFO] GraphManager - Graph [graph] was successfully configured via [conf/tinkergraph-empty.properties].
 -[INFO] ServerGremlinExecutor - Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
 -[INFO] ScriptEngines - Loaded gremlin-jython ScriptEngine
 -[INFO] ScriptEngines - Loaded gremlin-python ScriptEngine
 -[INFO] ScriptEngines - Loaded gremlin-groovy ScriptEngine
 -[INFO] GremlinExecutor - Initialized gremlin-groovy ScriptEngine with scripts/generate-modern.groovy
 -[INFO] ServerGremlinExecutor - Initialized GremlinExecutor and configured ScriptEngines.
 -[INFO] ServerGremlinExecutor - A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
 -[INFO] OpLoader - Adding the standard OpProcessor.
 -[INFO] OpLoader - Adding the session OpProcessor.
 -[INFO] OpLoader - Adding the traversal OpProcessor.
 -[INFO] TraversalOpProcessor - Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
 -[INFO] GremlinServer - Executing start up LifeCycleHook
 -[INFO] Logger$info - Loading 'modern' graph data.
 -[WARN] AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0 serialization class is deprecated.
 -[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v3.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0
 -[WARN] AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0 serialization class is deprecated.
 -[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v3.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0
 -[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v3.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0
 -[INFO] AbstractChannelizer - Configured application/json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0
 -[INFO] AbstractChannelizer - Configured application/vnd.graphbinary-v1.0 with org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1
 -[INFO] AbstractChannelizer - Configured application/vnd.graphbinary-v1.0-stringd with org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1
 -[INFO] GremlinServer$1 - Gremlin Server configured with worker thread pool of 1, gremlin pool of 8 and boss thread pool of 1.
 -[INFO] GremlinServer$1 - Channel started at port 8182.
 -----
 -
 -NOTE: The command to use `install` need only be executed once to gather `gremlin-python` dependencies into Gremlin Servers'
 -path. Future starts of Gremlin Server will not require that command.
 -
 -WARNING: As explained throughout the documentation, when possible <<a-note-on-lambdas,avoid>> lambdas. If lambdas
 -must be used, then consider submitting Groovy lambdas as opposed to Python-based ones. The `GremlinGroovyScriptEngine`
 -is far more featured and performant than its Jython sibling and will likely yield better results.
 +WARNING: As explained throughout the documentation, when possible <<a-note-on-lambdas,avoid>> lambdas.
  
+ [[gremlin-python-scripts]]
  === Submitting Scripts
  
  WARNING: TinkerPop does not recommend submitting script-based requests and generally continues to support this feature
@@@ -1225,26 -1296,8 +1247,27 @@@ must be written as
  g.V().Repeat(__.Out()).Times(2).Values<string>("name");
  ----
  
 +Gremlin allows for `Map` instances to include `null` keys, but `null` keys in C# `Dictionary` instances are not allowed.
 +It is therefore necessary to rewrite a traversal such as:
 +
 +[source,javascript]
 +----
 +g.V().groupCount().by('age')
 +----
 +
 +where "age" is not a valid key for all vertices in a way that will remove the need for a `null` to be returned.
 +
 +[source,javascript]
 +----
 +g.V().has('age').groupCount().by('age')
 +g.V().hasLabel('person').groupCount().by('age')
 +----
 +
 +Either of the above two options accomplishes the desired goal as both prevent `groupCount()` from having to process
 +the possibility of `null`.
 +
- [[gremlin-net-limitations]]
+ anchor:gremlin-net-limitations[]
+ [[gremlin-dotnet-limitations]]
  === Limitations
  
  * The `subgraph()`-step is not supported by any variant that is not running on the Java Virtual Machine as there is


[tinkerpop] 02/03: Made links to GLV subsections consistent in their naming CTR

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit a4a55799534f7b95fca434ac167f17bbf83c31c4
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Sep 2 11:38:36 2020 -0400

    Made links to GLV subsections consistent in their naming CTR
---
 docs/src/reference/gremlin-variants.asciidoc | 49 ++++++++++++++++++++++------
 1 file changed, 39 insertions(+), 10 deletions(-)

diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc
index b9e4944..1013c8a 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -99,6 +99,7 @@ connection methods described in the <<connecting-gremlin,Connecting Gremlin>> Se
 </dependency>
 ----
 
+[[gremlin-java-connecting]]
 === Connecting
 
 The pattern for connecting is described in <<connecting-gremlin,Connecting Gremlin>> and it basically distills down
@@ -214,7 +215,8 @@ GraphTraversalSource g = traversal().withRemote(conf);
 List<Vertex> vertices = g.with(Tokens.ARGS_EVAL_TIMEOUT, 500L).V().out("knows").toList()
 ----
 
-[[java-imports]]
+anchor:java-imports[]
+[[gremlin-java-imports]]
 === Common Imports
 
 There are a number of classes, functions and tokens that are typically used with Gremlin. The following imports
@@ -238,6 +240,7 @@ import static org.apache.tinkerpop.gremlin.structure.T.*;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*;
 ----
 
+[[gremlin-java-configuration]]
 === Configuration
 
 The following table describes the various configuration options for the Gremlin Driver:
@@ -283,6 +286,7 @@ The following table describes the various configuration options for the Gremlin
 
 Please see the link:https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/driver/Cluster.Builder.html[Cluster.Builder javadoc] to get more information on these settings.
 
+[[gremlin-java-serialization]]
 === Serialization
 
 Remote systems like Gremlin Server and Remote Gremlin Providers respond to requests made in a particular serialization
@@ -312,6 +316,7 @@ ensure compatibility when making requests. Obviously, it is possible to switch t
 the appropriate `MessageSerializer` (`GraphSONMessageSerializerV3d0` or `GraphBinaryMessageSerializerV1` respectively)
 in the same way and building that into the `Cluster` object.
 
+[[gremlin-java-lambda]]
 === The Lambda Solution
 
 Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
@@ -364,6 +369,7 @@ thus, the first submission can be cached for faster evaluation on the next submi
 WARNING: It is generally advised to avoid lambda usage. Please consider <<a-note-on-lambdas,A Note On Lambdas>> for
 more information.
 
+[[gremlin-java-scripts]]
 === Submitting Scripts
 
 WARNING: TinkerPop does not recommend submitting script-based requests and generally continues to support this feature
@@ -581,7 +587,8 @@ NOTE: Using Maven, as shown in the `gremlin-archetype-dsl` module, makes develop
 straightforward in that it sets up appropriate paths to the generated code automatically.
 
 anchor:java-application-examples[]
-[[gremlin-archetypes]]
+anchor:gremlin-archetypes[]
+[[gremlin-java-examples]]
 === Application Examples
 
 The available link:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html[Maven archetypes] are
@@ -643,6 +650,7 @@ To install Gremlin-Python, use Python's link:https://en.wikipedia.org/wiki/Pip_(
 pip install gremlinpython
 ----
 
+[[gremlin-python-connecting]]
 === Connecting
 
 The pattern for connecting is described in <<connecting-gremlin,Connecting Gremlin>> and it basically distills down to
@@ -667,7 +675,8 @@ traversals to complete is acceptable, it might be helpful to set `pool_size` and
 See the <<python-configuration,Configuration>> section just below.  Examples where this could apply are serverless cloud functions or WSGI
 worker processes.
 
-[[python-imports]]
+anchor:python-imports[]
+[[gremlin-python-imports]]
 === Common Imports
 
 There are a number of classes, functions and tokens that are typically used with Gremlin. The following imports
@@ -723,7 +732,8 @@ That is, without the `+__+`-prefix.
 g.V().repeat(out()).times(2).name.fold().toList()
 ----
 
-[[python-configuration]]
+anchor:python-configuration[]
+[[gremlin-python-configuration]]
 === Configuration
 
 The following table describes the various configuration options for the Gremlin-Python Driver. They
@@ -751,7 +761,7 @@ g = traversal().withRemote(
   DriverRemoteConnection('ws://localhost:8182/gremlin','g',
                          transport_factory=lambda: TornadoTransport(read_timeout=10, write_timeout=10)))
 ```
-
+[[gremlin-python-strategies]]
 === Traversal Strategies
 
 In order to add and remove <<traversalstrategy,traversal strategies>> from a traversal source, Gremlin-Python has a
@@ -775,6 +785,7 @@ Apache TinkerPop's JVM-based Gremlin traversal machine. As such, their `apply(Tr
 the strategy is encoded in the Gremlin-Python bytecode and transmitted to the Gremlin traversal machine for
 re-construction machine-side.
 
+[[gremlin-python-lambda]]
 === The Lambda Solution
 
 Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
@@ -873,6 +884,7 @@ WARNING: As explained throughout the documentation, when possible <<a-note-on-la
 must be used, then consider submitting Groovy lambdas as opposed to Python-based ones. The `GremlinGroovyScriptEngine`
 is far more featured and performant than its Jython sibling and will likely yield better results.
 
+[[gremlin-python-scripts]]
 === Submitting Scripts
 
 WARNING: TinkerPop does not recommend submitting script-based requests and generally continues to support this feature
@@ -998,6 +1010,7 @@ social.persons("marko").youngestFriendsAge()
 social.persons().filter(__.createdAtLeast(2)).count()
 ----
 
+[[gremlin-python-sugar]]
 === Syntactic Sugar
 
 Python supports meta-programming and operator overloading. There are three uses of these techniques in Gremlin-Python
@@ -1036,6 +1049,7 @@ does not support that at a language level. Gremlin that returns such results wil
 no `Graph` instance to deserialize a result into on the client-side. A workaround is to replace the step with `store()`
 and then convert those results to something the client can use locally.
 
+[[gremlin-python-examples]]
 === Application Examples
 
 The TinkerPop source code contains a simple Python script that shows a basic example of how gremlinpython works. It
@@ -1064,6 +1078,7 @@ to comply with .NET conventions.
 [source,powershell]
 nuget install Gremlin.Net
 
+[[gremlin-dotnet-connecting]]
 === Connecting
 
 The pattern for connecting is described in <<connecting-gremlin,Connecting Gremlin>> and it basically distills down to
@@ -1076,6 +1091,7 @@ the remote end.
 include::../../../gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/GremlinVariantsTests.cs[tags=connecting]
 ----
 
+[[gremlin-dotnet-imports]]
 === Common Imports
 
 There are a number of classes, functions and tokens that are typically used with Gremlin. The following imports
@@ -1086,6 +1102,7 @@ provide most of the typical functionality required to use Gremlin:
 include::../../../gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/GremlinVariantsTests.cs[tags=commonImports]
 ----
 
+[[gremlin-dotnet-configuration]]
 === Configuration
 
 The connection properties for the Gremlin.Net driver can be passed to the `GremlinServer` instance as keyword arguments:
@@ -1120,7 +1137,8 @@ when a new request comes in.
 A `ServerUnavailableException` is thrown if no connection is available to the server to submit a request after
 `ReconnectionAttempts` retries.
 
-==== Serialization
+[[gremlin-dotnet-serialization]]
+=== Serialization
 
 The Gremlin.Net driver uses by default GraphSON 3.0 but it is also possible to use GraphSON 2.0 which can be necessary
 when the server does not support GraphSON 3.0 yet:
@@ -1130,6 +1148,7 @@ when the server does not support GraphSON 3.0 yet:
 include::../../../gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/GremlinVariantsTests.cs[tags=serialization]
 ----
 
+[[gremlin-dotnet-strategies]]
 === Traversal Strategies
 
 In order to add and remove traversal strategies from a traversal source, Gremlin.Net has an `AbstractTraversalStrategy`
@@ -1144,6 +1163,7 @@ NOTE: Many of the TraversalStrategy classes in Gremlin.Net are proxies to the re
 JVM-based Gremlin traversal machine. As such, their `Apply(ITraversal)` method does nothing. However, the strategy is
 encoded in the Gremlin.Net bytecode and transmitted to the Gremlin traversal machine for re-construction machine-side.
 
+[[gremlin-dotnet-lambda]]
 === The Lambda Solution
 
 Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
@@ -1167,6 +1187,7 @@ TIP: When running into situations where Groovy cannot properly discern a method
 instance created, it will help to fully define the closure in the lambda expression - so rather than
 `Lambda.Groovy("it.get().value('name'))`, prefer `Lambda.Groovy("x -> x.get().value('name'))`.
 
+[[gremlin-dotnet-scripts]]
 === Submitting Scripts
 
 WARNING: TinkerPop does not recommend submitting script-based requests and generally continues to support this feature
@@ -1195,7 +1216,8 @@ var gremlinServer = new GremlinServer("localhost", 8182);
 var client = new GremlinClient(gremlinServer, sessionId: Guid.NewGuid().ToString()))
 ----
 
-[[gremlin-net-dsl]]
+anchor:gremlin-net-dsl[]
+[[gremlin-dotnet-dsl]]
 === Domain Specific Languages
 
 Developing a <<dsl,Domain Specific Language>> (DSL) for .Net is most easily implemented using
@@ -1229,7 +1251,8 @@ and then it can be called from the application as follows:
 include::../../../gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Docs/Reference/GremlinVariantsDslTests.cs[tags=dslExamples]
 ----
 
-[[gremlin-net-differences]]
+anchor:gremlin-net-differences[]
+[[gremlin-dotnet-differences]]
 === Differences
 
 The biggest difference between Gremlin in .NET and the canonical version in Java is the casing of steps. Canonical
@@ -1273,7 +1296,8 @@ must be written as:
 g.V().Repeat(__.Out()).Times(2).Values<string>("name");
 ----
 
-[[gremlin-net-limitations]]
+anchor:gremlin-net-limitations[]
+[[gremlin-dotnet-limitations]]
 === Limitations
 
 * The `subgraph()`-step is not supported by any variant that is not running on the Java Virtual Machine as there is
@@ -1281,7 +1305,9 @@ no `Graph` instance to deserialize a result into on the client-side. A workaroun
 and then convert those results to something the client can use locally.
 
 anchor:gremlin-dotnet-template[]
-[[dotnet-application-examples]]
+anchor:dotnet-application-examples[]
+anchor:gremlin-net-examples[]
+[[gremlin-dotnet-examples]]
 === Application Examples
 
 This link:https://docs.microsoft.com/dotnet/core/tools/custom-templates[dotnet template] helps getting started with
@@ -1313,6 +1339,7 @@ between Gremlin-Java and Gremlin-JavaScript.
 [source,bash]
 npm install gremlin
 
+[[gremlin-javascript-connecting]]
 === Connecting
 
 The pattern for connecting is described in <<connecting-gremlin,Connecting Gremlin>> and it basically distills down to
@@ -1356,6 +1383,7 @@ const names = await g.V().hasLabel('person').values('name').toList();
 console.log(names);
 ----
 
+[[gremlin-javascript-imports]]
 === Common Imports
 
 There are a number of classes, functions and tokens that are typically used with Gremlin. The following imports
@@ -1388,6 +1416,7 @@ const { order: { desc } } = gremlin.process;
 g.V().hasLabel('person').has('age',gt(30)).order().by('age',desc).toList()
 ----
 
+[[gremlin-javascript-scripts]]
 === Submitting Scripts
 
 WARNING: TinkerPop does not recommend submitting script-based requests and generally continues to support this feature


[tinkerpop] 01/03: Updated csproj template to use https for links.

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit f1c6a16e40f331d472942f248e3f788492e699f6
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Sep 2 11:37:47 2020 -0400

    Updated csproj template to use https for links.
    
    Missed that on TINKERPOP-2392 #1321 - only updated the actual file but not the template. CTR
---
 gremlin-dotnet/glv/Gremlin.Net.csproj.template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gremlin-dotnet/glv/Gremlin.Net.csproj.template b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
index aeb2df9..a397e7e 100644
--- a/gremlin-dotnet/glv/Gremlin.Net.csproj.template
+++ b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
@@ -51,10 +51,10 @@ NOTE that versions suffixed with "-rc" are considered release candidates (i.e. p
     <SignAssembly>true</SignAssembly>
     <PackageId>Gremlin.Net</PackageId>
     <PackageTags>gremlin;tinkerpop;apache</PackageTags>
-    <PackageProjectUrl>http://tinkerpop.apache.org</PackageProjectUrl>
+    <PackageProjectUrl>https://tinkerpop.apache.org</PackageProjectUrl>
     <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
     <PackageIcon>gremlin-dotnet-logo_256x256.png</PackageIcon>
-    <PackageIconUrl>http://tinkerpop.apache.org/docs/current/images/gremlin-dotnet-logo_256x256.png</PackageIconUrl>
+    <PackageIconUrl>https://tinkerpop.apache.org/docs/current/images/gremlin-dotnet-logo_256x256.png</PackageIconUrl>
     <RepositoryUrl>https://github.com/apache/tinkerpop</RepositoryUrl>
     <PublishRepositoryUrl>true</PublishRepositoryUrl>    
     <AllowedOutputExtensionsInPackageBuildOutputFolder>\$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>