Search code examples
javacassandratalenddatastax-enterprisedatastax-java-driver

What are the dependent JAR files needed for dse-java-driver-core-1.5.0.jar?


I am trying to use the DataStax Java driver in Talend to generate TimeUUIDs; however I keep getting a class not found exception. I am pretty sure the reason is because at execution time the JAR file is reaching out to some external repositories on the web to get dependent libraries and my work's network firewall is blocking Talend from getting those dependencies. Are there specific JARs that I can download and install into Talend manually so that my jobs don't need to reach out to the web for the libraries at execution time?

I am using:

  • Talend Open Studio for Big Data version 6.4.1
  • Oracle Java JDK 8 Update 161 (Standard Edition)
  • Windows 10 Enterprise 64-bit version 1709
  • dse-java-driver-core-1.5.0.jar

Solution

  • DataStax provides a tarball that includes all dependencies which can be downloaded from here.

    Using maven and the dependency:tree goal, I generated the dependency tree for 1.5.0

    [INFO] com.datastax.dse:dse-java-driver-core:jar:1.5.0 [INFO] +- io.netty:netty-handler:jar:4.0.47.Final:compile [INFO] | +- io.netty:netty-buffer:jar:4.0.47.Final:compile [INFO] | +- io.netty:netty-transport:jar:4.0.47.Final:compile [INFO] | \- io.netty:netty-codec:jar:4.0.47.Final:compile [INFO] +- com.google.guava:guava:jar:19.0:compile [INFO] +- io.dropwizard.metrics:metrics-core:jar:3.2.2:compile [INFO] +- org.slf4j:slf4j-api:jar:1.7.25:compile [INFO] +- com.github.jnr:jnr-ffi:jar:2.0.7:compile [INFO] | +- com.github.jnr:jffi:jar:1.2.10:compile [INFO] | +- com.github.jnr:jffi:jar:native:1.2.10:runtime [INFO] | +- org.ow2.asm:asm:jar:5.0.3:compile [INFO] | +- org.ow2.asm:asm-commons:jar:5.0.3:compile [INFO] | +- org.ow2.asm:asm-analysis:jar:5.0.3:compile [INFO] | +- org.ow2.asm:asm-tree:jar:5.0.3:compile [INFO] | +- org.ow2.asm:asm-util:jar:5.0.3:compile [INFO] | \- com.github.jnr:jnr-x86asm:jar:1.0.2:compile [INFO] +- com.github.jnr:jnr-posix:jar:3.0.27:compile [INFO] | \- com.github.jnr:jnr-constants:jar:0.9.0:compile [INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.8.8:compile [INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.8:compile [INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.7.9.2:compile [INFO] +- com.esri.geometry:esri-geometry-api:jar:1.2.1:compile [INFO] | +- org.json:json:jar:20090211:compile [INFO] | \- org.codehaus.jackson:jackson-core-asl:jar:1.9.12:compile [INFO] +- org.xerial.snappy:snappy-java:jar:1.1.2.6:compile [INFO] +- net.jpountz.lz4:lz4:jar:1.3.0:compile [INFO] +- io.netty:netty-transport-native-epoll:jar:4.0.47.Final:compile [INFO] | \- io.netty:netty-common:jar:4.0.47.Final:compile [INFO] \- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile

    Note that the jnr jars and their dependencies are optional, as well as the metrics library (if you use withoutMetrics in your Cluster.builder()). The lz4 and snappy libraries are also optional (only needed if you use compression)