JASMINe Developer's Guide


Table of Contents

1. Building JASMINe
1.1. Software requirements
1.2. Getting the sources
1.3. Ant process
1.4. Building the UI
2. Introducing JASMINe
2.1. Structure of JASMINe
2.2. Relations between projects

Chapter 1. Building JASMINe

1.1. Software requirements

  • Eclipse 3.2 (or more)

  • Ant 1.6.5

  • JDK 5.0

  • JOnAS 4.8.X

1.2. Getting the sources

1.2.1. Structure of the repository

The structure is structured as follows:

				trunk/ assembly/ <- build.xml required files
				jasmine-control/ <- Central node module jasmine-doc/
				<- Documentation jasmine-gui/ <- UI jasmine-jade/
				<- JADE Bundles jasmine-probes/ <- Monitoring
				System build.xml
			

1.2.2. Command line

Svn command line client is used to checkout the sources:

>$ svn checkout svn://svn.forge.objectweb.org/svnroot/jasmine/jasmine/trunk
jasmine A jasmine/assembly
A jasmine/assembly/jasmine-control
A jasmine/assembly/jasmine-control/ant
A jasmine/assembly/jasmine-control/ant/README A
jasmine/assembly/jasmine-control/ant/build.xml A
jasmine/assembly/jasmine-control/rars A
jasmine/assembly/jasmine-control/rars/autoload ... A
jasmine/jasmine-probes/jython A
jasmine/jasmine-probes/jython/manager.py A
jasmine/jasmine-probes/jasmine-probe-jython.sh A
jasmine/jasmine-probes/.settings A
jasmine/jasmine-probes/.settings/org.eclipse.jdt.core.prefs
A jasmine/build.xml Checked out revision 184.
			

This will checkout all the JASMINe code base (Control node components, JADE bundles and wrappers, UI) in a folder named jasmine .

1.2.3. Eclipse Subclipse/Subversive

In the SVN Repository Exploring perspective, add a new repository location with the URL svn://svn.forge.objectweb.org/svnroot/jasmine/jasmine/trunk (or with 'svn:ssh' for a developer access).

Checkout the trunk as a new project (not Java project). Then, simply import the projects inside in your workspace.

It's important to keep the Jasmine projects structure, otherwise the JASMINe build process will not work.

[Note]Note

Use the protocol svn+ssh (instead of svn) for developer access. Anonymous users are unable to commit changes.

1.3. Ant process

Prior to the build execution, the following environment variables must be set:

  • JONAS_ROOT must points to a valid JOnAS 4.8.X installation directory.

Executing ant in the jasmine/ directory will compile everything and produce the distributable binaries in the output/dist/ directory:

			>$ ant jar Buildfile: build.xml

			init:

			jar-probes: ... parent: [copy] Copying 1 file to
			/home/sauthieg/tmp/test-sub/jasmine/output/dist

			jar:

			BUILD SUCCESSFUL Total time: 7 minutes 59 seconds
		

This command creates jasmine-doc-VERSION.zip , jasmine-jade-VERSION.zip and jasmine-control-VERSION.zip , which contain all the JASMINe binaries (except the UI).

The structure of the jasmine-control.zip file is:

jonas/
	lib/ext/
		jasmine-shared.jar
	rars/autoload
		drools.rar
	ejb3s/
		jasmine-rules.jar
		jade-ejb.jar
jasmine_rules/
	defaultRules.drl.xml
	test.drl.xml build.xml
README
		

It contains a build.xml file which will ease the install of the components in a JOnAS server.

The file jasmine-jade.zip contains:

jade-jmx.zip
jadenode.tgz
jadeboot.tgz
repository/
		

The use of these files is explained in the user manual.

1.4. Building the UI

To develop or to build the JASMINe UI, you need to have these plugin projects in an eclipse workspace :

  • org.ow2.jasmine.model
  • org.ow2.jasmine.model.edit
  • org.ow2.jasmine.model.diagram
  • org.ow2.jasmine.model.discovery
  • org.ow2.jasmine.model.jonas
  • org.ow2.jasmine.model.jade
  • org.ow2.jasmine.model.rules
  • org.ow2.jasmine.model.fdf
  • org.ow2.jasmine.model.fractal

They can be found in the SVN server under jasmine/trunk/org.ow2.jasmine.ui/

Open the jasmine.product file from the org.ow2.jasmine.model.diagram project. It's important to take care of selecting all the necessary plug-ins. To launch it from eclipse click on 'Launch the product' on the 'Overview' tab.

You can configure the default connection properties in the configuration/config.ini file.

To get an independent eclipse RCP client, just click on 'Eclipse Product export wizard' on the overview tab of the jasmine.product.

Chapter 2. Introducing JASMINe

2.1. Structure of JASMINe

JASMINe is structured in 4 parts, each part having one purpose.

2.1.1. jasmine-control (The control node)

A JOnAS will be running in the control node running two EJBs. In this part the following projects are included:

  • JasmineShared: Common libraries.

  • DroolsResourceAdapter: The resource adapter for the Drools Rules Engine.

  • JasmineRules: Generates the EJB that acts as a server for the probes.

  • JasmineConnection: Generates the EJB that acts as a server of the GUI and the JADE-JMX bridge.

2.1.2. jasmine-probes

Each node of the JASMINe network will be monitoriced using some probes that will send to the control node in XML format the results of the probes. The package generated is used after for creating its own wrapper.

2.1.3. jasmine-jade

The JADE wrappers (or bundles) are generated in this part, and are copied directly to the repository in the build process. The repository must be accessible from all the JASMINe nodes. These wrappers contain the software and the java classes to configure and launch it. Projects:

  • JasmineWrapper: Contains the common files used by the wrappers.

  • jasmine-bundle-*: Extends the JADE framework for adapting it to each wrapper.

2.1.4. jasmine-gui

The user interface uses the EMF framework. The projects are:

  • JASMINe

  • JASMINe.edit

  • JASMINe.editor

  • JASMINe.jar

2.2. Relations between projects

Part Requires Project Builds
jasmine-control - JasmineShared jasmine-shared.jar
jasmine-shared.jar DroolsResourceAparter drools-ra.jar drools.rar
jasmine-shared.jar drools-ra.jar JasmineRules jasmine-rules.jar
- JasmineConnection jade-jmx.zip jade-ejb.jar
jasmine-probes - jasmine-probes jasmine-probes.zip
jasmine-jade - JasmineWrapper jasmine-bundle-api.jar
jasmine-bundle-api.jar jasmine-bundle-apache apache2-2-2.jar
jasmine-bundle-api.jar jasmine-bundle-jonas-base jonasbasewrapper.jar
jasmine-bundle-api.jar jasmine-bundle-jonas-root jonasrootwrapper.jar
jasmine-bundle-api.jar jasmine-bundle-probes monitoringSystem.jar
jasmine-gui - JASMINe -
- JASMINe.edit -
- JASMINe.editor -
- JASMINe.jar -
[Note]Note

drools-ra.jar and jasmine-bundle-api.jar are only for internal use.

Copyright © 2006-2007 JASMINe / ObjectWeb consortium
Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

http://jasmine.objectweb.org