This site contains information about the dependencies of JWT's components, as well as a description on how to download the latest versions from the Eclipse CVS and the layout of the JWT CVS repositories.
- 1 Access the JWT Source Code
- 2 Requirements
- 3 Start working with the code
- 4 Structure of CVS
- 5 Detailed Layout of the CVS
- 6 See also
Access the JWT Source Code
Browsing it online
You can browse the CVS repository online at http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jwt/?root=Technology_Project .
To download the latest source code of the various components of JWT, please connect your CVS client (typically Eclipse's CVS Browsing perspective) with:
- Host: dev.eclipse.org
- Repository path: /cvsroot/technology
- User: anonymous
- Password: (none)
- Connection type: pserver
If you have a committer account, please provide your committer data (username and password) and select as connection type extssh instead of pserver.
In this CVS repository, the source code of JWT is under the "org.eclipse.jwt" directory, which you can retrieve by doing a CVS checkout. It is laid out as follow :
- org.eclipse.jwt/we : Workflow Editor, i.e. design time tools
- org.eclipse.jwt/wam : Workflow Audit And Monitoring, i.e. runtime time tools and framework
- org.eclipse.jwt/desktop : Simulator and other standalone BPM tools
For a more detailed layout please refer to Detailed Layout of the CVS.
Dependencies (for CVS HEAD as of May 2010 / JWT 0.7.0)
Below is the easiest way to get an Eclipse environment with all dependencies for this JWT version.
Install Eclipse 3.5 (Helios) SDK r2 and a Java Runtime Environment (JRE) / Java Development Kit (JDK) 5.0 or higher.
Add the following plugins :
- Eclipse Modeling Framework (EMF)
- Graphical Edition Framework (GEF) and its Zest plugins (core and layout)
- ATL - ATLAS Transformation Language
Those plugins' SDKs are optional but may be useful for developers.
If you already have Eclipse installed, you can download those plugins from from your "Software updates" menu.
Add the following Orbit dependencies :
- org.apache.xalan 2.7.1
- org.jdom tag v200806100616 (?? TODO tag, still needed 20100506 ??)
In our case, simply check out in your workspace each module described above:
- host: dev.eclipse.org
- repository: /cvsroot/tools
- module: org.eclipse.orbit/org.jdom
- Tag: normally HEAD (latest) should do the trick, otherwise use the appropriate corresponding to the dependency version above
Start working with the code
Build the JWT Code
You need to retrieve the JWT source code by checking it out from CVS, as described above.
If you used an external CVS tool to check out the codebase, you need to import the source code into Eclipse as projects (in the Java Perspective, using right click > import existing projects). Look below to know which projects are required to be imported.
The build will start automatically once you've imported the projects (thanks Eclipse !). If you've got all required dependencies (see above), once the build is finished, all projects should be built with no remaining error (red tags), like in the following picture :
If you've got errors, they are usually about dependencies. Maybe you haven't imported enough JWT projects, or maybe you've imported "obsolete" parts of the CVS codebase. Again, look below to know which projects are required or obsolete in the codebase.
Run the JWT Plugins from Code
Right click on the jwt-we project and choose Run as > Eclipse application. This will launch JWT-WE with all plugins that are available in the workspace. If Eclipse does not succeed to start or JWT-WE is not active, please ensure that all necessary plug-ins are configured to start with your projects. To do so, click on the arrow in the Run item in toolbar, and choose Run Configuration....
Select/Create a run configuration (Eclipse Application) for JWT-WE and on the Plug-ins tab select all necessary plug-ins (in case you have doubt, select Add Required Plugins). Workflow Editor plugins (e.g. the Documentation Generator plugin) must also be enabled in order to be available at run time.
You can now use the Run item in the toolbar to start your new configuration.
There are two alternatives.
1. (the most common) As a developer, you'll want to debug your code and the JWT code you build on. To do so, do as above but using Debug as > Eclipse Application rather than Run as.
2.Sometimes, a JWT release (packaged in an Eclipse release, or a custom RCP release) will have a different behaviour than when started from workspace plugins as above. You can debug it using java remote debugging. To do so,
- add to the startup executable (ex. "C:\eclipse\eclipse.exe") of the Eclipse + JWT installation you want to debug the following command line arguments :
-consolelog -clean -debug -vmargs -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
- once started, connect your development Eclipse to it, by right-clicking on Debug as, creating a new, properly configured Remote Java Application if requried and hitting "enter".
Structure of CVS
- All projects start with jwt.
- Afterwards the main component is added jwt-we, jwt-transformation or jwt-wam.
- If an example is visible in a specific area it is named jwt-we-XY-example (for an example using an extension point of the workflow editor).
- The package structure is org.eclipse.jwt.component and for additional plugins org.eclipse.jwt.component.plugins.nameexample, e.g. org.eclipse.jwt.we.plugins.viewexample.
- Versioning: It is always x.y.z where x and y are always consistent with the corresponding JWT version and z is reserved for the different versions of the plugin in one release, e.g. 0.4.1 for JWT release 0.4 and first change of this additional plugin.
- In CVS there will be a main directory for each component jwt-we, jwt-transformation, jwt-wam and in these there is a subdirectory jwt-XY-plugins (e.g. we/jwt-we-plugins/) where all additional plugins can be found.
Detailed Layout of the CVS
Contains everything related to the JWT metamodel
- jwt-converter JWT metamodel converter (helps version migration) (REQUIRED)
- jwt-metamodel JWT EMF-based workflow metamodel (REQUIRED)
Contains everything related to the Workflow Editor
- jwt-we The Workflow Editor (REQUIRED)
Aspect oriented metamodel extension : (RECOMMENDED)
- jwt-we-conf-model Aspect oriented metamodel extension framework (no dependency to JWT)
- jwt-we-conf-model.edit its management and property sheet UI (no dependency to JWT)
- jwt-we-conf-model.editor its model editor, with helper tools (draft)
- jwt-we-conf-model.we Integration of the Aspect oriented metamodel extension framework in JWT
- jwt-we-conf-property-model All-purpose property-like metamodel extension
- jwt-we-conf-property-model.edit its property sheet UI
Plugins (OPTIONAL) :
- jwt-we-plugins Plugins for the Workflow Editor
- jwt-we-action-example An Example on how to add Menu/Toolbar Actions to the Workflow Editor
- jwt-we-action-doc An Action for generating Documentations
- jwt-we-view-example A Example on how to add Views to the Workflow Editor
- jwt-we-view-uml A view that displays Processes as UML Activity Diagrams
- jwt-we-helpers-application propertyDescriptors and changeListener to facilitate the modeling of an application
- jwt-we-helpers-files propertyDescriptors and tools to replace TextArea by filesystem browser for files (icon, jarArchive)
- jwt-we-sample-staticaspect(.edit) Sample showcasing static EMF metamodel extension
- jwt-we-sample-registereddynamicaspect Sample showcasing dynamic EMF metamodel extension
- jwt-we-sample-standalonedynamicaspect Sample showcasing dynamic EMF metamodel extension without a plugin
- jwt-we-sample-aspectschildextender Sample showcasing EMF child extenders
- jwt-we-sample-logging(.edit) Simple logging metamodel extension
- jwt-view A Program for Creating and Modifying Workflow Editor Views
- jwt-we-feature JWT-WE Feature (to be published on Update Site)
- jwt-we-update-site Contents for Update-Site
- jwt-transformation-base The base plug-in for any transformation. Provides UI
- jwt-transformation-stub A sample plug-in that is based on jwt-transformation-base
- jwt-transformation-xslt-tools Helpers for using XSLT to implement JWT transformations
- jwt-transformation-xpdl JWT to XPDL transformation
- jwt-transformation-xpdl-test Tests for JWT to XPDL transformation
- jwt-transformation-jpdl JWT to jPDL transformation (incubation)
- jwt-transformation-jpdl-test Tests for JWT to jPDL transformation (incubation)
- jwt-transformation-bpmn jwt to bpmn transformation
- jwt-transformation-bpmn-tests Tests for the jwt to bpmn transformation
- jwt-transformation-properties Extraction of JWT properties into a .properties file
- jwt-transformation-stpim Bridge with SOA Tool Platform (STP)'s Intermediate Model
- jwt-webservices Tools to introspect WSDL
- jwt-runtime-api A workflow client API that is also used by monitoring plug-in at runtime to get informations from a workflow engine
- jwt-monitoring A plug-in that provides tools to display a workflow state from a workflow engine into JWT
- task-engine-framework Runtime API and framework to help integrating JWT with any workflow server
releng (for "release engineering")
JWT releases automated builds. See JWT Automatic Build for usage.
- builder The builder utility: contains ant files and scripts to build and publish JWT
- tester The tester utility: works only and is necessary for builder. Contains a set of files for automated testing
- cbi-builder An experimental builder, based on the Common Build Infrastructure
- jwt-feature The JWT feature to release => contains the list of plugins to include into the release
- jwt-feature-branding The branding plugin for JWT feature
- jwt-tests-feature The JWT test feature. It is not intended to be shipped or distributed, since it is only used for automated testing. It contains the list of all tests plugins that we want to test at build time
- jwt-tests-plugin The master test plugin. It contains a plugin.xml wheich ocntains the list of all test plugins we want to run, and also a AllTest class that is the automated testing entry point test suite. Any test suite that wishes to be run at build time must be added to this TestSuite