[ https://issues.apache.org/jira/browse/CASSANDRA-5353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13827092#comment-13827092 ]
Jonathan Ellis commented on CASSANDRA-5353: ------------------------------------------- Is this still a thing [~mfiguiere]? > abstract for client/driver reuse > -------------------------------- > > Key: CASSANDRA-5353 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5353 > Project: Cassandra > Issue Type: Bug > Components: API, Core, Drivers (now out of tree) > Affects Versions: 1.2.2 > Reporter: Eric Evans > Labels: cql3, native_protocol > > The native transport CQL driver ["Java > Driver"|https://github.com/datastax/java-driver] has a maven pom which > declares a dependency on the {{cassandra-all}} artifact (aka Everything). > This is Bad because Cassandra makes use of many common libraries, making > conflicts with client applications inevitable. > Some of [java-driver|https://github.com/datastax/java-driver]'s uses can be > avoided, I think. For example, it seems to use the {{AbstractType}} > extending classes in {{org.apache.cassandra.db.marshal}} instead of the > classes included in the {{cassandra-clientutil}} artifact > ({{org.apache.cassandra.cql.jdbc}}). I will file a separate Github issue for > that. The rest of its usage looks something like the following: > * org.apache.cassandra.db.marshal.* > * org.apache.cassandra.exceptions.* > * org.apache.cassandra.transport.Message; > * org.apache.cassandra.transport.messages.ErrorMessage > * org.apache.cassandra.transport.messages.ExecuteMessage > * org.apache.cassandra.transport.messages.PrepareMessage > * org.apache.cassandra.transport.messages.QueryMessage > * org.apache.cassandra.transport.messages.ResultMessage > * org.apache.cassandra.service.ClientState > * org.apache.cassandra.transport.* ?? > * org.apache.cassandra.transport.ConsistencyLevel ?? > * org.apache.cassandra.transport.Event ?? > * org.apache.cassandra.cql3.ColumnSpecification > * org.apache.cassandra.utils.MD5Digest > Ostensibly the solution would be to move what's needed into clientutil jar, > but this will likely require significantly more. For example, grepping > imports on the {{o.a.c.transport}} package yields the following: > * org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor > * org.apache.cassandra.concurrent.NamedThreadFactory > * org.apache.cassandra.config.DatabaseDescriptor > * org.apache.cassandra.config.EncryptionOptions > * org.apache.cassandra.cql3.ColumnSpecification > * org.apache.cassandra.cql3.CQLStatement > * org.apache.cassandra.cql3.QueryProcessor > * org.apache.cassandra.cql3.ResultSet > * org.apache.cassandra.db.ConsistencyLevel > * org.apache.cassandra.db.marshal.* > * org.apache.cassandra.db.marshal.Int32Type > * org.apache.cassandra.db.marshal.TypeParser > * org.apache.cassandra.db.marshal.UTF8Type > * org.apache.cassandra.db.WriteType > * org.apache.cassandra.security.SSLFactory > * org.apache.cassandra.service.CassandraDaemon > * org.apache.cassandra.service.ClientState > * org.apache.cassandra.service.IEndpointLifecycleSubscriber > * org.apache.cassandra.service.IMigrationListener > * org.apache.cassandra.service.MigrationManager > * org.apache.cassandra.service.QueryState > * org.apache.cassandra.service.StorageService > * org.apache.cassandra.tracing.Tracing > * org.apache.cassandra.utils.FBUtilities > * org.apache.cassandra.utils.MD5Digest > * org.apache.cassandra.utils.Pair > * org.apache.cassandra.utils.SemanticVersion > And it's probably much worse once transitive dependencies are taken into > account. -- This message was sent by Atlassian JIRA (v6.1#6144)