Datomic depends HornetQ 2.3.17.Final, and we depend on 2.4.1.Final. If we exclude Datomic's version, it can't connect to the transactor that is also running 2.3.17.Final. If we exclude our version, our messaging api doesn't work because JMS 2.0 support was added in HornetQ 2.4.0.
The Datomic team is considering upgrading, but have concerns:
17:09:02 stuartsierra dark4eg: The Datomic developers are aware of dependency issues with older versions of libraries Datomic uses. HornetQ has unfortunately had backwards-compatibility issues between 2.X releases, so they have been cautious about upgrading.
For those using Datomic with Immutant, there are currently two options:
1) run the application inside WildFly using an incremental build (or alpha2, once that is out). There, we're able to isolate the underlying HornetQ version from the application, allowing the Datomic version to load
2) don't use immutant-messaging. This means either bringing in the Immutant dependencies indivually, or using the "catchall" dependency and excluding messaging: [org.immutant/immutant "version" :exclusions [org.immutant/messaging]]