Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Lean distribution of ActiveMQ

DZone's Guide to

Lean distribution of ActiveMQ

· Integration Zone
Free Resource

Modernize your application architectures with microservices and APIs with best practices from this free virtual summit series. Brought to you in partnership with CA Technologies.

I saw a question on the mailing list asking for a simple, stripped-down, version of ActiveMQ. The default 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!

The Integration Zone is proudly sponsored by CA Technologies. Learn from expert microservices and API presentations at the Modernizing Application Architectures Virtual Summit Series.

Topics:

Published at DZone with permission of Christian Posta, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}