Welcome! Please see the About page for a little more info on how this works.

+1 vote
in On-Prem by

I see that AWS-specific jars comprise more than half the size of Datomic install; adding these 300+ jars to the classpath also makes Datomic unusable in Windows due to "input line is too long".

As an exclusively On-Prem user, is there any way to omit these unnecessary components and still have a viable Datomic On-Prem transactor? Or have the two capabilities been too-deeply intermingled for this to be possible?

1 Answer

0 votes
by
selected by
 
Best answer

Hi Tom,

We have included the whole AWS SDK for historical reasons, but we are currently evaluating narrowing down the list to just the required dependencies in a future release of Pro. I suspect this work will be prioritized in Q1, but please poke for updates. The subset of what we need from the SDK is essentially S3, DynamoDB, KMS, SNS, EC2, ELB, CloudWatch, IAM, and CF. You could attempt to narrow down the list yourself if you can't wait until we pick this work up. I may be forgetting something and if I am please do circle back with what you find as you might expedite our audit :).

Cheers,
Jaret

by
Hi Jaret, thanks for responding!

I emptied the lib folder and reintroduced dependencies one-by-one. My validation criteria was fairly basic - starting a dev transactor via bin\repl and transacting & querying from a peer, which required 53 jars. If this approach is helpful I'll repeat for a peer-server and other storage types and share the results in a comment.

 I'm sure there'll be functionality I'm not testing but hopefully it'll be a starting point!
by
Tom,

I'd love to see the list of the 53 jars you included.  But ok if you can't provide as we will absolutely be using this approach, but with our test suite to make sure we exercise all the things.   I do strongly suspect that the transactor would provide a superset of deps required thus testing peer-server etc would not be required.
by
Hi Jaret, as requested!

artemis-commons-2.28.0.jar
artemis-core-client-2.28.0.jar
artemis-journal-2.28.0.jar
artemis-selector-2.28.0.jar
rtemis-server-2.28.0.jar
asm-9.2.jar
ws-java-sdk-cloudwatch-1.12.358.jar
aws-java-sdk-core-1.12.358.jar
aws-java-sdk-s3-1.12.358.jar
affeine-3.1.5.jar
caster-1.0.45.jar
clojure-1.11.1.jar
commons-beanutils-1.9.4.jar
commons-codec-1.15.jar
commons-collections-3.2.2.jar
core2-1.0.118.jar
datomic-lucene-core-3.3.0.jar
ressian-0.6.8.jar
guava-30.1-jre.jar
h2-2.1.214.jar
http-endpoint-1.0.101.jar
io-stats-1.0.10.jar
jackson-annotations-2.12.7.jar
jackson-core-2.12.7.jar
jackson-databind-2.12.7.1.jar
javax.servlet-api-3.1.0.jar
jcl-over-slf4j-1.7.36.jar
jctools-core-2.1.2.jar
jetty-client-9.4.51.v20230217.jar
jetty-http-9.4.51.v20230217.jar
jetty-security-9.4.51.v20230217.jar
jetty-server-9.4.51.v20230217.jar
jetty-servlet-9.4.51.v20230217.jar
jetty-util-9.4.51.v20230217.jar
ul-to-slf4j-1.7.36.jar
logback-classic-1.2.8.jar
logback-core-1.2.8.jar
memcache-asg-java-client-1.1.0.35.jar
nano-impl-0.1.323.jar
netty-buffer-4.1.86.Final.jar
netty-codec-4.1.86.Final.jar
netty-codec-http-4.1.86.Final.jar
netty-codec-socks-4.1.86.Final.jar
netty-common-4.1.86.Final.jar
netty-handler-4.1.86.Final.jar
netty-transport-4.1.86.Final.jar
netty-transport-native-unix-common-4.1.86.Final.jar
query-stats-1.0.13.jar
lf4j-api-1.7.32.jar
spec.alpha-0.3.218.jar
tomcat-jdbc-7.0.109.jar
tomcat-juli-7.0.109.jar
transit-java-1.0.362.jar
...