Buckaroo is a an open source collection of Java classes that we have found useful. It requires at least Java 5 to build, and has been tested on at least Java 6. It is licensed from Digital Aggregates under the Apache License, Version 2.0.
Buckaroo includes the following components:
- Chip's Instant Managed Beans provide dirt simple mechanisms to implement a remote application management infrastructure using mbeans, JMX, and built-in Java tools like jconsole. The Counters mbean creates and exposes an array of long integers that, when used as strategically placed counters in an application, can reveal what the application is doing and what events, good and bad, it may have encountered. The Parameters mbean exposes a Java Properties object that can be remotely interrogated and even modified. The Platform mbean provides simple tools to expose information about the application like when it was built, and where any class may be found on its classpath. Instant MBeans are perfect for your first attempt at instrumenting an embedded or server-side Java application. They facilitate debugging in the lab and troubleshooting in the field.
- Throttles provide several different rate control mechanisms. Included are classes that implement a variety of event-based and time-based rate control strategies, such as GeometricThrottle, GenericCellRateAlgorithm, CellRateThrottle, BandwidthAlgorithm, and BandwidthThrottle. Classes such as CompoundThrottle allow you to combine different Throttles to achieve even more complex behaviors. Rate control is a vital armament in the battle for robust and scalable real-time systems.
- Several different utility classes provide environment and resource discovery mechanisms that, while not rocket science, are handy to have around.
The Buckaroo jar file can be found here.
The zip file of the Buckaroo project, including all sources and junits, importable into Eclipse, buildable using Eclipse or Ant, can be found here.
Here are some articles that my alter-ego Chip Overclock has written about Buckaroo:
- Pocket Web Service
- Chip's Instant Managed Beans
- Rate Control Using Throttles
- Throttles Contracts
- Five Myths of Software Developer Behavior