openxava / documentation / Architectural design

This is still an incubation paper. By now we have only some comments about how inner OpenXava works.

Initial flow

module.jsp > core.jsp > *.jsp
The info about the modes available, the current mode, the actions available, etc are obtained from ModuleManager.
ModuleManager gets its info from the metamodel that are the classes from org.openxava.application.meta and org.openxava.controller.meta. The info of this model is readed from application.xml and controllers.xml

Action flow

openxava.js >--DWR--> org.openxava.web.dwr.Module --> execute.jsp --> ModuleManager
After ModuleManager executes the action, dwr.Module ask to the current View by the part of the view that has been changed. Then execute only the correspoinding JSPs for these parts, and return the HTML chunks to the browser view DWR. In the browser a function of openxava.js change the corresponding parts of the view.

View rendering

detail.jsp draws the detail view. It uses many other JSP files in web/xava folder. The data to draw the view is obtained from View, who get its data from metadata of the model clases (org.openxava.model.meta). This metadata is readed from the JPA entites in AnnotatedClassParser.