Open Your Business Rules!                     
Rules-based Operational Decision Services

Release Notes 2.2.0 (March 2005)

OpenRules Release 2.2.0 essentially simplifies OpenRules projects configuration and adds some new features requested by customers:

  • One default repository "openrules.config" for all necessary jar-files and build-files

  • One default language configuration "openrules.java" that supports both simple rule projects and web applications

  • One property file "com.openrules.properties" under One package "com.openrules" that defines all build and run-time properties

Release 2.2.0 also includes:

  • A new OpenRulesEngine that is used by simple Java applications along with complex web applications configured to work with different application servers like Tomcat or WebLogic and web development frameworks like Spring

  • Improved and better documented OpenRules API

  • New practical examples of dynamic rules-based web applications.

New changes will require some modifications (mainly renaming) in the projects created using previous versions of OpenRules. The document "MovingTo_2.2.0.txt" describes how to move projects of different types to 2.2.0.

Below is a list of major changes introduced by OpenRules Release 2.2.0.

  1. New Main Configuration Project "openrules.config"
  2. Configuration files "openrules.properties" and "openrules.java.build.xml"
  3. Default Environment Table
  4. New OpenRulesEngine
  5. New Tomcat Server and Deployer
  6. Web Application Configuration
  7. Single Location for All Application Properties
  8. Improved API for OpenRules Forms
  9. Improved JSR-94 Reference Implementation
  10. New Sample Projects
  11. Fixed bugs and Delivery Changes
  12. Changes and Additions in User's Documentation

1. New Main Configuration Project "openrules.config"

The project "openrules.config" becomes the main configuration project replacing project "lang.config" from previous OpenRules versions. It includes all default jars and build files needed to build and run OpenRules-based applications.

The folder "openrules.config" contains all OpenRules jars in one place that is very convenient when you install OpenRules in your custom environment.

A stand-alone (non-Eclipse) version of OpenRules comes with all jars already placed into openrules.config directory.

An Eclipse-based version of OpenRules 2.2.0 still includes all necessary plugins to validate, compile, and run OpenRules tables under Eclipse. After the plugin installation, you have to add "lib.ant" project to your workspace and then add the main configuration project "openrules.config". To copy all jars from just installed OpenRules plugins to the "openrules.config" project, you have to run the target "build" from the build.xml file or just double-click to build.bat.

2. Configuration files "openrules.properties" and "openrules.java.build.xml"

While the old "lang.config" included many build and property files used during compile and run time, the new OpenRules release mainly relies on only two files from the openrules.config folder:
1) openrules.properties
2) openrules.java.build.xml.

File "openrules.properties" replaces the old file "openl.properties" and has a much simpler structure. Now it describes only two properties:
- com.openrules.lang.xls.builderclass
- org.openl.builder.classpath

Because the release 2.2.0 uses the same language configuration "openrules.java" for both basic and web projects, the default "com.openrules.lang.xls.builderclass" is equal to

       "com.openrules.forms.xls.XlsFormsOpenLBuilder".

The default property "org.openl.builder.classpath" points to the proper jars from openrules.config.

Ant file "openrules.java.build.xml" is used in run time and to create a custom version of the standard language configuration "openrules.java". A user can add application specific "java imports" to this file. This file executes the standard ant file "org.openl.j.build.com" that is located in the same folder
openrules.config folder.

Note that you still can use other language configurations such as "openrules.xml". The folder openrules.config includes the proper build files.

All samples of pure rules projects in the standard OpenRules installation rely on the build files and jars located in the openrules.config. However, sample web applications rely on their own versions of openrules.properties and openrules.java.build.xml files located in their src directories. A user can always customize content and location of these configuration files (see details at http://openrules.com/docs/man_config.html).

3. Default Environment Table

Because OpenRules 2.2.0 uses the language configuration "openrules.java" by default, there is no need to define an Environment table with only one property "language" equal to "openrules.java". However, if you want to use another language like "openrules.xml" and/or define included Excel files, you still have to do it using an Environment table.

4. New OpenRulesEngine

Additionally to a simple XlsRuleEngine, the release 2.2.0 comes with a new rule engine known as "OpenRulesEngine". While it supports the basic API provided by XlsRuleEngine, OpenRulesEngine contains the following additional features:

  • Controlled validation of changes in rules tables and automatic rules reloading upon new engine runs
  • Use of an application class loader to locate Excel and ant files - it is especially important for a flexible configuration of web applications
  • An ability to use environment variables like "openrulesBaseDir" and "openrulesConfigDir" to define custom locations of Excel and configuration files.

5. New Tomcat Server and Deployer

The release 2.2.0 does not use projects "deployed.tomcat", "lib.tomcat", and "lib.tomcat.deployer" anymore. Instead, it includes only two projects:
1) jakarta-tomcat: a slightly tuned version of the standard Tomcat v5.5.9
2) jakarta-tomcat-deployer: the standard Tomcat Deployer v5.5.9.

These changes are made in response to customers' complains that while the old Tomcat configuration was simple to use, it was difficult to understand how it can be transferred to a stand-alone server environment.

A new jakarta-tomcat folder is an exact copy of the standard Tomcat installation without complex dependencies of OpenRules plugins and lang.config directories. The only custom change is related to a start procedure (see STARTUP.bat and the target start.tomcat in build.xml) that simply adds openrules.config directory to the Tomcat's classpath.

All sample OpenRules web applications will be deployed into this jakarta-tomcat. All build procedures for the standard web applications use Ant files "build.xml" and "build.properties" that are based on the standard jakarta-tomcat-deployer builds. There are new examples that demonstrate how to add rules to a JSP-based applications using the standard jakarta-tomcat or an existing customer's server.

6. Web Application Configuration

By default we recommend to include files "openrules.properties" and "openrules.java.build.xml" in the src directory of your web application. For instance, all standard OpenRules projects such as HelloForms include these files. The file "openrules.properties" additionally includes the property "openrules.config" that specifies a relative path to the standard openrules.config directory. For example, our deployed HelloForms application will consider the directory
        "jakarta-tomcat/webapps/HelloForms/WEB-INF/classes"
as its base directory. Thus, file "openrules.properties" placed to this directory during build.and.deploy, will describe the location of openrules.config as:
        openrules.config=${basedir}/../openrules.config
Naturally, you may use any other location described here to prompt your application where to find OpenRules' configuration and jar files.

Another important point is a definition of a new JspFormsSession inside your web/index.jsp file. Now you have to use a parameter getClass() like in the following example:
        ms = new JspFormsSession(getClass());

See the complete example at HelloForms/web/index.jsp.

Other small changes are described in the document "MovingTo_2.2.0.txt".

7. Single Location for All Application Properties

Previous releases of OpenRules used multiple locations of property files that allow a user to customize its OpenRules configurations. These files included:
- com/openrules/forms/com.openrules.froms.properties
- openrules/java/openrules.java.ant.properties
- openrules/xml/openrules.xml.ant.properties
- com/openrules/rules/com.openrules.rules.include.properties.

The release 2.2.0 combined all these files into one file common for all language configurations:

             com/openrules/com.openrules.properties

Thus, in most cases you will create a new package "com.openrules" (or folder com/openrules) inside its src directory. Then you can place a flat file "com.openrules.properties" inside this package (folder). The names of properties from all old property files remain the same.

8. Improved API for OpenRules Forms

OpenRules 2.2.0 provides a better support for Web GUI development with OpenRules Forms. It includes an improved JspFormsSession and a new implementation of the IApplicationModel based on a new OpenRulesEngine. See details at http://openrules.com/docs/man_api.html.

9. Improved JSR-94 Reference Implementation

OpenRules 2.2.0 improves its reference implementation of the JSR-94 standard. We added to the project "com.openrules.jsr94" an ability to define a rule engine outside of the interface. In particular, you can create an instance of OpenRulesEngine with a reference to your application' Class before you create a RuleExecutionSet. You can pass this instance to the RuleExecutionSet
constructor using a map of properties. See an example of how it was done in the file GreetingEngine.java of a new sample project HelloJspJsr94.

10. Sample Projects

All sample projects were updated to reflect the introduced changes. We also added several new sample projects:

- HelloTwoEngineRuns: a basic rules project that demonstrates how one engine can execute different rulesets from the same Excel file.

- HelloJsp: demonstrates how to create a simple web application with business logic in OpenRules and presentation logic in JSP. The application is deployed on jakarta-tomcat server that comes with OpenRules. It also explains how to deploy this application on an external tomcat server.

- HelloJspJsr94: similar to HelloJsp but uses OpenRules JSR-94 Interface to create and run OpenRulesEngine for a web application.

- LoanDynamics: a presentation-oriented web application that supports a dynamic loan approval process. Demonstrates an ability to dynamically add/delete/modify different securities related to an initial loan application. See details at http://openrules.com/LoanDynamics.htm

- StudentLoan: a dynamic web application that demonstrates an interactive product selection with rules and forms defined in OpenRules. Demonstrates how to create OpenRules tables with dynamic content.

As usual, all sample projects come accompanied by readme files.

11. Fixed bugs and Delivery Changes

The release 2.2.0 fixes several bugs found by customers and testers, in particular it fixes errors in some logical operators for org.openl.j. All changes and additions made in the included openl software are documented in its source code. All new jar files included in the OpenRules delivery now have a unified version number "2.2.0".

12. Changes in User's Documentation

The following sections of the user documentation have been modified to reflect changes introduced in the Release 2.2.0:
- Installation Guide
- Getting Started
- Project Configuration and Deployment.
A new section "OpenRules API" has been added.


OpenRules development team wants to thank all customers and colleagues who provided their valuable and constructive feedback.

 

Top