diff --git a/core-shaded/pom.xml b/core-shaded/pom.xml
index bf49e92d36d..a88b6987392 100644
--- a/core-shaded/pom.xml
+++ b/core-shaded/pom.xml
@@ -146,9 +146,6 @@
-->
com.datastax.oss:java-driver-core
io.netty:*
- com.esri.geometry:*
- org.json:*
- org.codehaus.jackson:*
com.fasterxml.jackson.core:*
@@ -161,18 +158,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
-
-
- org.codehaus.jackson
- com.datastax.oss.driver.shaded.codehaus.jackson
-
com.fasterxml.jackson
com.datastax.oss.driver.shaded.fasterxml.jackson
@@ -194,24 +179,6 @@
META-INF/**
-
- com.esri.geometry:*
-
- META-INF/**
-
-
-
- org.json:*
-
- META-INF/**
-
-
-
- org.codehaus.jackson:*
-
- META-INF/**
-
-
com.fasterxml.jackson.core:*
@@ -311,6 +278,11 @@
jctools-core
2.1.2
+
+ com.esri.geometry
+ esri-geometry-api
+ 1.2.1
+
@@ -340,7 +312,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.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.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
+
diff --git a/manual/core/integration/README.md b/manual/core/integration/README.md
index 23380063cdf..7202dac2d94 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,22 @@ 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}
+
+```
+
+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
[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