From 9e43d520a4ef5a96a0996fb64c8d96e735f79a76 Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Fri, 7 Jan 2022 15:09:07 -0600 Subject: [PATCH 1/6] Follow-up to recent PR making ESRI an optional dependency --- core-shaded/pom.xml | 20 +++++++------------- integration-tests/pom.xml | 5 +++++ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/core-shaded/pom.xml b/core-shaded/pom.xml index bf49e92d36d..659851882e0 100644 --- a/core-shaded/pom.xml +++ b/core-shaded/pom.xml @@ -146,7 +146,6 @@ --> com.datastax.oss:java-driver-core io.netty:* - com.esri.geometry:* org.json:* org.codehaus.jackson:* com.fasterxml.jackson.core:* @@ -161,10 +160,6 @@ io.netty com.datastax.oss.driver.shaded.netty - - com.esri - com.datastax.oss.driver.shaded.esri - org.json com.datastax.oss.driver.shaded.json @@ -194,12 +189,6 @@ META-INF/** - - com.esri.geometry:* - - META-INF/** - - org.json:* @@ -311,6 +300,11 @@ jctools-core 2.1.2 + + com.esri.geometry + esri-geometry-api + 1.2.1 + @@ -340,7 +334,7 @@ !com.datastax.oss.driver.shaded.netty.*, !com.datastax.oss.driver.shaded.esri.*, !com.datastax.oss.driver.shaded.json.*, !com.datastax.oss.driver.shaded.codehaus.jackson.*, !com.datastax.oss.driver.shaded.fasterxml.jackson.*, + -->!com.datastax.oss.driver.shaded.netty.*, !com.datastax.oss.driver.shaded.json.*, !com.datastax.oss.driver.shaded.codehaus.jackson.*, !com.datastax.oss.driver.shaded.fasterxml.jackson.*, - com.datastax.oss.driver.api.core.*, com.datastax.oss.driver.internal.core.*, com.datastax.dse.driver.api.core.*, com.datastax.dse.driver.internal.core.*, com.datastax.oss.driver.shaded.netty.*, com.datastax.oss.driver.shaded.esri.*, com.datastax.oss.driver.shaded.json.*, com.datastax.oss.driver.shaded.codehaus.jackson.*, com.datastax.oss.driver.shaded.fasterxml.jackson.*, + com.datastax.oss.driver.api.core.*, com.datastax.oss.driver.internal.core.*, com.datastax.dse.driver.api.core.*, com.datastax.dse.driver.internal.core.*, com.datastax.oss.driver.shaded.netty.*, com.datastax.oss.driver.shaded.json.*, com.datastax.oss.driver.shaded.codehaus.jackson.*, com.datastax.oss.driver.shaded.fasterxml.jackson.*, true diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 20fd13ea85d..96e682bd087 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -211,6 +211,11 @@ blockhound-junit-platform test + + com.esri.geometry + esri-geometry-api + test + From 130489cbb13c2ff28c8425003b9345cef7f496fd Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Fri, 7 Jan 2022 15:35:11 -0600 Subject: [PATCH 2/6] Documentation updates --- manual/core/integration/README.md | 17 +++++++++++++++-- upgrade_guide/README.md | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/manual/core/integration/README.md b/manual/core/integration/README.md index 23380063cdf..5148b918727 100644 --- a/manual/core/integration/README.md +++ b/manual/core/integration/README.md @@ -479,8 +479,9 @@ don't use any of the above features, you can safely exclude the dependency: Our [geospatial types](../dse/geotypes/) implementation is based on the [Esri Geometry API](https://github.com/Esri/geometry-api-java). -Esri is declared as a required dependency, but the driver can operate normally without it. If you -don't use geospatial types anywhere in your application, you can exclude the dependency: +For driver versions >= 4.4.0 and < 4.14.0 Esri is declared as a required dependency, +although the driver can operate normally without it. If you don't use geospatial types +anywhere in your application you can exclude the dependency: ```xml @@ -496,6 +497,18 @@ don't use geospatial types anywhere in your application, you can exclude the dep ``` +Starting with driver 4.14.0 Esri has been changed to an optional dependency. You no longer have to +explicitly exclude the dependency if it's not used, but if you do wish to make use of the Esri +library you must now explicitly specify it as a dependency : + +```xml + + com.esri.geometry + esri-geometry-api + ${esri.version} + +``` + #### TinkerPop [Apache TinkerPop™](http://tinkerpop.apache.org/) is used in our [graph API](../dse/graph/), diff --git a/upgrade_guide/README.md b/upgrade_guide/README.md index e48a75ceb4e..297c4ca7fda 100644 --- a/upgrade_guide/README.md +++ b/upgrade_guide/README.md @@ -9,6 +9,26 @@ request cannot be executed because all nodes tried were busy. Previously you wou `NoNodeAvailableException` but you will now get back an `AllNodesFailedException` where the `getAllErrors` map contains a `NodeUnavailableException` for that node. +#### Esri Geometry dependency now optional + +Previous versions of the Java driver defined a mandatory dependency on the Esri geometry library. +This library offered support for primitive geometric types supported by DSE. As of driver 4.14.0 +this dependency is now optional. + +If you do not use DSE (or if you do but do not use the support for geometric types within DSE) you +should experience no disruption. If you are using geometric types with DSE you'll now need to +explicitly declare a dependency on the Esri library: + +```xml + + com.esri.geometry + esri-geometry-api + ${esri.version} + +``` + +See the [integration](../manual/core/integration/#esri) section in the manual for more details. + ### 4.13.0 #### Enhanced support for GraalVM native images From 4c7e83810d6c3b4604d60a8ff1ce98c19a99acf3 Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Fri, 21 Jan 2022 14:35:24 -0600 Subject: [PATCH 3/6] Added note re: use of older version of ESRI --- manual/core/integration/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/manual/core/integration/README.md b/manual/core/integration/README.md index 5148b918727..b71cd5360f3 100644 --- a/manual/core/integration/README.md +++ b/manual/core/integration/README.md @@ -509,6 +509,10 @@ library you must now explicitly specify it as a dependency : ``` +The dependency specification above will introduce a dependency on version 1.2.1 of the Esri +library. While this release is older now we still recommend it's use in order to maximize +compatibility with DSE. + #### TinkerPop [Apache TinkerPop™](http://tinkerpop.apache.org/) is used in our [graph API](../dse/graph/), From 5e9ce0ded37155d8faa6a1c509e6d9482e0d5564 Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Fri, 21 Jan 2022 17:12:57 -0600 Subject: [PATCH 4/6] Revising language of the Esri include version --- manual/core/integration/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manual/core/integration/README.md b/manual/core/integration/README.md index b71cd5360f3..7202dac2d94 100644 --- a/manual/core/integration/README.md +++ b/manual/core/integration/README.md @@ -509,9 +509,9 @@ library you must now explicitly specify it as a dependency : ``` -The dependency specification above will introduce a dependency on version 1.2.1 of the Esri -library. While this release is older now we still recommend it's use in order to maximize -compatibility with DSE. +In the dependency specification above you should use any 1.2.x version of Esri (we recommend +1.2.1). These versions are older than the current 2.x versions of the library but they are +guaranteed to be fully compatible with DSE. #### TinkerPop From 953c72f428c70a6c7450d94843fc33b1c7cd3cf1 Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Mon, 24 Jan 2022 13:22:29 -0600 Subject: [PATCH 5/6] Remove transitive dependencies of Esri lib from shaded JAR as well --- core-shaded/pom.xml | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/core-shaded/pom.xml b/core-shaded/pom.xml index 659851882e0..d3ba6c34248 100644 --- a/core-shaded/pom.xml +++ b/core-shaded/pom.xml @@ -146,8 +146,6 @@ --> com.datastax.oss:java-driver-core io.netty:* - org.json:* - org.codehaus.jackson:* com.fasterxml.jackson.core:* @@ -160,14 +158,6 @@ io.netty com.datastax.oss.driver.shaded.netty - - org.json - com.datastax.oss.driver.shaded.json - - - org.codehaus.jackson - com.datastax.oss.driver.shaded.codehaus.jackson - com.fasterxml.jackson com.datastax.oss.driver.shaded.fasterxml.jackson @@ -189,18 +179,6 @@ META-INF/** - - org.json:* - - META-INF/** - - - - org.codehaus.jackson:* - - META-INF/** - - com.fasterxml.jackson.core:* From 07293da6cebc40b4053419ec62937e3a41ca0ad0 Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Tue, 25 Jan 2022 15:27:43 -0600 Subject: [PATCH 6/6] Removing OSGi spec for shaded packages which no longer exist --- core-shaded/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core-shaded/pom.xml b/core-shaded/pom.xml index d3ba6c34248..a88b6987392 100644 --- a/core-shaded/pom.xml +++ b/core-shaded/pom.xml @@ -312,7 +312,7 @@ !com.datastax.oss.driver.shaded.netty.*, !com.datastax.oss.driver.shaded.json.*, !com.datastax.oss.driver.shaded.codehaus.jackson.*, !com.datastax.oss.driver.shaded.fasterxml.jackson.*, + -->!com.datastax.oss.driver.shaded.netty.*, !com.datastax.oss.driver.shaded.fasterxml.jackson.*, - com.datastax.oss.driver.api.core.*, com.datastax.oss.driver.internal.core.*, com.datastax.dse.driver.api.core.*, com.datastax.dse.driver.internal.core.*, com.datastax.oss.driver.shaded.netty.*, com.datastax.oss.driver.shaded.json.*, com.datastax.oss.driver.shaded.codehaus.jackson.*, com.datastax.oss.driver.shaded.fasterxml.jackson.*, + com.datastax.oss.driver.api.core.*, com.datastax.oss.driver.internal.core.*, com.datastax.dse.driver.api.core.*, com.datastax.dse.driver.internal.core.*, com.datastax.oss.driver.shaded.netty.*, com.datastax.oss.driver.shaded.fasterxml.jackson.*, true