This is the entry point for all useful information concerning internal development and build

Scarbo Runtime

Build

Checkout trunk/runtime from the SVN, and build it using Maven.

Source Code Layout

Under trunk/runtime, there are :
  • bonita4-console, that allows to package Scarbo with a full Bonita 4 Server with its Administration Console
  • service, which allows to work with the workflow server in a remote manner. It contains code implementing (on top of Bonita 4) of the JWT WorkflowService API, exposing it as a remote service (Web Service, RMI… through SCA), and allowing to deploy it either in a webapp (e.g. in a Bonita 4 Server) or standalone
  • task-engine, which allows the workflow server to do tasks in a workflow step, like calling a Web Service, executing a Groovy script, sending an email… It contains code implementing the JWT TaskEngineFramework API, and serveral compatible Task implementations.

Developing and releasing a new version

Caution : if you want to change not only the WorkflowService or TaskEngineFramework implementation but also its API, you need to develop your API changes first in the JavaWorkflowTooling JWT source code (SVN at http://wiki.eclipse.org/JWT_SVN for Scarbo 1.2+, otherwise old JWT CVS at dev.eclipse.org:/cvsroot/technology:org.eclipse.jwt).
  • Ensure that the version numbers of the projects you want to add changes in are in development mode (SNAPSHOT). E.g. to develop a new WorkflowService implementation feature, if it's not the case already, change the version and parent/version numbers in the service/service-bonita4-impl/pom.xml from 0.4.0 to 0.4.1-SNAPSHOT, and do the same the parent (service/pom.xml) and in depending projects (service-bonita4-servlet, service-bonita4-standalone, service-bonita4-webapp).
  • develop your changes, unit test them, deploy and use them
  • Put the version numbers of all projects that will be changed in the release in release mode. E.g. to release changes to the WorkflowService implementation, hange the version and parent/version numbers in the service/service-bonita4-impl/pom.xml from 0.4.1-SNAPSHOT to 0.4.1, and do the same for etc.
  • build and install the projects you're interested in. To build a full "bonita console with scarbo" release, you have to do it manually using a bonita console release, your scarbo build artifacts and resources available in the trunk/runtime/bonita4-console project. NB. it actually is an assembly project that could / should be completed someday.
  • Tag (commit first) the runtime tree by the runtime release e.g. "runtime-1.2"
  • Put the release files up in the download area, write a news in the wiki, talk about it in mailing lists, forums and tech news sites

Deploying on OW2 repo with Maven

There are several ways to deploy on the OW2 repo :

  • using maven with the davs protocol
  • using maven with scp
  • manually, using an scp / sftp client
To do it using maven with the davs:// protocol, here are the steps, as seen in the pom.xml's :
  • You need a Maven 2.1.0
  • You need maven wagon-webdav installed
  • You need to have Objectweb repositories configured in your project
  • You need to have developers permissions on the OW2 Maven project
  • Set in you ~/.m2/settings.xml you login and password to be used
<settings>
  <servers>
    <server>
      <id>objectweb-release-dav</id>
      <username>username</username>
      <password>password</password>
    </server>
  </servers>
  <servers>
    <server>
      <id>objectweb-snapshot-dav</id>
      <username>username</username>
      <password>password</password>
    </server>
  </servers>
</settings>
  • You need to accept the OW2 certificate in a keystore
    • Retrieve the certificate (with Firefox, Edition > Preferences > Advanced > Encryption > Show Certificates, then select the OW2 Certificate that you should have accepted once, and select "Export")
    • Choose a keystore (for example in our case, it will be ~/.keystore), and then add the exported certificate to this key store by typing keytool -keystore ~/.keystore -import -file exported/Certificate/File -alias ow2.org
  • Then ensure that the system property javax.net.ssl.trustStore to the absolute path of you keystore when calling maven. You can use several solutions
    • Invoke Maven with this property set mvn deploy -Djavax.net.ssl.trustStore=/home/mistria/.keystore
    • Add -Djavax.net.ssl.trustStore=/home/mistria/.keystore into the MAVEN_OPTS system property
Finally, once deployed (on the server at the 8002 port), it must be published on OW2's HTTP (80 port) by hitting the "publish web site" button as an admin of the Maven OW2 Project at http://forge.ow2.org/projects/maven/ , as said at http://forge.ow2.org/forum/forum.php?forum_id=781 (to become one, ask webmaster AT objectweb/ow2.org ).

NB. of 20100831, doesn't work because of OW2 certificate validation (expired ?!), so rather use scp / sftp / WinSCP etc. to deploy it online.

Scarbo Modeler

Development environment

  • get Eclipse and install the Java Workflow tooling plugins (using Help > Install New Software...).
    • Scarbo 1.0 has been built using Eclipse 3.5 (Galileo) RC5 and the corresponding JWT 0.6 RC5 plugins.
    • To work on the Scarbo 1.0 sourcecode, you need an Eclipse Galileo (m6 or more) and the corresponding JWT plugins (at least version 0.6 for Galileo RC1)
  • get the Scarbo code from the SVN, and import the Eclipse plugin projects that reside under tooling/ in your Eclipse workspace
  • Run it from within Eclipse using right-click > Run as… > Eclipse application . This will launch the Scarbo Modeler, by default with all plugins that are available in the workspace.
  • Debug it from within Eclipse using right-click > Debug as… > Eclipse application . This will launch the Scarbo Modeler in debug mode, by default with all plugins that are available in the workspace.
  • Debug remotely a Scarbo Modeler release or build (sometimes required to reproduce a bug) by doing as follows :
    • add to the startup executable (ex. "C:scarboscarbo-modeler-1.1Scarbo.exe") of the Scarbo RCP 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 required and hitting "enter".

Add plugins to Scarbo Modeler

To add a plugin into Scarbo Eclipse product, you'll have to follow these steps

  • Add the plugin to the scarbo project, that can be found on SVN at trunk/tools/scarbo-product/scarbo.product
  • Add your plugin to the eclipse product-builder map file.
    • Go into trunk/tools/product-builder/maps
    • Add to scarbo.map the line that references your plugin. (using the same pattern as for other plugins)

Build locally Scarbo modeler

To build locally scarbo modeler you'll need:

Then, simply checkout trunk/tools/product-builder/maps, and type ./build.sh on Linux.

For Windows, you'll have to write the batch code that does the same thing as the build.sh, ie get launcher jar and then invoke build.

Releasing and advertising the community

When releasing, here are a set of media to use to communicate about the release:

  • Scarbo Forge News. This feeds in the Scarbo forum and SHOULD feed in the OW2 Forge main feed and in the ow2.org main feed.
  • Scarbo web site RSS (go into XWiki administration arean and then "Post a news", see below). This feeds in the Ohloh news.
  • Scarbo forum (auto)
  • OW2 main news feed (auto, else ask Catherine Nuel or other responsible)
  • OW2 Project News : at http://ow2.org/view/LatestNews/
  • TheServerSide
  • Eclipse Plugin Central
  • Framasoft
  • Mailing-list
    • Scorware (obsolete)
    • Eclipse JWT : jwt-dev
    • Bonita
    • Frascati
    • Petals
    • Eclipse SOA : soa-dev

Scarbo XWiki

News

To add a news,

  • Go to Add News .
  • Enter a new, simple, wiki-like page name for your news. If your name is not simple enough, the left panel might appear on the right.
  • Click on the "Add" button. Then in the news form,
  • select the "News" category in the form, or else it won't appear in the news archive.
  • change the title
  • enter a short extract without ending punctuation, else it's not pretty
  • enter its content
To get the news, there are the following alternatives : NB. the XWiki.AddNews form has been patched by an additional "../" to the action and chaning the webname to Main rather than News. -- Marc

Alternate solution : enter in your browser an URL like this in your browser (both "MyNews" being replaced by a new page name for your news), then save it (should be in raw mode). It should allow you to edit your news through an article form and let you put in your news' title, category, content and extract.

How news work : the xwiki code for submitting a news can be seen at XWiki.AddNews and shows how it should be done (even if it seemingly doesn't work on its own). The main point is that the page class should be XWiki.ArticleClass to appear in the right-panel linked RSS feed, as shown in the rss template at XWiki.BlogRssCode . A news must be categorized in the New category of the Main web to appear in the right panel-linked news archive.