Welcome to the Dentaku project. Dentaku is a family of components to help you rapidly build server-based applications using a powerful mixture of emerging and proven technologies and methods. The components that are a part of the project can be used individually or together, depending on the stage your project is in and whether a particular solution fits your problem domain.
One size never seems to "fit all", so we've focused on smaller components that can be mixed and matched in your project. And much like any Java class can be subclassed, we encourage you to use these components in the same way. When starting a component, consider whether there is an existing component that does something similar to what you are looking for, then use it as a template, replacing the code and resources with your own.
Dentaku focuses on the following
We encourage this build environment reuse because Dentaku components are "generator-centric". This is so important to Dentaku that we refer to it as simply "GC", and GC is often used as an adjective. What this means is that when given the choice between writing code or descriptors by hand or having them generated, the "Dentaku Way" is to have them generated. The value behind this focus was initially proven by the XDoclet project over the past few years, and now with so called Model Driven Architecture (MDA) methodologies that are starting to emerge.
Using source generators generally provides a very rapid return on investment once the generator is operational in a build. Any source code that is repetitive in nature, such as database entity objects, are candidates for generation. Generators are successful in situations where what we call the "semantic content ratio" is very low, and a form of metadata can be adopted to encapsulate the semantics of the generated code. See the Gentaku pages for more about this.
Dentaku is committed to using Plexus, an IOC container that provides what we feel is the strongest support for enterprise applications. Two reasons rise to the top:
- Declarative dependency injection via XML descriptor resources
- A large and growing component library, providing ready-to-use code for many different needs
Dentaku calls these components "Services".
The Dentaku Framework is unique in that it not only provides the facilites to create an event driven application, but that by simply generating the correct UML in the application model, the events are generated as JavaBeans, along with action stubs waiting for your action code. Simply model your use cases, generate events from the build and add domain-specific code!
While it's always possible to hand code your event actions, Dentaku allows you to take the process one step further. By attaching UML activity diagrams to the use cases that generate the events, you can automaticallygenerate executable workflow definitions for Werkflow that are wired to event actions. These process descriptions, which orchestrate the flow of action after the event has been submitted, trigger actions that form atomic units of work within your application. These actions are usually in the form of the form of Dentaku Services (see above), which are easily reusable within other actions or elsewhere within your application.
As your subconcious mind spins on the tenet of "being GC", consider an inventory of the different components that are currently a part of the project:
A directed acyclic graph of these components and their static dependencies helps to show these relationships:
The following are convenience components:
- EAR - Just a packaging project. Top level Maven dependencies can be configured to generate the EAR automatically.
- Container - This contains code that needs to be loaded directly into the container, for instance a Tomcat Valve.
Finally, there are several Gentaku Cartridges:
- Gentaku Event Cartridge - Generates events and event dispatchers from UML. Work in progress.
- Gentaku Entity Cartridge- Generates entity objects that implement PersistenceManager interfaces for entity objects. These are not as mature as the AndroMDA cartridges that were used with the proof-of-concept client, but those require a forked version of AndroMDA.
This document will give you detailed directions to get started with the example app.
Source Code & Distributions
- Source is in CVS, web enabled at http://cvs.dentaku.codehaus.org, pserver access, see http://despots.codehaus.org/CVS
- Binaries can be found in the Maven repository at http://www.ibiblio.org/maven/dentaku
Status of the project can be found here
Mailing list subscription and unsubscription information can be found here
Some questions can be answered here
People that are interested in Dentaku, naturally, are developers. We recognize that no matter how mature the Dentaku environment becomes, the evolution of the art will mean that our user community will improve on existing processes as well as create new ones. We welcome you to look here to see how to go about this.
About These Documents
These pages, along with the components themselved, are hosted by the kind folks at the Codehaus. We are indebted to their generosity and proud to be a member of the family of fine projects that are hosted there.
The Dentaku project is licensed under the ASF 2.0 license. The Dentaku name and logo are trademarks of Bill2, Inc.
Dentaku is proudly sponsored by the following companies! If you would like to sponsor Dentaku, please email us!