SimpleTemplate is a simple template engine written in Java. You can generate formatted text from a Java bean. You can use it for generating XML files, Web sites, etc. It features simple template directives, user-selectable template directive separators, alias creation using with and set directives, support for indexing into arrays, collections, and maps, looping on an array or a collection, a simple include mechanism to reuse template files, conditional evaluation using if and ifelse, and custom list separation settings (prefix, suffix, and separators). Template files can be read from the filesystem, class path, or just a string. Support for methods, aka. sub templates.
Self-Adjusting Top Tree Implementation maintains a forest that changes over time through edge insertions and deletions. This implementation focuses on the simplified Top Tree interface, which allows you to solve a number of interesting graph problems like finding common ancestors, the heaviest edge, maintaining the diameter, center, or median and other (mostly network flow) problems. Using Top Tree interfaces, all outline problems can be solved in a clean declarative way. This implementation uses adapting ST-trees as the underlying data structure, achieving O(log n) time per expose(v,w) operation. There is also a demo that shows an easy way to integrate the toptree library and the host application.
Hades is a high availability (HA) data source. This HA data source contains two other data sources: the main one and the failover one. The HA data source exposes one of them at a time and can automatically switch between them when certain conditions are met. These conditions are highly configurable. By default, when the main data source is overloaded, the failover data source is used. The load of a data base is determined on the basis of the average execution time of some configurable SQL statement that is examined periodically. The HA data source exposes through JMX its state and also operations for manual switching between the two contained data sources in case automatic switching must be suppressed for some reason.
Yap4j is the simplest library for parsing CSV files in Java. It deserializes CSV files into a list of POJOs using a set of Java annotations, while allowing you to specify Object-CSV mappings. It automatically converts to and from a wide range of data types, and includes support for types from popular libraries such as Joda Time, and support for custom record delimiters.
kongcurrent provides an easy-to use helper to assist debugging issues which cause exceptions under concurrent access. It was inspired by a problem in which a non-thread-safe Map object held by a third party framework was accidentally shared between threads, causing a ConcurrentModificationException. The helper (a "monitor") creates a proxied version of an object implementing some interface. The proxy can track invocations of the objects' methods and can report on potential concurrent access on the object. This can be used to help find code paths which concurrently access the object through its interface methods. By design, the helper is extensible, and can be adapted to more specific needs.