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.
- New Main Configuration Project "openrules.config"
- Configuration files "openrules.properties" and "openrules.java.build.xml"
- Default Environment Table
- New OpenRulesEngine
- New Tomcat Server and Deployer
- Web Application Configuration
- Single Location for All Application Properties
- Improved API for OpenRules Forms
- Improved JSR-94 Reference Implementation
- New Sample Projects
- Fixed bugs and Delivery Changes
- 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.