Javasynth is a Java-based system for creating (rather experimental) modular audio systems called sound modules. This allows synthesizers of some kind to be assembled in a modular fashion using oscillators, amplifiers, envelopes, filters, and other components familiar to those that have worked with hardware synthesizers. It includes a separated synth engine and a Swing user interface for building sound modules.
P6Spy is an open source framework for applications to intercept and optionally modify database statements. The P6Spy distribution includes P6Log, which intercepts and logs the database statements of any application that uses JDBC. This application is particularly useful for developers to monitor the SQL statements produced by EJB servers, enabling the developer to write code that achieves maximum efficiency on the server. P6Spy is designed to be installed in minutes and requires no code changes.
Kalyp is a fantasy-based roguelike game written in Java. Its design is based on traditions set by popular roguelike games, especially Nethack. It is single player and runs in a text terminal. The project focuses mostly on the Artificial Intelligence engine for the non-player characters. Most of the game design will be done in scripting, as the core engine written in Java will handle user interface, rulesets, basic actions, and try to hold it all together.
Platform Independent Petri Net Editor (PIPE) creates and analyses Petri Nets quickly, efficiently, and effectively. A key design feature is the modular approach adopted for analysis, enabling new modules to be written easily and powerfully, using built-in data layer methods for standard calculations. Six analysis modules are provided, including Invariant Analysis, State-Space Analysis (deadlock, etc.), and Simulation Analysis and Classification. PIPE adheres to the XML Petri net standard (PNML). The file format for saving and loading Petri Nets is extensible through the use of XSLT, the default being PNML.
There are many instances when one needs to process certain objects on seperate threads. But spawning a seperate thread per object may cause the system to crash. The Thread Pooling Framework can be used to process the the objects on a predefined number of threads. If all threads are busy, the objects are kept in the pool. Whenever a thread ends, an objects is taken from the pool and processed on a new thread. This continues until the pool is empty.