Printer-friendly versionPrinter-friendly version
Files from SWDES and from contributors


The Liberal Licenses are innovative public licenses, which are suitable for any material protected by copyright laws, in particular software.


Java projects


A Java library containing some basic classes and implementations of basic concepts, e.g. basic cache, locking, utility classes, etc.. Most of the other Java projects listed here depend on this library.

A reference implementation of the Calling Broker pattern in Java. Enables true multimethods (multiple dispatch) in Java. Dispatches on method level by any arbitrary context. Can be used on top of any creational pattern and existing creational framework, such as dependency injection frameworks.

A complex reference implementation of the Creator pattern in Java (JEE) including object life cycle management, thread management, AOP-like capabilities, multiple dispatch by any arbitrary dynamic context, etc. Includes packages to support and integrate with common JEE web servers. By its usage of the JGEN project to generate the creator classes, Creator is even much quicker and easier to use.

A very complex Java framework that mediates announcements and arbitrary objects (related to arbitrary topics) sent by publishers to be received by subscribers. Using JAM is a simple one-liner in most cases. Implements object oriented patterns, such as publish-subscribe, mediator, specification, decorator, etc. Can work in a synchronous or asynchronous manner, on a single thread or concurrent, immediate or scheduled, over networks or directly within the same JVM instance. Supports to push and to pull data in dynamic chunk sizes, supports direct value change propagation, asynchronous exception handling and much much more. Includes packages to integrate with common logging APIs.

A template engine, primarily used to generate Java code. Uses setups and presets in pure Java to offer unlimited possibilities without the need to learn a DSL or the like. The JGEN core makes heavily use of the Navigator project and thus it is also used as an example to demonstrate how to use navigators.

A reference implementation of the Navigator pattern in Java. Enables to navigate on any object graph, including cyclic ones, in order to retrieve data or to alter data referenced by that graph or to alter the graph's structure. The graph navigation by these navigators offers powerful features beyond a simple graph traversal including choices of navigation strategies and log books. Can be used also for a navigation-oriented architecture where the access to domain model members is reserved for navigators, thus decoupling the members of the domain model from each other, which allows e.g. for easier model changes.

A utility project for a lightweight and easy to use tracing / tracking of a programs execution path even in a multithreading environment with reused threads, along with typical tracing measurements, in local developer tests and the like.