Usage of Spring
openlegacy-impl component contains the run-time implementation. It uses Spring as the application container to define all the legacy modernization components, and provides defaults beans: e.g: screensRegistry, screensRecognizer, sessionNavigator, and much more.

Each Java/Web application has a single Spring application context, and a single legacy connection provider.

Usage of AspectJ
OpenLegacy is using AspectJ quite frequently. The main reason is that AspectJ allows adding additional code to existing classes, without burdening you with all of the extra work.

The most straight-forward example is getters and setters. As OpenLegacy is mapping screens to classes, and Java fields to host fields, adding extra getter and setter to each field will result in a much harder class to maintain, as it would be much bigger. In addition, each field rename/delete/add requires you to deal with the getter and setter as well. OpenLegacy saves you this effort.

Our Eclipse plug-in adds a project builder to each OpenLegacy project, which recognizes changes in @ScreenEntity classes, and auto-generates the matching AspectJ file ([Class]_Aspect.aj). The file is hidden when using OpenLegacy Eclipse perspective.

This applies to many extras that OpenLegacy provides:

  • Host fields, snapshot (when adding @ScreenEntity(supportTerminalData=true) to the class.
  • Extra interface and properties (focusField)
  • Extra methods for special fields (@ScreenFieldValues) – getValues
  • and more in the future!

AspectJ is also used within OpenLegacy MVC web controller to generate default MVC URL mapping code.

If you wish to override the AspectJ code, just use the Eclipse refactor -> push-in feature, which knows to move code from AspectJ class into your working Java class.

Usage of Eclipse
OpenLegacy Eclipse projects are standard Eclipse Java/Web project. OpenLegacy uses M2Eclipse plug-in (Maven) to enable dependency management and out-of-the-box build abilities for your new Java/Web application.

Usage of Drools
Drools is a powerful rule engine which is able to perform complex analysis using a collection of rules. OpenLegacy uses Drools as a base for its analysis engine.

For each piece of analysis logic, OpenLegacy provides a default rule with parameters configured in Spring context. The rules execution results in a ScreenEntityDefinition instance for each unique analyzed snapshot, and a generator based on freemarker templates language.

Usage of Spring MVC
OpenLegacy uses Spring MVC as the default web framework, over OpenLegacy API. Spring MVC is one the leading java based frameworks. OpenLegacy also uses Spring Mobile with Spring MVC to support both mobile and browser devices in parallel.

Usage of DOJO
OpenLegacy uses DOJO as the default JavaScript framework, over within the Spring MVC based web framework. DOJO is one the leading JavaScript frameworks, and used for Ajax capabilities and widgets.