Essence Java Framework
This web site is being migrated to the Essence Wiki
Google
 
Web www.jtoolkit.org weblog.jtoolkit.org
Navigation
Home
SourceForge Home
Articles on Java
Getting Started
Essence Documentation
Download

Contact
Get rewarded for helping out
Email A Question
Weblog

Support This Project

SourceForge.net Logo

Getting Started

Before you start from scratch you may want to look at the demo application Essence JMS. This is a working example.

Step 1: download Essence Framework

Essence can be downloaded by clicking on the link in the left tool bar.

Step 2: Unpack the ZIP

The minimum you need to essence-{version}.jar. The debug version essence-g-{version}.jar contains the debugging information and the source. If space is not important take the essence-g-{version}.jar

Step 3: Take a copy of the empty config

In the config directory there is an empty configuration. Empty Essence Configuration

Step 4: Add the components for your system

The component name is used to reference the component. You can have multiple instance of the same class. The logical process determines whether components share the same thread. Components in the same logical process can refer to each other directly. Components in different logical process must communicate via Collections or a messaging system.

Components

component className logicalProcess purpose
{component-name} {class-name} {name of thread to run the component} {a comment on the purpose}

Step 5: Set the properties for each component

Component properties are added here. For each property there must be a field in the component with that name. There must also be a constructor which takes the properties in the order the fields are defined in the component's class.

ComponentProperties

component property value
{component-name} {property-name} {value}

Step 6: Set the references for each component

Component references are added here. Components in the same logical process can reference each other or a a shared component created by a ComponentBuilder. There must also be a constructor which takes the properties in the order the fields are defined in the component's class.

ComponentReferences

component reference componentReferenced
{component-name} {reference-name} {component-referenced}

Step 7: Set any shared components

Shared/distributed collections can be added here. A collection can be a Map or a BlockingQueue (or both)

Collections

collection collectionType storeType valueClass location readMode persistMode
{collection-component-name} ANY/ MAP/ QUEUE {storeage-type} {class of values in collection} {location in classpath/URL} ANY/ MINIMAL/ NONE/ ALL ANY/ NONE/ DISABLE/ ASYNC/ SYNC/ SEMI_SYNC
The CollectionType determines how a collection can be accessed.
The valueClass is the class of values (for Map) and elements (for BlockingQueue).
The collection can also be accessed as a Store give access to additional methods such as getListenerSet() which allows listening of changes or event driven processing. (Even if the queue/map is a remote one)
The location is the class path resource location, URL or file system location. For MEMORY collection type

Step 8: Start you application

You can start your application with org.jtoolkit.essence.app.Main class.

Example configurations

This configuration is for JMS broker in two-way clustering.

This is the configuration for a JMS client to connect to one the two brokers.  The brokers then replicate themselves.

Copyright 2006 Peter Lawrey Essence Email