The connector wants very specific java driver version. This should be a clear maven dependency, that a user of the library/libraries must either adhere to or explicitly disable in his pom.xml (and if so pay the consequences).
Since we also want to provide a version of the library/libraries that can be used in an environment where the user operates an incompatible java driver version, we should also have "shaded" artifacts, but in this case, each should be shaded separately.
Thus (example):
scylla-cdc-driver3 -> depends via maven on java driver 3.x
scylla-cdc-replicator -> depends via maven on scylla-cdc-driver3
scylla-cdc-replicator-shaded - internal, shaded dependecy on java driver 3.x and scylla-cdc-driver3
etc.
Thus we can avoid cross-cdc-library shading issues, and assume that either all dependencies are kosher via maven, or kosher via shading, but types used across cdc modules are guaranteed to be the same.
The connector wants very specific java driver version. This should be a clear maven dependency, that a user of the library/libraries must either adhere to or explicitly disable in his pom.xml (and if so pay the consequences).
Since we also want to provide a version of the library/libraries that can be used in an environment where the user operates an incompatible java driver version, we should also have "shaded" artifacts, but in this case, each should be shaded separately. Thus (example):
etc.
Thus we can avoid cross-cdc-library shading issues, and assume that either all dependencies are kosher via maven, or kosher via shading, but types used across cdc modules are guaranteed to be the same.