Administration And Configuration Guide
The Administration and Configuration Guide for Red Hat JBoss BRMS
Abstract
Chapter 1. Asset repository
Project Explorer from the unified environment of Red Hat JBoss BRMS.
1.1. Creating an Organizational Unit
kie-config-cli tool or the REST API calls.
Creating an Organizational Unit in Business Central
Important
admin role can create organizational units.
Procedure 1.1. Using Business Central to Create an Organizational Unit
- In Business Central, go to → .
- On the perspective menu, click → .
- In the Organization Unit Manager view, click . The Add New Organizational Unit dialog window opens.

Figure 1.1. Add New Organizational Unit Dialog Window
- Enter the two mandatory parameters (name and default group ID) and click .
Creating an Organizational Unit Using the kie-config-cli Tool
kie-config-cli tool as well. To do so, run the create-org-unit command. The tool then guides you through the entire process of creating an organizational unit by asking for other required parameters. Type help for a list of all commands.
kie-config-cli tool, see Chapter 5, Command line configuration.
Creating an Organizational Unit Using the REST API
POST REST API call. Details of the organizational unit are defined by the JSON entity.
OrganizationalUnit instance. Call returns a CreateOrganizationalUnitRequest instance.
Example 1.1. Creating an Organizational Unit Using the Curl Utility
{
"name" : "helloWorldUnit",
"description" : "Organizational unit for the helloworldrepo repository.",
"owner" : "tester",
"repositories" : ["helloworldrepo"]
}curl -X POST 'localhost:8080/business-central/rest/organizationalunits/' -u USERNAME:PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name":"helloWorldUnit","description":"Organizational unit for the helloworldrepo repository.","owner":"tester","repositories":["helloworldrepo"]}'1.2. Creating a repository
kie-config-cli tool or the REST API calls.
Creating a Repository in Business Central
Important
admin role can create repositories.
Procedure 1.2. Using Business Central to Create a Repository
- In Business Central, go to → .
- On the perspective menu, click → .
- The New Repository pop-up window is displayed.

Figure 1.2. New Repository Dialog Window
- Specify the two mandatory parameters:
- repository name
Note
Make sure that the repository name is a valid file name. Avoid using a space or any special character that might lead to an invalid name. - organizational unit: specifies the location of the newly created repository.
- Click .
Creating a Repository Using the kie-config-cli Tool
kie-config-cli tool, run the create-repo command. The tool then guides you through the entire process of creating a repository by asking for other required parameters. Type help for a list of all commands.
kie-config-cli tool, see Chapter 5, Command line configuration.
Creating a Repository Using the REST API
POST REST API call. Details of the repository are defined by the JSON entity. Make sure you established an authenticated HTTP session before executing this call.
RepositoryRequest instance. Returns a CreateOrCloneRepositoryRequest instance.
Example 1.2. Creating a Repository Using the Curl Utility
{
"name" : "newRepository",
"description" : "Repository for the Hello World project.",
"userName" : null,
"password" : null,
"gitURL" : null,
"requestType" : "new",
"organizationalUnitName" : "helloWorldUnit"
}curl -X POST 'localhost:8080/business-central/rest/repositories/' -u USERNAME:PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name":"newRepository","description":"Repository for the Hello World project.","username":null,"password":null,"requestType":"new","gitURL":null,"organizationalUnitName":"helloWorldUnit"}'1.3. Cloning a Repository
kie-config-cli tool cannot be used to clone arbitrary repositories - run git clone or one of the following options instead.
Cloning a Repository in Business Central
Important
admin role can clone repositories.
Procedure 1.3. Using Business Central to Clone a Repository
- In Business Central, go to → .
- On the perspective menu, choose → .
- The Clone Repository pop-up window is displayed.

Figure 1.3. Clone Repository Dialog Window
- In the Clone Repository dialog window, enter the repository details:
- Enter the Repository Name to be used as the repository identifier in the Asset repository and select the Organizational Unit it should be added to.
- Enter the URL of the Git repository:
- for a local repository, use
file:///PATH_TO_REPOSITORY/REPOSITORY_NAME; - for a remote or preexisting repository, use
https://github.com/USERNAME/REPOSITORY_NAME.gitorgit://HOST_NAME/REPOSITORY_NAME.Important
It is important to use the HTTPS or Git protocol instead of a SCP-style SSH URL. Business Central does not support the basic SSH URL and fails with Invalid URL format.
Note
The file protocol is only supported for READ operations. WRITE operations are not supported. - If applicable, enter the User Name and Password of your Git account to be used for authentication.
- Click Clone.
- A confirmation prompt with the notification that the repository was created successfully is displayed. After clicking , the repository is being indexed. Some workbench features may be unavailable until indexing has completed.
Cloning a Repository Using the REST API
POST REST API call. This call creates or clones (according to the value of the requestType parameter) the repository defined by the JSON entity.
RepositoryRequest instance. Returns a CreateOrCloneRepositoryRequest instance.
Example 1.3. Cloning a Repository Using the Curl Utility
{
"name" : "clonedRepository",
"description" : null,
"userName" : null,
"password" : null,
"requestType" : "clone",
"gitURL" : "git://localhost:9418/example-repository",
"organizationalUnitName" : "helloWorldUnit"
}curl -X POST 'localhost:8080/business-central/rest/repositories/' -u USERNAME:PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name":"clonedRepository","description":null,"username":null,"password":null,"requestType":"clone","gitURL":"git://localhost:9418/example-repository","organizationalUnitName":"helloWorldUnit"}'1.4. Removing a Repository
Removing a Repository in Business Central
Procedure 1.4. Using Business Central to Remove a Repository
- In Business Central, go to → .
- Select from the tree menu on the left.
- In the on the right side of the page, locate the repository you want to delete from the list of available repositories.
- From the drop-down menu, select and click .
- The following message will appear:
Are you sure you want to remove Repository "REPOSITORY_NAME"? Some editors may become inoperable if their content is inaccessible.
Press to delete the repository.
Removing a Repository Using the kie-config-cli Tool
kie-config-cli tool as well. To do so, run the remove-repo command.
kie-config-cli tool, see Chapter 5, Command line configuration.
Removing a Repository Using the REST API
DELETE REST API call. Make sure you established an authenticated HTTP session before executing this command.
RemoveRepositoryRequest instance.
Example 1.4. Removing a Repository Using the Curl Utility
curl -X DELETE 'localhost:8080/business-central/rest/repositories/REPOSITORY_NAME' -u USERNAME:PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json'
1.5. Managing Assets
Note
kiemgmt.
Managed and Unmanaged Repositories


Managed Branches


Repository Structure


kiemgmt will have a user task appear in this task list to review the assets being promoted. This user can claim this task, and decide to promote all, some or none of the assets. The underlying process will cherry-pick the commits selected by the user to a release branch. This user can also request another review of these assets and this process can be repeated multiple times till all the assets are ready for release. The flow for this process is shown below:

Warning
release

1.6. Maven Repository
- Builds
- Documentation
- Reporting
- Dependencies
- Releases
- SCMs
- Distribution
- Local: refers to a local repository where all the project dependencies are stored and is located with the current installation in the default folder as "m2". It is a cache of the remote downloads, and also contains the temporary build artifacts which have not yet been released.
- Remote: refers to any other type of repository that can be accessed by a variety of protocols such as file:// or http://. These repositories can be at a remote location set up by a third-party for downloading of artifacts or an internal repository set up on a file or HTTP server, used to share private artifacts between the development teams for managing internal releases.
1.7. Configuring Deployment to a Remote Nexus Repository
distributionManagement element to your project's pom.xml file as demonstrated in the code example below.
<distributionManagement>
<repository>
<id>deployment</id>
<name>Internal Releases</name>
<url>http://your_nexus_host:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>deployment</id>
<name>Internal Releases</name>
<url>http://your_nexus_host:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>snapshotRepository element is used when the -SNAPSHOT qualifier is appended to the project's current version number. In other cases the repository specified in the repository element is used.
settings-security.xml file, using a master password. By default, this file is in ~/.m2 folder, unless you have changed its location by modifying the kie.maven.settings.custom system property.
<servers>
<server>
<id>deployment</id>
<username>admin</username>
<password>admin.123</password>
</server>
</servers>Important
settings.xml file is not recommended. All the information should be hashed with a master password in the settings-security.xml file.
pom.xml file.
1.8. System Configuration
Procedure 1.5. Changing System Properties
- Edit the file
$JBOSS_HOME/domain/configuration/host.xml - Locate the XML elements server that belong to the main-server-group and add the system property. For example:
<system-properties> <property name="org.uberfire.nio.git.dir" value="..." boot-time="false"/> ... </system-properties>
org.uberfire.nio.git.dir: Location of the directory .niogit. Default: working directoryorg.uberfire.nio.git.daemon.enabled: Enables/disables GIT daemon. Default: trueorg.uberfire.nio.git.daemon.host: If GIT daemon enabled, uses this property as the localhost identifier. Default: localhostorg.uberfire.nio.git.daemon.port: If GIT daemon is enabled, uses this property as the port number. Default: 9418org.uberfire.nio.git.ssh.enabled: Enables/Disables SSH daemon. Default: trueorg.uberfire.nio.git.ssh.host: If SSH daemon is enabled, uses this property as the localhost identifier. Default: localhostorg.uberfire.nio.git.ssh.port: If SSH daemon is enabled, uses this property as the port number. Default: 8001org.uberfire.nio.git.ssh.cert.dir: Location of the.securitydirectory where local certificates will be stored. Default: working directoryorg.uberfire.metadata.index.dir: Location of the.indexfolder for Lucene. Default: working directoryorg.uberfire.cluster.id: Name of the Helix cluster, for example: kie-clusterorg.uberfire.cluster.zk: Connection string to Zookeeper. This is of the formhost1:port1,host2:port2,host3:port3. For example:localhost:2188.org.uberfire.cluster.local.id: Unique id of the Helix cluster node. Note that ':' is replaced with '_'. For example: node1_12345.org.uberfire.cluster.vfs.lock: Name of the resource defined on the Helix cluster, for example: kie-vfsorg.uberfire.cluster.autostart: Delays VFS clustering until the application is fully initialized to avoid conflicts when all cluster members create local clones. Default: falseorg.uberfire.sys.repo.monitor.disabled: Disable configuration monitor (do not disable unless you know what you're doing). Default: falseorg.uberfire.secure.key: Secret password used by password encryption. Default: org.uberfire.adminorg.uberfire.secure.alg: Crypto algorithm used by password encryption. Default: PBEWithMD5AndDESorg.guvnor.m2repo.dir: Place where Maven repository folder will be stored. Default: working-directory/repositories/kieorg.kie.example.repositories: Folder from where demo repositories will be cloned. The demo repositories need to have been obtained and placed in this folder. This system property takes precedence over org.kie.demo and org.kie.example properties. Default: Not used.org.kie.demo: Enables external clone of a demo application from GitHub. This system property takes precedence over org.kie.example. Default: true.org.kie.example: Enables example structure composed by Repository, Organization Unit and Project. Default: false
Chapter 2. Business Central Configuration
DEPLOY_DIRECTORY/business-central.war/WEB-INF/web.xml and the referenced files, and if deployed on Red Hat JBoss EAP 6, also in jboss-web.xml and jboss-deployment-structure.xml.
2.1. Access control
Workbench Configuration
$JBOSS_HOME/standalone/deployments/business-central.war/WEB-INF/classes/workbench-policy.propeties.
standalone.xml file in EAP.
2.2. Branding the Business Central Application
- Login screenYou can customize the following attributes of the Business Central login screen:
- The background image
- The company logo
- The application logo
- Application headerYou can customize the following attributes of the Business Central application header:
- The Business Central header containing the title and banner logo
- Help pop-up windowsYou can customize the following attributes of the splash help pop-up windows:
- The splash help images
- The label text
2.2.1. Customizing Business Central Login Page
Procedure 2.1. Changing the Business Central Login Page Background Image
- Start the EAP server and open http://localhost:8080/business-central in a web browser.
- Copy the new background image to the
$EAP_HOME/standalone/deployments/business-central.war/imagesdirectory in your JBoss BRMS installation. - Navigate to
$EAP_HOME/standalone/deployments/business-central.war/stylesdirectory and open thelogin-screen.cssfile in a text editor. - In the
login-screen.cssfile, provide the location of your new background image in the followingbackground-imageattribute.background-image: url("../images/login-screen-background.jpg");Thebackground-imageattribute points to the defaultlogin-screen-background.jpgimage.In addition to the background image, you can modify other attributes such as image size, position, and background color in thelogin-screen.cssfile.
Procedure 2.2. Changing the Business Central Login Page Company Logo and Project Logo
- Start the EAP server and open http://localhost:8080/business-central in a web browser.
- Navigate to the
$EAP_HOME/standalone/deployments/business-central.war/imagesdirectory in your JBoss BRMS installation. - Replace the default image
login-screen-logo.pngwith a new one. This is the company logo that appears on the top right hand corner of the login page. - Replace the default image with a new one. This is the project logo that appears on the center left hand side of the login page.
2.2.2. Customizing Business Central Application Header
Procedure 2.3. Changing the Business Central Application Header (Banner)
- Start the EAP server and open http://localhost:8080/business-central in a web browser.
- Log in to the Business Central application with your user credentials.
- Copy your new application header image to the
$EAP_HOME/standalone/deployments/business-central.war/bannerdirectory in your JBoss BRMS installation. - Open
$EAP_HOME/standalone/deployments/business-central.war/banner/banner.htmlfile in a text editor. - In the
banner.htmlfile, edit the following <img> tag to provide the name of your new header image:<img src="banner/logo.png"/>
The default image islogo.png.
2.2.3. Customizing Business Central Splash Help Windows
$EAP_HOME/standalone/deployments/business-central.war/plugins directory contains the splash pages and the corresponding html files. Each splash page holds the name of the html file, which contains information about the image(s) and the text to be displayed. For example, the authoring_perspective.splash.js splash page points to the authoring_perspective.splash.html file. The authoring_perspective.splash.html contains the names and location of all the image files that appear on the Authoring Perspective splash help and also their captions. You can customize the images and the corresponding captions of the existing splash help pop-up windows.
Procedure 2.4. Changing the Business Central Splash Help Pop-Up Images and Captions
- Start the EAP server and open http://localhost:8080/business-central in a web browser.
- Log in to the Business Central application with your user credentials.
- Copy your new splash help image(s) to the
$EAP_HOME/standalone/deployments/business-central.war/imagesdirectory in your JBoss BRMS installation. - Open the corresponding html file from
$EAP_HOME/standalone/deployments/business-central.war/pluginsdirectory in a text editor. - Edit the html file to point to your new splash help image. For example, to change the first image that appears in the Authoring Perspective splash help, edit the following <img> tag in the
authoring_perspective.splash.htmlfile to add your new image:<img src="images/authoring_perspective1.png" alt="">
The default image isauthoring_perspective1.png, which appears on the first page of the Authoring Perspective splash help. - To change the image caption that appears on the splash help, edit the <h4> and <p> tag contents below the <img> tag:
<h4>Authoring</h4> <p>Modularized and customizable workbench</p>
2.3. Extending Business Central
Plugin Management.
2.3.1. Plugin Management
Plugin Management screen by clicking on → . This brings up the Plugin Explorer screen that lists all the existing plugins under their respective categories: Perspective Plugin, Screen Plugin, Editor Plugin, Splashscreen Plugin and Dynamic Menu. Open up any of these and you will see the existing plugins in each category, including the uneditable system generated ones.
- Create a new screen
- Create a new perspective (and add the new screen to it)
- Create a new menu (and add the new perspective to it)
- Apps (optional)
Adding a new Screen
button and select . You will be prompted to enter the name of this new screen. Enter "HelloWorldJS" and press the button. The Screen plugin editor will open up, divided into 4 sections: Template, CSS, JavaScript and Media.
Note
<div>My Hello World Screen</div>. This can be any HTML code, and you can use the supplied Angular and Knockout frameworks. For the purposes of this example, we are not using any of those frameworks, but you can choose to by selecting them from the drop down in the Template section.
main, on_close and on_open. For this demo, select the on_open and enter the following: function () { alert('Hello World'); }
Adding a new Perspective
HelloWorldPerspective. This will open up the Perspective plugin editor, similar to the Screen plugin editor. .
6 6 grid on the right hand side to the left hand side.
HelloWorldJS). Click the button and then click the button to save this perspective. To tag your perspective, enter Home in the tag name field and click the button. Click the button and save the changes.
Adding a new menu
Hello World.
Working with Apps (Optional)
HelloWorldPerspective, you entered the tag Home. The Apps directory by default contains a single directory called Home with which you associated your perspective. This is where you will find it when you open the Apps directory. You can click on it to run the perspective now.
2.3.2. The JavaScript (JS) API for Extensions
plugins folder of the Business Central webapp (typically: {INSTALL_DIR}/business-central.war/plugins/) or it can be loaded via regular JavaScript calls.
- Register Perspective API: allows for the dynamic creation of perspectives. The example below creates a panel using the
registerPerspectivemethod:$registerPerspective({ id: "Home", is_default: true, panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter", view: { parts: [ { place: "welcome", min_height: 100, parameters: {} } ], panels: [ { width: 250, min_width: 200, position: "west", panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter", parts: [ { place: "YouTubeVideos", parameters: {} } ] }, { position: "east", panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter", parts: [ { place: "TodoListScreen", parameters: {} } ] }, { height: 400, position: "south", panel_type: "org.uberfire.client.workbench.panels.impl.MultiTabWorkbenchPanelPresenter", parts: [ { place: "YouTubeScreen", parameters: {} } ] } ] } }); - Editor API: allows you to dynamically create editors and associate them with a file type. The example below creates a sample editor and associates it with
filenamefile type.$registerEditor({ "id": "sample editor", "type": "editor", "templateUrl": "editor.html", "resourceType": "org.uberfire.client.workbench.type.AnyResourceType", "on_concurrent_update":function(){ alert('on_concurrent_update callback') $vfs_readAllString(document.getElementById('filename').innerHTML, function(a) { document.getElementById('editor').value= a; }); }, "on_startup": function (uri) { $vfs_readAllString(uri, function(a) { alert('sample on_startup callback') }); }, "on_open":function(uri){ $vfs_readAllString(uri, function(a) { document.getElementById('editor').value=a; }); document.getElementById('filename').innerHTML = uri; } });In addition toon_startupandon_openmethods seen in the previous example, the API exposes the following callback events for managing the editor's lifecycle:You can display this editor via an html template:- on_concurrent_update;
- on_concurrent_delete;
- on_concurrent_rename;
- on_concurrent_copy;
- on_rename;
- on_delete;
- on_copy;
- on_update;
- on_open;
- on_close;
- on_focus;
- on_lost_focus;
- on_may_close;
- on_startup;
- on_shutdown;
<div id="sampleEditor"> <p>Sample JS editor (generated by editor-sample.js)</p> <textarea id="editor"></textarea> <p>Current file:</p><span id="filename"></span> <button id="save" type="button" onclick="$vfs_write(document.getElementById('filename').innerHTML, document.getElementById('editor').value, function(a) {});">Save</button> <br> <p>This button change the file content, and uberfire send a callback to the editor:</p> <button id="reset" type="button" onclick="$vfs_write(document.getElementById('filename').innerHTML, 'Something else', function(a) {});">Reset File</button> </div> - PlaceManager API: the methods of this API allow you to request that the Business Central display a particular component associated with a target:
$goToPlace("componentIdentifier"); - Register plugin API: the methods of this API allow you to create dynamic plugins (that will be transformed in Business Central screens) via the JS API.
$registerPlugin( { id: "my_angular_js", type: "angularjs", templateUrl: "angular.sample.html", title: function () { return "angular " + Math.floor(Math.random() * 10); }, on_close: function () { alert("this is a pure JS alert!"); } });The plugin references theangular.sample.htmltemplate:<div ng-controller="TodoCtrl"> <span>{{remaining()}} of {{todos.length}} remaining</span> [ <a href="" ng-click="archive()">archive</a> ] <ul class="unstyled"> <li ng-repeat="todo in todos"> <input type="checkbox" ng-model="todo.done"> <span class="done-{{todo.done}}">{{todo.text}}</span> </li> </ul> <form ng-submit="addTodo()"> <input type="text" ng-model="todoText" size="30" placeholder="add new todo here"> <input class="btn-primary" type="submit" value="add"> </form> <form ng-submit="goto()"> <input type="text" ng-model="placeText" size="30" placeholder="place to go"> <input class="btn-primary" type="submit" value="goTo"> </form> </div>A plugin can be hooked to Business Central events via a series of JavaScript callbacks:- on_concurrent_update;
- on_concurrent_delete;
- on_concurrent_rename;
- on_concurrent_copy;
- on_rename;
- on_delete;
- on_copy;
- on_update;
- on_open;
- on_close;
- on_focus;
- on_lost_focus;
- on_may_close;
- on_startup;
- on_shutdown;
- Register splash screens API: use the methods in this API to create splash screens.
$registerSplashScreen({ id: "home.splash", templateUrl: "home.splash.html", body_height: 325, title: function () { return "Cool Home Splash " + Math.floor(Math.random() * 10); }, display_next_time: true, interception_points: ["Home"] }); - Virtual File System (VFS) API: with this API, you can read and write a file saved in the file system using an asynchronous call.
$vfs_readAllString(uri, function(a) { //callback logic }); $vfs_write(uri,content, function(a) { //callback logic })
2.4. Configuring Table Columns
Adding and Removing Columns
button in the top right corner. Clicking on this button opens up the list of columns that can added or removed to the current table with a checkbox next to each column:
Resizing Columns
Moving Columns
.
.
Sorting Columns
Chapter 3. Logging
3.1. Logback Functionality
logback functionality for logging configuration.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.x</version>
</dependency>Note
slf4j-nop and slf4j-simple are ideal for a light environment.
3.2. Configuring Logging
logback.xml file in business-central.war/WEB-INF/classes/logback.xml. To set the logging level of the org.drools package to "debug" for verbose logging, you would need to add the following line to the file:
<configuration>
<logger name="org.drools" level="debug"/>
...
<configuration>- org.guvnor
- org.jbpm
- org.kie
- org.slf4j
- org.dashbuilder
- org.uberfire
- org.errai
- etc...
log4j, the log4j.xml can be located at business-central.war/WEB-INF/classes/log4j.xml and can be configured in the following way:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<category name="org.drools">
<priority value="debug" />
</category>
...
</log4j:configuration>Note
Chapter 4. Repository Hooks
4.1. Configuring Git Hooks
Note
post-commit hook is supported. Post-commit hooks are triggered after finishing the entire commit process.
post-commit hook to automatically push your changes to the remote repository.
- In Business Central, go to → .
- Below the main menu, click → .
- In the displayed Clone repository dialog box, fill in the repository information:
- Repository Name
- Organizational Unit
- Git URL: for example
https://github.com/USERNAME/REPOSITORY-NAME.gitImportant
It is important to use the HTTPS or Git protocol instead of a SCP-style SSH URL. Business Central does not support the basic SSH URL and fails with Invalid URL format.
Figure 4.1. An invalid SCP-style SSH URL.
- User Name: your Git user name
- Password: your Git password
- Go to the created repository:
~]$
cd $JBOSS_HOME/bin/.niogit/REPOSITORY-NAME.git - Change the remote URL:
~]$
git remote set-url origin git@github.com:USERNAME/REPOSITORY-NAME.gitMake sure that you can access the remote repository through command line using SSH. For example, the private SSH key for the repository should exist under the~/.ssh/directory. - Verify that the remote repository was successfully added:
~]$
git remote -vThe command should list the following:origin git@github.com:USERNAME/REPOSITORY-NAME.git (fetch) origin git@github.com:USERNAME/REPOSITORY-NAME.git (push)
- Create a file named
post-commitwith the permissions set torwxr--r--under$JBOSS_HOME/bin/.niogit/REPOSITORY-NAME.git/hookswith the following content:#!/bin/sh git push origin master
- Make sure that the configuration was successful by creating a new guided rule in Business Central: go to → and then → below. Fill in the required information in the displayed Create new Guided Rule window and click .All of the changes should be pushed automatically.
org.uberfire.nio.git.hooks. Its value determines a directory with default hook files that will be copied to the newly created Git repositories. See the example of a standalone.xml file with this setting below:
<system-properties> <property name="org.uberfire.nio.git.hooks" value="/opt/jboss-as/git-hooks"> </property> ... </system-properties>
Chapter 5. Command line configuration
kie-config-cli tool is a command line configuration tool that provides capabilities to manage the system repository from the command line and can be used in an online or offline mode.
Online mode(default and recommended) - on startup, the tool connects to a Git repository using a Git server provided bykie-wb. All changes are made locally and published to upstream only after explicitly executing the push-changes command. Use the exit command to publish local changes. To discard local changes on exit, use the discard command.Offline mode(a kind of installer style) - creates and manipulates the system repository directly on the server (there is no discard option).
- Go to the Red Hat Customer Portal and log in.
- Click → .
- In the Product Downloads page that opens, click Red Hat JBoss BRMS.
- From the Version drop-down menu, select 6.2.
- In the displayed table, navigate to the Supplementary Tools row and then click Download.
kie-config-cli-6.MINOR_VERSION-redhat-x-dist with file kie-config-cli.sh.
5.1. Starting the kie-config-cli tool in online mode
- To start the kie-config-cli tool in online mode, navigate to the
kie-config-cli-6.MINOR_VERSION-redhat-x-distdirectory where you installed the tool and then execute the following command. - In a Unix environment run:
./kie-config-cli.sh
In a Windows environment run:./kie-config-cli.bat
git://kie-wb-host:9148/system
5.2. Starting the kie-config-cli tool in offline mode
- Navigate to the
kie-config-cli-6.MINOR_VERSION-redhat-x-distdirectory where you installed the tool. - In a Unix environment, run:
./kie-config-cli.sh offline
In a Windows environment, run:./kie-config-cli.bat offline
.niogit) is located. If .niogit does not yet exist, the folder value can be left empty and a brand new setup is created.
5.3. Commands available for the kie-config-cli tool
add-deployment- adds a new deployment unitadd-repo-org-unit- adds a repository to the organizational unitadd-role-org-unit- adds role(s) to an organizational unitadd-role-project- adds role(s) to a projectadd-role-repo- adds role(s) to a repositorycreate-org-unit- creates new organizational unitcreate-repo- creates a new git repositorydiscard- does not publish local changes, cleans up temporary directories and closes the toolexit- publishes work, cleans up temporary directories and closes the toolfetch-changes- fetches changes from upstream repositoryhelp- prints available commands with descriptionslist-deployment- lists available deploymentslist-org-units- lists available organizational unitslist-repo- lists available repositoriespush-changes- pushes changes to upstream repository (in online mode only)remove-deployment- removes existing deploymentremove-org-unit- removes existing organizational unitremove-repo- removes an existing repository from config onlyremove-repo-org-unit- removes a repository from the organizational unitremove-role-org-unit- removes role(s) from an organizational unitremove-role-project- removes role(s) from a projectremove-role-repo- removes role(s) from a repository
Chapter 6. Migration
- Migrate the data first: These are your business assets.
- Next, migrate your runtime processes.
- Finally, convert old API calls to new ones one by one.
6.1. Data Migration
- Download the migration tool by logging in at the Red Hat Customer Portal and then navigating to Red Hat JBoss BRMS Software Downloads section. Click on Red Hat JBoss BRMS Migration Tool to download the zip archive.
- Unzip the downloaded zip archive in a directory of your choice and navigate to this directory in a command prompt. This directory contains four folders:
bin- contains the launch scripts.jcr-exporter-libs- contains the libs specific to theexport-from-JCRpart of the migration.vfs-importer-libs- contains the libs specific to theimport-into-Gitpart of the migration.conf- contains global migration tool configuration.
- For production databases, copy the JDBC driver for the database that is used by the JCR repository into the
jcr-exporter-libsdirectory of the migration tool. - Execute the following command:
./bin/runMigration.sh -i <source-path> -o <destination-path> -r <repository-name>
- <source-path> is a path to a source JCR repository.
- <desintation-path> is a path to a destination GIT VFS. This folder must not exist already.
- <repository-name> an arbitrary name for the new repository.
-i command, you can also use -h to print out a help message and -f which forces an overwrite of the output directory, thus eliminating the need for manual deletion of this directory.
Importing the repository in Business Central
Note
Importing the repository in JBDS
- Start JBoss Developer Studio.
- Start the Red Hat JBoss BRMS server (if not already running) by selecting the server from the server tab and click the start icon.
- Select → and navigate to the Git folder. Open the Git folder to select and click next.
- Select the repository source as and click next.
- Select the repository that is to be configured from the list of available repositories.
- Import the project as a general project in the next window and click next. Name this project and click Finish.
6.2. API and Backwards Compatibility
Migrating to Version 6.1
knowledge-api JAR file is no longer supported in version 6.1 and is replaced by APIs contained in the kie-api JAR file that were introduced in JBoss BRMS 6.0.
knowledge-api.jar), please migrate (rewrite) the API calls to the new KIE API. Please be aware that several other APIs have changed between JBoss BRMS 5.x and JBoss BRMS 6.x, namely the task service API and the REST API.
Migrating to Version 6.0
knowledge-api jar for backwards compatible code. This API is the public interface for working with JBoss BPM Suite and JBoss BRMS and is backwards compatible.
Part I. Integration
Chapter 7. Integrating Red Hat JBoss BRMS with Red Hat JBoss Fuse
features.xml files:
drools-karaf-features-<version>-features.xmlThis file provides core JBoss BPM Suite and JBoss BRMS features, which defines the OSGi features that can be deployed into JBoss Fuse. This file is a part of the JBoss BPM Suite and JBoss BRMS product. OSGi users can install features from this file in order to install JBoss BRMS engine or JBoss BPM Suite engine into Fuse and use it in their applications.karaf-features-<version>-features.xmlThis file provides additional features used for integrating JBoss BPM Suite and JBoss BRMS with Camel, primarily in Fuse. This file is part of the Integration Pack and it defines OSGi features that enable integration with Camel and SwitchYard. In addition to the karaf-features xml, the Integration Pack also contains a features.xml file for quickstarts.
7.1. Core JBoss BPM Suite and JBoss BRMS features
drools-karaf-features-<version>-features.xml file present in your product Maven repository or the jboss-brms-bpmsuite<version>-redhat<version>fuse-features.zip file. It provides the following features:
- drools-common
- drools-module
- drools-templates
- drools-decisiontable
- drools-jpa
- kie
- kie-ci
- kie-spring
- kie-aries-blueprint
- jbpm-commons
- jbpm-human-task
- jbpm
- droolsjbpm-hibernate
- h2
Table 7.1. Features and Use Case Examples
| Feature | Use Case |
|---|---|
drools-module | Use the JBoss BRMS engine for rules evaluation, without requiring persistence, processes, or decision tables. |
drools-jpa | Use the JBoss BRMS engine for rules evaluation with persistence and transactions, but without requiring processes or decision tables. The drools-jpa feature already includes drools-module, however you may also need to install the droolsjbpm-hibernate feature, or ensure there is a compatible hibernate bundle installed. |
drools-decisiontable | Use the JBoss BRMS engine with decision tables. |
jbpm | Use the JBoss BPM Suite (or JBoss BRMS engine with processes). The jbpm feature already includes drools-module and drools-jpa. You may also need to install the droolsjbpm-hibernate feature, or ensure that there is a compatible hibernate bundle installed. |
jbpm and jbpm-human-task | Use the JBoss BPM Suite (or JBoss BRMS engine with processes) with Human Task. |
Core engine jars and kie-ci. | Use JBoss BRMS or JBoss BPM Suite with KieScanner (KIE-CI) to download kJARs from a Maven repository. |
kie-spring | Use KIE-Spring integration. |
kie-spring and kie-aries-blueprint. | Use KIE-Aries-Blueprint integration. |
7.2. Additional Features for SwitchYard and Camel Integration
- fuse-bxms-switchyard-common-knowledge
- fuse-bxms-switchyard-rules
- fuse-bxms-switchyard-bpm
- kie-camel
- jbpm-workitems-camel
karaf-features-<version>-features.xml file. This file (and supporting repositories) is located in http://repository.jboss.org/nexus/content/repositories/public, which is already configured for use on JBoss Fuse 6.2 out of the box in installDir/etc/org.ops4j.pax.url.mvn.cfg.
7.3. Install/Update Core Integration Features
Note
drools-karaf-features-<version>-features.xml file. For additional integration features, refer to Section 7.4, “Install Additional Integration Features”.
drools-karaf-features-6.2.0.Final-redhat-6-features.xml), you need to remove them and all associated files before installing the most recent features.xml file.
Procedure 7.1. Removing an Existing drools-karaf-features Installation
- Start the Fuse console using:
$ ./installDir/bin/fuse
- Unistall old features/apps that used the previous
features.xmlfile. For example:JBossFuse:karaf@root> features:uninstall drools-module JBossFuse:karaf@root> features:uninstall jbpm JBossFuse:karaf@root> features:uninstall kie-ci
- Search for references of bundles using drools/kie/jbpm and remove them:
JBossFuse:karaf@root> list -t 0 -s | grep drools JBossFuse:karaf@root> list -t 0 -s | grep kie JBossFuse:karaf@root> list -t 0 -s | grep jbpm
To remove the bundles:karaf@root> osgi:uninstall <BUNDLE_ID>
- Remove the old drools-karaf-features url:
karaf@root> features:removeurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-<version>/xml/features
- Restart Fuse.
drools-karaf-features:
Procedure 7.2. Install core JBoss BPM Suite and JBoss BRMS features
- Configure required repositories
- Edit the
installDir/etc/org.ops4j.pax.url.mvn.cfgfile in your JBoss Fuse installation and add the following entry to theorg.ops4j.pax.url.mvn.repositoriesvariable, noting that entries are separated by ‘, \’:- http://maven.repository.redhat.com/product-ga/@id=bxms-product-repo
- Start JBoss Fuse:
$ ./installDir/bin/fuse
- Add a reference to the core features file by running the following console command:
JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/<version>/xml/features
For example:features:addurl mvn:org.drools/drools-karaf-features/6.3.0.Final-redhat-7/xml/features
- You can now install the features provided by this file by running, for example, the following console command:
JBossFuse:karaf@root> features:install drools-module
7.4. Install Additional Integration Features
Procedure 7.3. SwitchYard and Camel Integration
- Download the
fuse-integrationpackage that is aligned with your version of JBoss Fuse.Note
For instance, if you want to use the 6.2.0.redhat-117 version of JBoss Fuse, you need to install thefuse-6.2.0.redhat-117JBoss Fuse integration features. - Add the Remote Maven Repository that contains the fuse dependencies to your
karafinstance:- Edit the
Fuse_home/etc/org.ops4j.pax.url.mvn.cfg
- Update the Drools features URL:
JBossFuse:karaf@root> features:addurl mvn:org.switchyard.karaf/mvn:org.switchyard.karaf/switchyard/<SWITCHYARD_VERSION>/xml/core-features JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/<DROOLS_VERSION>/xml/features JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse/karaf-features/1.0.0.redhat-<version>/xml/features
- You can now install the features provided for SwitchYard and Camel integration by running, for example, the following console command:
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-rules JBossFuse:karaf@root> features:install kie-camel JBossFuse:karaf@root> features:install jbpm-workitems-camel
7.5. Configuring Dependencies
- Bundle required dependencies into your application bundle. In this approach, you declare all required artifacts as runtime dependencies in your
pom.xml. Hence, you need not import the packages that provide these artifacts that you have already added as dependencies.
- Import the required dependencies into the application bundle. This is a preferred approach for building OSGi bundles as it adheres to the principles of OSGi framework. In this approach, you declare only the API jars (such as org.kie:kie-api) as dependencies in your application bundle. You will need to install the required BRMS and BPM Suite bundles and then import them in your application.
7.6. Install JBoss Fuse Integration Quickstart Applications
org/jboss/integration/fuse/quickstarts/karaf-features/1.0.0.redhat-<version>/karaf-features-1.0.0.redhat-<version>-features.xml:
- fuse-bxms-switchyard-quickstart-bpm-service
- fuse-bxms-switchyard-quickstart-rules-camel-cbr
- fuse-bxms-switchyard-quickstart-rules-interview
- fuse-bxms-switchyard-quickstart-rules-interview-container
- fuse-bxms-switchyard-quickstart-rules-interview-dtable
- fuse-bxms-switchyard-demo-library
- fuse-bxms-switchyard-demo-helpdesk
- fuse-bxms-camel-blueprint-drools-decision-table
- fuse-bxms-camel-spring-drools-decision-table
- fuse-bxms-jbpm-workitems-camel-quickstart
- fuse-bxms-spring-jbpm-osgi-example
installDir/etc/org.ops4j.pax.url.mvn.cfg.
Procedure 7.4. Installing the Quickstart Application
- Add a reference to the features file by running the following console command:
JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse.quickstarts/karaf-features/1.0.0.redhat-<version>/xml/features
- You can now install the quickstart applications provided by this features file by running, for example, the following console command:
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-quickstart-bpm-service
Procedure 7.5. Downloading and Installing the Quickstart ZIP Files
- Download the quickstart application ZIP file.
- Unpack the contents of the quickstarts directory into your existing
installDir/quickstartsdirectory. - Unpack the contents of the system directory into your existing
installDir/systemdirectory.
7.6.1. Testing Your First Quickstart Application
Procedure 7.6. Testing the Quickstart Application
- Start JBoss Fuse:
$ ./installDir/bin/fuse
- Install and start the switchyard-bpm-service by running the following console command:
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-quickstart-bpm-service
Note
Any dependent features specified by the application’s features file will be installed automatically. - Submit a webservice request to invoke the SOAP gateway.
- Open a terminal window and navigate to the associated quickstart directory that was unpacked from the quickstart application ZIP file (in this case, switchyard-bpm-service).
- Run the following command:
$ mvn clean install
Note
You will need the following repositories configured in yoursettings.xmlfile:- http://maven.repository.redhat.com/ga/
- http://repository.jboss.org/nexus/content/repositories/public/
- Run the following command:
$ mvn exec:java -Pkaraf
- You will receive the following response:
SOAP Reply: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/><soap:Body><ns2:submitOrderResponse xmlns:ns2="urn:switchyard-quickstart:bpm-service:1.0"> <orderId>test1</orderId> <accepted>true</accepted> <status>Thanks for your order, it has been shipped!</status> </ns2:submitOrderResponse></soap:Body></soap:Envelope>
Chapter 8. Integration with Spring
8.1. Configuring Red Hat JBoss BRMS with Spring
jboss-brms-engine.zip file and is called kie-spring-VERSION-redhat-MINORVERSION.jar.
As a Self Managed Process Engine
RuntimeManager API, perfect synchronization between process engine and task service is managed internally and the end user does not have to deal with the internal code to make these two work together.
As a Shared Task Service
TaskService, you have more flexibility in configuring the task service instance as it is independent of the RuntimeManager. Once configured it is then used by the RuntimeManager when requested.
org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean class. This factory class is responsible for producing instances of RuntimeEnvironment that are consumed by RuntimeManager upon creation. Illustrated below is a configured RuntimeEnvironment with the entity manager, transaction manager, and resources for the class org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean:
<bean id="runtimeEnvironment" class="org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean">
<property name="type" value="DEFAULT"/>
<property name="entityManagerFactory" ref="jbpmEMF"/>
<property name="transactionManager" ref="jbpmTxManager"/>
<property name="assets">
<map>
<entry key-ref="process"><util:constant static-field="org.kie.api.io.ResourceType.BPMN2"/></entry>
</map>
</property>
</bean>
- DEFAULT - default (most common) configuration for RuntimeManager
- EMPTY - completely empty environment to be manually populated
- DEFAULT_IN_MEMORY - same as DEFAULT but without persistence of the runtime engine
- DEFAULT_KJAR - same as DEFAULT but knowledge asset are taken from KJAR identified by releaseid or GAV
- DEFAULT_KJAR_CL - build directly from classpath that consists kmodule.xml descriptor
- knowledgeBase
- assets
- releaseId
- groupId, artifactId, version
entity manager factory and transaction manager. Illustrated below is an example RuntimeManager for org.kie.spring.factorybeans.RuntimeManagerFactoryBean:
<bean id="runtimeManager" class="org.kie.spring.factorybeans.RuntimeManagerFactoryBean" destroy-method="close"> <property name="identifier" value="spring-rm"/> <property name="runtimeEnvironment" ref="runtimeEnvironment"/> </bean>
Chapter 9. Localization and customization
9.1. Available Languages
- United States English (
en_US) - Spanish (
es_ES) - Japanese (
ja_JP) - Chinese (
zh_CN) - Portuguese (
pt_BR) - French (
fr_CA) - German (
de_DE)
Note
9.2. Changing language settings
Changing the User Interface Language in Business Central
http://localhost:8080/business-central/?locale=pt_BR
9.3. Running the JVM with UTF-8 Encoding
9.4. Configuring Table Columns
Adding and Removing Columns
button in the top right corner. Clicking on this button opens up the list of columns that can added or removed to the current table with a checkbox next to each column:
Resizing Columns
Moving Columns
.
.
Sorting Columns
Chapter 10. Process Execution Server Configuration
10.1. Assignment rules
10.1.1. Defining assignment rules
- Create a file that will contain the rule definition on the Business Central classpath (the recommended location is
$DEPLOY_DIR/standalone/deployments/business-central.war/WEB-INF/classes/):default-add-task.drlwith the rules to be checked when the Human Task is createddefault-complete-task.drlwith the rules to be checked when the Human Task is completed
- Define the rules in the file.
Example 10.1. The default-add-task.drl content
package defaultPackage
import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;
global TaskServiceRequest request;
rule "Don't allow Mary to complete task when rejected"
when
$task : Task()
$actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
$params : HashMap(this["approved"] == false)
then
request.setAllowed(false);
request.setExceptionClass(PermissionDeniedException.class);
request.addReason("Mary is not allowed to complete task with approved false");
endMary, the task will be automatically assigned to the user mary.
Example 10.2. The default-complete-task.drl content
package defaultPackage
import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;
global TaskServiceRequest request;
rule "Don't allow Mary to complete task when rejected"
when
$task : Task()
$actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
$params : HashMap(this["approved"] == false)
then
request.setAllowed(false);
request.setExceptionClass(PermissionDeniedException.class);
request.addReason("Mary is not allowed to complete task without approval.");
endMary, the task will be automatically assigned to the user mary.
10.2. Mail session
10.2.1. Setting up mail session
- Open the respective profile configuration file (
standalone.xmlorhost.xml) for editing. - Add the mail session to the
urn:jboss:domain:mail:1.1subsystem.Example 10.3. New mail session on localhost
<subsystem xmlns="urn:jboss:domain:mail:1.1"> <!-- omitted code --> <mail-session jndi-name="java:/mail/brmsMailSession" debug="true" from="brms@company.com"> <smtp-server outbound-socket-binding-ref="brmsMail"/> </mail-session> </subsystem> - Define the session outbound socket in the profile configuration file.
Example 10.4. Outbound socket definition
<outbound-socket-binding name="brmsMail"> <remote-destination host="localhost" port="12345"/> </outbound-socket-binding>
Chapter 11. Monitoring
11.1. JBoss Operations Network
com.sun.management.jmxremote.* parameters must be passed to the JBoss application via the pom.xml configuration file.
11.2. Downloading Red Hat JBoss
- Go to the Red Hat Customer Portal and log in.
- Click → .
- In the Product Downloads page that opens, click Red Hat JBoss BRMS.
- From the Version drop-down menu, select version .
- Select Red Hat JBoss BRMS 6.2 Deployable for EAP 6.4 and then click Download.
11.3. Installing the JBoss BRMS Plug-in into JBoss ON
Procedure 11.1. Copying the JBoss BRMS plug-in JAR files
- Extract the JBoss BRMS plug-in pack archive to a temporary location. This creates a subdirectory with the name jon-plugin-pack-brms-bpms-3.3.0.GA. For example:
[root@server rhq-agent]# unzip jon-plugin-pack-brms-bpms-3.3.0.GA.zip -d /tmp
- Copy the extracted JBoss BRMS plug-in JAR files from the jon-plugin-pack-brms-bpms-3.2.0.GA/ directory to the JBoss ON server plug-in directory. For example:
[root@server rhq-agent]# cp /tmp/jon-plugin-pack-brms-bpms-3.3.0.GA/*.jar /opt/jon/jon-server-3.3.0.GA1/plugins
- Start the JBoss Operations Network server to update the JBoss BRMS plug-in.
Procedure 11.2. Uploading the JBoss BRMS plug-in through GUI
- Start the JBoss Operations Network Server and Log in to access the GUI.
- In the top navigation of the GUI, open the Administration menu.
- In the Configuration area on the left, select the Server Plugins link.
- At the bottom of the list of loaded server plug-ins, click the Upload a plugin button and choose the BRMS plugin.
- The JBoss BRMS plug-in for JBoss Operations Network is now uploaded.
11.4. Monitoring Kie Bases and Kie Sessions
-kie.mbeans = enabled
KieBaseConfiguration kbconf = KieServices.Factory.get().newKieBaseConfiguration();
kbconf.setOption(MBeansOption.ENABLED);Note
Kie Services have been implemented for JBoss BRMS 6; for JBoss BRMS 5, Drools Services was the naming convention used and it had different measurements on sessions. For example, → renaming occured in the updated version.
11.5. The JBoss Rules Kie Base Monitoring Service
- Start all internal MBeans - starts the internal MBeanServer that will register all the knowledge sessions created from the knowlege base. The resources can be knowledge bases and stateful knowledge sessions. This displays the knowledge base configuration and entry points related to that information.
- Stop all internal MBeans - stops previously started internal MBeans.
11.6. The JBoss Rules Kie Session Monitoring Service
- Reset all metrics counters - resets all the metric statistics with regard to rule/process/process instance specific information.
- Return statistics for a specific rules - provides a description of the total number of fired/created/canceled activations generated by a rule.
- Get statistics for a specific process - provides a description of the total number of fired/created/canceled activations generated by a process.
- Get statistics for a specific process instance - provides a description of the total number of fired/created/canceled activations generated by each process instance.
- The total number of facts in working memory.
- The total number of matches created since the last reset.
- The total number of matches fired since the last reset.
- The total number of matches canceled since the last reset.
- The total time spent firing rules since the last reset.
- The total number of process instances started since the last reset.
- The total number of process instances completed since the last reset.
- The timestamp of the last reset operation.
Appendix A. Revision History
| Revision History | |||
|---|---|---|---|
| Revision 6.2.0-5 | Thu Apr 28 2016 | ||
| |||
| Revision 6.2.0-4 | Thu Apr 28 2016 | ||
| |||
| Revision 6.2.0-3 | Tue Mar 29 2016 | ||
| |||
| Revision 6.2.0-2 | Mon Nov 30 2015 | ||
| |||
| Revision 6.2.0-1 | Mon Nov 30 2015 | ||
| |||
