Chapter 5. Programmer Reference

Table of Contents

Third-party Dependencies

You only need to refer to the API documentation if you plan to write new persisters, application-specific modules, or log analysis utilities. For most applications the provided tools should be adequate.

API Modules
JavaDocsDescription
Beet Core APIbeet core interfaces and utility classes. This library is packaged as beet-[version].jar. This package contains interfaces you must implement for custom persistence mechanisms and user identity providers.
Beet Utils APIis a library useful for manipulating common behavior tracking log formats. These tools are primarily intended for command line use, but can be programmatically extended to support custom data loaders. This API is packaged as beet-utils-[version].jar.

Third-party Dependencies

Beet is obviously built for and depends on Spring Framework. There are also a handful of other open source tools distributed with beet. The Ivy Dependency Report contains a technical summary of third-party library requirements for compilation, testing, and deployment. Here is a more practical summary of libraries required by beet-core and beet-utils at runtime:

Beet Third-Party Dependencies
ProjectRequired ByIncluded?DescriptionLicenseHome PageSupported

Spring Framework

file(s): spring.jar

Beet CoreNoAt present, Beet is foremost an add-on tool for Spring applications. Because it is intended to augment an existing application (and to reduce download size), Spring itself is not included with a Beet release.Apache Software License, 2.0springframework.org2.0.*, 2.5.*

Quartz

file(s): quartz-all.jar

Beet CoreYesBeet uses the Quartz scheduler to periodically flush events and rotate log files. Spring features strong Quartz integration features of its own, so your application may already include the Quartz scheduler jar.Apache Software License, 2.0opensymphony.com/quartz1.6.0

AspectJ

file(s): aspectjrt.jar, aspectjweaver.jar

Beet CoreYesBeet uses AspectJ pointcuts to implement Java method monitoring.Mozilla Public License, 1.1www.eclipse.org/aspectj1.5.3

Code Generation Library

file(s): cglib.jar

Beet CoreYesCGLib is a dependency of Spring AOP, required if you want to monitor the execution times of Java classes that do not implement a business interface. If all of your Java classes implement at least one interface, you do not necessarily need to include cglib in your application.Apache Software License, 1.1cglib.sourceforge.net2.1.3

ASM

file(s): asm.jar

Beet CoreYesASM is a requirement of cglib. If you don't use cglib, you can also remove ASM.ASM Project Licenseasm.ow2.org1.5.3

Apache Commons Logging

file(s): commons-logging.jar

Beet Core, Beet UtilsYesBeet classes use the commons-logging framework to log diagnostic and information messages. A supported version of the commons-logging jar is required for all uses of Beet.Apache Software License, 2.0commons.apache.org/logging1.1.1

FastInfoset

file(s): FastInfoset.jar

Beet Core, Beet UtilsYesThe Beet XML persister and beet-utils use the FastInfoset encoding when Binary XML logging is specified. If you do not use the XML persister, or disable binary logging, you do not need this jar.Apache Software License, 2.0fi.dev.java.net1.2.2

StAX API

file(s): stax-api.jar

Beet Core, Beet Utils, Java 5 onlyYesThe Beet XML persister and beet-utils use the XML streaming API for reading and writing log data. If your app runs in a Java 6 SDK, or if you do not intend to use the XML persister, you do not have to include this jar.Apache Software License, 2.0stax.codehaus.org1.0.1

StAX Implementation

file(s): stax-impl.jar

Beet Core, Beet Utils, Java 5 onlyYesThe Beet XML persister and beet-utils use the XML streaming API for reading and writing log data. If your app runs in a Java 6 SDK, or if you do not intend to use the XML persister, you do not have to include this jar.Apache Software License, 2.0stax.codehaus.org1.2.0

SAXON

file(s): saxon.jar, saxon-dom.jar

Beet UtilsYesThe beet-utils XSLT tool uses saxon to execute stylesheet transformations. We require a versatile XSLT 2.0 processor, of which saxon is a leading example.Mozilla Public License, 1.0saxon.sourceforge.net8.8

xerces

file(s): xercesImpl.jar

Beet UtilsYesbeet-utils uses some xerces-specific XML APIs to process log files.Apache Software License, 1.1xerces.apache.org/xerces-j2.8.1