Christian Posta bio photo

Christian Posta

Field CTO at solo.io, author Istio in Action and Microservices for Java Developers, open-source enthusiast, cloud application development, committer @ Apache, Serverless, Cloud, Integration, Kubernetes, Docker, Istio, Envoy #blogger

Twitter Google+ LinkedIn Github Stackoverflow

I saw a question on the mailing list asking for a simple, stripped-down, version of ActiveMQ. The default version 5.7.0 distribution and all of its runtime dependencies come in at about 44MB. I was able to get a working, "lean" version going at about 7.4MB.

First of course, some of the requirements:

Only one protocol would be used (the native OpenWire), no web console, no security, no camel, etc, etc. Simple, JMS provider with no frills.

Here's what my $ACTIVEMQ_BASE/lib folder looks like

  • activemq-console-5.7.0.jar
  • activemq-core-5.7.0.jar
  • geronimo-j2ee-management_1.1_spec-1.0.1.jar
  • geronimo-jms_1.1_spec-1.1.1.jar
  • jcl-over-slf4j-1.6.6.jar
  • kahadb-5.7.0.jar
  • slf4j-api-1.6.6.jar
  • optional/activemq-spring-5.7.0.jar
  • optional/log4j-1.2.17.jar
  • optional/slf4j-log4j12-1.6.6.jar
  • optional/spring-aop.3.0.7.RELASE.jar
  • optional/spring-asm.3.0.7.RELASE.jar
  • optional/spring-beans.3.0.7.RELASE.jar
  • optional/spring-context.3.0.7.RELASE.jar
  • optional/spring-core.3.0.7.RELASE.jar
  • optional/spring-expression.3.0.7.RELASE.jar
  • optional/spring-jms.3.0.7.RELASE.jar
  • optional/spring-oxm.3.0.7.RELASE.jar
  • optional/spring-tx.3.0.7.RELASE.jar
  • optional/xbean-spring-3.11.1.jar

Give it a shot! If someone spots more dependencies that can safely be removed, let me know!

UPDATED: As Gary pointed out, all the spring deps can be eliminated if doing embedded broker. I've put together an example here: at my github repo