Skip to content

Commit 1ae4d7c

Browse files
committed
JAVA-2907: Switch Tinkerpop to an optional dependency
1 parent 11448aa commit 1ae4d7c

File tree

7 files changed

+97
-0
lines changed

7 files changed

+97
-0
lines changed

changelog/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### 4.10.0 (in progress)
66

7+
- [improvement] JAVA-2907: Switch Tinkerpop to an optional dependency
8+
- [improvement] JAVA-2904: Upgrade Jackson to 2.12.0 and Tinkerpop to 3.4.9
79
- [bug] JAVA-2911: Prevent control connection from scheduling too many reconnections
810
- [bug] JAVA-2902: Consider computed values when validating constructors for immutable entities
911
- [new feature] JAVA-2899: Re-introduce cross-DC failover in driver 4

core-shaded/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,12 @@
9191
<dependency>
9292
<groupId>org.apache.tinkerpop</groupId>
9393
<artifactId>gremlin-core</artifactId>
94+
<optional>true</optional>
9495
</dependency>
9596
<dependency>
9697
<groupId>org.apache.tinkerpop</groupId>
9798
<artifactId>tinkergraph-gremlin</artifactId>
99+
<optional>true</optional>
98100
</dependency>
99101
<dependency>
100102
<groupId>org.reactivestreams</groupId>

core/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,12 @@
9494
<dependency>
9595
<groupId>org.apache.tinkerpop</groupId>
9696
<artifactId>gremlin-core</artifactId>
97+
<optional>true</optional>
9798
</dependency>
9899
<dependency>
99100
<groupId>org.apache.tinkerpop</groupId>
100101
<artifactId>tinkergraph-gremlin</artifactId>
102+
<optional>true</optional>
101103
</dependency>
102104
<dependency>
103105
<groupId>com.fasterxml.jackson.core</groupId>

core/revapi.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5440,6 +5440,51 @@
54405440
"new": "field com.fasterxml.jackson.databind.type.TypeFactory.serialVersionUID",
54415441
"serialVersionUID": "1",
54425442
"justification": "JAVA-2904: Jackson upgraded to 2.12.0. Caused by the exposure of ObjectMapper as a parameter in ExtraTypeCodecs.json()"
5443+
},
5444+
{
5445+
"code": "java.missing.newClass",
5446+
"new": "missing-class org.apache.tinkerpop.gremlin.process.remote.RemoteConnection",
5447+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5448+
},
5449+
{
5450+
"code": "java.missing.newClass",
5451+
"new": "missing-class org.apache.tinkerpop.gremlin.process.traversal.P",
5452+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5453+
},
5454+
{
5455+
"code": "java.missing.newClass",
5456+
"new": "missing-class org.apache.tinkerpop.gremlin.process.traversal.Path",
5457+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5458+
},
5459+
{
5460+
"code": "java.missing.newClass",
5461+
"new": "missing-class org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal",
5462+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5463+
},
5464+
{
5465+
"code": "java.missing.newClass",
5466+
"new": "missing-class org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource",
5467+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5468+
},
5469+
{
5470+
"code": "java.missing.newClass",
5471+
"new": "missing-class org.apache.tinkerpop.gremlin.structure.Edge",
5472+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5473+
},
5474+
{
5475+
"code": "java.missing.newClass",
5476+
"new": "missing-class org.apache.tinkerpop.gremlin.structure.Property",
5477+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5478+
},
5479+
{
5480+
"code": "java.missing.newClass",
5481+
"new": "missing-class org.apache.tinkerpop.gremlin.structure.Vertex",
5482+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
5483+
},
5484+
{
5485+
"code": "java.missing.newClass",
5486+
"new": "missing-class org.apache.tinkerpop.gremlin.structure.VertexProperty",
5487+
"justification": "JAVA-2907: switched Tinkerpop dependency to optional"
54435488
}
54445489
]
54455490
}

integration-tests/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,16 @@
131131
<artifactId>rxjava</artifactId>
132132
<scope>test</scope>
133133
</dependency>
134+
<dependency>
135+
<groupId>org.apache.tinkerpop</groupId>
136+
<artifactId>gremlin-core</artifactId>
137+
<scope>test</scope>
138+
</dependency>
139+
<dependency>
140+
<groupId>org.apache.tinkerpop</groupId>
141+
<artifactId>tinkergraph-gremlin</artifactId>
142+
<scope>test</scope>
143+
</dependency>
134144
<dependency>
135145
<groupId>org.apache.directory.server</groupId>
136146
<artifactId>apacheds-core</artifactId>

osgi-tests/pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@
7878
<groupId>org.reactivestreams</groupId>
7979
<artifactId>reactive-streams</artifactId>
8080
</dependency>
81+
<dependency>
82+
<groupId>org.apache.tinkerpop</groupId>
83+
<artifactId>gremlin-core</artifactId>
84+
</dependency>
85+
<dependency>
86+
<groupId>org.apache.tinkerpop</groupId>
87+
<artifactId>tinkergraph-gremlin</artifactId>
88+
</dependency>
8189
<dependency>
8290
<groupId>org.osgi</groupId>
8391
<artifactId>org.osgi.core</artifactId>

upgrade_guide/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,34 @@ token map for these keyspaces, you now must modify the following configuration o
8787
[Metadata.getKeyspaces()]: https://docs.datastax.com/en/drivers/java/latest/com/datastax/oss/driver/api/core/metadata/Metadata.html#getKeyspaces--
8888
[TokenMap]: https://docs.datastax.com/en/drivers/java/latest/com/datastax/oss/driver/api/core/metadata/TokenMap.html
8989

90+
#### DSE Graph dependencies are now optional
91+
92+
Until driver 4.9.0, the driver declared a mandatory dependency to Apache Tinkerpop, a library
93+
required only when connecting to DSE Graph. The vast majority of Apache Cassandra users did not need
94+
that library, but were paying the price of having that heavy-weight library in their application's
95+
classpath.
96+
97+
_Starting with driver 4.10.0, Tinkerpop is now considered an optional dependency_.
98+
99+
Regular users of Apache Cassandra that do not use DSE Graph will not notice any disruption.
100+
101+
DSE Graph users, however, will now have to explicitly declare a dependency to Apache Tinkerpop. This
102+
can be achieved with Maven by adding the following dependencies to the `<dependencies>` section of
103+
your POM file:
104+
105+
```xml
106+
<dependency>
107+
<groupId>org.apache.tinkerpop</groupId>
108+
<artifactId>gremlin-core</artifactId>
109+
<version>${tinkerpop.version}</version>
110+
</dependency>
111+
<dependency>
112+
<groupId>org.apache.tinkerpop</groupId>
113+
<artifactId>tinkergraph-gremlin</artifactId>
114+
<version>${tinkerpop.version}</version>
115+
</dependency>
116+
```
117+
90118
### 4.5.x - 4.6.0
91119

92120
These versions are subject to [JAVA-2676](https://datastax-oss.atlassian.net/browse/JAVA-2676), a

0 commit comments

Comments
 (0)