Elsie's Mission

The Elsie project aims to build a full-featured, standard-based, extensive wiki engine in Java. The project contains following modules:

Elsie Wiki API

Elsie offers a well-defined, servlet-independent wiki API.

Elsie is a web application which should run inside a servlet container like Apache Tomcat or Jetty. The goal to make the wiki API servlet-independent is to enable both servlet integration and portlet integration.

The kernel of Elsie is designed as an IoC container, while services may be loaded dynamically during runtime. This make it possible to configure different service implementations for Elsie.

The following services are required by Elsie:

  • Wiki page repository: this service manages all wiki pages. It is built on top of the Java Content Repository API.
  • Wiki user manager: this service manages all wiki users.
  • Wiki rendering engine: this service renders the wiki markup text to XHTML.

Wiki Web Connectors

Elsie provides different web connectors for the servlet integration and portlet integration. Maybe we will use Apache Graffito as Elsie's framework.

Wiki Page Repository

Elsie provides a default implementation for the wiki page repository service. This implementation is based on the Apache Jackrabbit project.

Wiki User Manager

Elsie provides a default implementation for the wiki user manager service. This implementation uses Apache Derby as the embedded DB engine.

Wiki Rendering Engine

Elsie provides a default implementation for the wiki rendering engine service which uses Radeox to render wiki markup text.

Elsie Docrama?

In the future, the Elsie wiki framework may also be used to build a new project called Docrama. Docrama aims to be a Source repository / Javadoc / Documentation management system, which may be used within open source projects. The idea is borrowed from the Apache Alexandria project, which is no longer being developed. I found it a great idea: it will be wonderful if developers could have a wiki-like page for javadoc, and could comment on one class or one method (especially when they are defining the project API).

The following links may be of some interests for the Docrama project:

Related Specifications

  • JSR-168 - the Java Portlet Specification 1.0
  • JSR-170 - the Java Content Repository Specification 1.0