Configuration-based Code Generation
Most of the OIPA application business logic is configurable and contained in the business rules and transactions stored in the database in XML format. Some of these XML transactions and rules are executed during the batch processing, others from the browser-based user interface in real time. In either case, the performance is extremely important.
In order to provide the best possible performance, the XML rules and transactions are transformed by the Shared Rules Engine into generated Java classes that are then compiled and executed like any other Java classes in the application. There is no difference in the performance between executing business logic hard coded in the application by developers and when configured in XML by business analysts.
The process of code generation and compilation is expensive and is only done once, with the result being cached and used for all consecutive requests. The cache can distinguish between development and production application modes and detect when the business rule XML changes and requires re-generation of a corresponding Java class.