Please find here a brief overview of some Java projects hosted on SWDES:
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.
An architecture framework implementing the MOOD pattern, where a system mainly consists of modules and from any module implementation several instances can be created and addressed individually. Think e.g. of a system with a neural network where the functionality of a module object that contains a part of that neural network rather depends on its internal state than on its implementation. Therefore MOOD realizes object-oriented design on the level of modules. MOOD totally decouples the modules from each other and allows for easily recombining and sticking modules together. Distributed modules can be used over networks (through proxies). Requires most of the other Java projects listed here.
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 an architecture based on navigation-oriented design 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.