Remove residual DSE compatibility and build wiring - #1042
Conversation
|
Important Review skippedToo many files! This PR contains 559 files, which is 459 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Organization UI Review profile: QUIET Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (559)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
4b0496e to
0998e21
Compare
0998e21 to
04dbf4e
Compare
nikagra
left a comment
There was a problem hiding this comment.
Review of the DSE removal. Two blockers inline — an inverted HCD guard in the CCM customizer and a serialized-field rename in Version — plus API-compatibility, revapi and changelog notes.
| if (!CcmBridge.isDistributionOf( | ||
| BackendType.DSE, (dist, cass) -> dist.nextStable().compareTo(Version.V4_0_0) >= 0) | ||
| || CcmBridge.isDistributionOf(BackendType.HCD)) { | ||
| if (!CcmBridge.isDistributionOf(BackendType.HCD)) { |
There was a problem hiding this comment.
[Blocker] 🔴 The DSE collapse inverted this. The old first operand !isDistributionOf(DSE, ...) was true on HCD, so HCD did get MV/SASI; now it is the only backend excluded. Drop the condition, or negate it.
| @@ -62,17 +62,16 @@ public class Version implements Comparable<Version>, Serializable { | |||
| private final int major; | |||
| private final int minor; | |||
| private final int patch; | |||
| private final int dsePatch; | |||
|
|
|||
| private final int revision; | |||
There was a problem hiding this comment.
[Blocker] 🔴 Renames a serialized field while serialVersionUID stays 1 (l.44). Old streams carry dsePatch, so revision loads as 0, not the -1 sentinel: 3.11.0 round-trips to 3.11.0.0. Rename the accessor only.
| return ""; // will never be used | ||
| } | ||
| }; | ||
| protected static class PlainTextAuthenticator implements SyncAuthenticator { |
There was a problem hiding this comment.
[Major] 🟠 Drops BaseDseAuthenticator, the deprecated PlainTextAuthenticator(Credentials), 3-arg Credentials and getAuthorizationId() with no deprecation cycle — and manual/core/authentication still points custom providers here.
| }, | ||
| { | ||
| "code": "java.field.removed", | ||
| "old": "field com.datastax.oss.driver.api.testinfra.ccm.CcmBridge.DSE_ENABLEMENT", |
There was a problem hiding this comment.
[Major] 🟠 DSE_ENABLEMENT is removed by this PR, so this ignore is needed now, not less. Meanwhile dsetool, reloadCore, the V* constants and the dropped SessionRule members get none, while core/revapi.json keeps dead TinkerPop rules.
|
|
||
| ### 4.19.2 | ||
|
|
||
| - [improvement] Remove residual DSE compatibility, test infrastructure, and build wiring (#1033) |
There was a problem hiding this comment.
[Minor] 🟡 These land under ### 4.19.2, but the pom is 4.19.2.2-SNAPSHOT and this PR adds ### 4.19.2.2 to the upgrade guide. Also, this file has only ever tracked upstream — fork PR numbers are new here.
| @@ -90,10 +87,6 @@ public void should_order_versions() { | |||
| assertOrder("2.0", "2.0.0", 0); | |||
| assertOrder("2.0", "2.0.1", -1); | |||
|
|
|||
| // any DSE version is higher than no DSE version | |||
| assertOrder("2.0.0", "2.0.0.0", -1); | |||
There was a problem hiding this comment.
[Minor] 🟡 These two were the only assertions pinning absent-vs-present ordering of the fourth component — the exact compareTo branch this PR rewrites. Both still pass unchanged.
| @@ -87,6 +86,5 @@ public void should_accept_raw_type() { | |||
| @Test | |||
| public void should_accept_object() { | |||
| assertThat(codec.accepts(DefaultProtocolVersion.V3)).isTrue(); | |||
| assertThat(codec.accepts(DseProtocolVersion.DSE_V1)).isFalse(); | |||
There was a problem hiding this comment.
[Minor] 🟡 Without a negative case, should_accept_object passes for a codec that accepts everything. Any enum from another class does the job, e.g. DefaultConsistencyLevel.ONE. Same at EnumOrdinalCodecTest.java:90.
| @@ -778,62 +668,24 @@ datastax-java-driver { | |||
| # SessionBuilder.withAuthProvider or SessionBuilder.withAuthCredentials. | |||
| advanced.auth-provider { | |||
| # The class of the provider. If it is not qualified, the driver assumes that it resides in one | |||
| # of the following packages: | |||
| # in the following package: | |||
There was a problem hiding this comment.
[Nit] 🟢 Line 670 still ends "resides in one", so this now reads "resides in one in the following package:". The same edit at l.170 dropped "one of" correctly.
| @@ -19,7 +19,6 @@ | |||
|
|
|||
| public enum BackendType { | |||
| CASSANDRA("Apache Cassandra"), | |||
| DSE("DSE"), | |||
| HCD("HCD"), | |||
There was a problem hiding this comment.
[Question] 🔵 DSE goes but HCD, its DataStax successor, stays — along with the version mapping, the DescribeIT/hcd fixtures and the DirectCompressionIT branch. Intentional, or a later slice? No CI lane exercises it.
Closes #1033
Why
After the focused feature removals, deprecated DSE aliases and DSE-only test/build paths would still add untested production and maintenance surface. Removing them completes the cleanup while preserving the generic reactive API supported with Cassandra and Scylla.
What
DefaultDriverOptioncom.datastax.dseproduction packages are generic reactive CQL/mapper codeDependency and rebase
This integration PR depends on all preceding child PRs. Exact current source commits and their rebased commits on this branch:
a0fb0bdba8->72f50a3870a9b72c6695->8f2a762359aa660cfc5a->b5f12f5d8a0c3ca6bd84->0a852fe0201b0618c6a0->4d9e0250d3697dc02e00->932f5705d959b3f78b6b->0b55ccb295The actual #1033 cleanup commit is
04dbf4e860. After the prerequisite PRs merge, rebase ontoscylla-4.x, drop the seven prerequisite commits above, and retain/reapply04dbf4e860.Verification
mvn -pl core test— 3,160 unit tests plus 76 Reactive Streams TCK tests passmvn clean -DskipTests install— all 17 modules pass, including OSGi, shaded, distributions, Revapi, and examplesmake compile-allpasses, including API leak checkscom.datastax.dseare the documented generic reactive CQL/mapper packages and their queue helper