ToolsTutorial04 - nemo-ufes/FrameWeb GitHub Wiki

Welcome to the FrameWeb Tools Tutorial. This is part 04 of the tutorial, so if you got here directly you might want to start from the beginning of the tutorial.

FrameWeb Tools Tutorial, Part 04: adding support for a new architecture

In theory, FrameWeb can support architectures that are composed of sets of frameworks that fit into the following categories (at the time of this writing): front controller (e.g., JSF), dependency injection (e.g., CDI), object/relational mapping (e.g., JPA) and authentication & authorization (e.g., JAAS). In practice, FrameWeb tools don't currently support authentication & authorization frameworks and offer architecture definition files for only a small set of architectures.

An architecture definition is a set of files that define the architecture of the project being modeled. In part 2 of this tutorial, we imported the architecture definition files for our example project, whose architecture includes Jakarta EE standard frameworks (JSF, CDI, JPA, EJB) and JButler. Architecture definitions can be divided in two parts:

  • A language definition file that defines the primitive types and classes from the API of your programming language to be used as types of attributes in different models. You can find examples of language definition files in FrameWeb's source code repository, under the languages folder;
  • Framework definition files, including a file for each FrameWeb model (Entity, Persistence, Navigation and Application models), specifying, for instance, the tags from your visual component library of choice, so they can be used in pages and forms in the Navigation Model, and pointing to the templates for code generation. You can find examples of framework definition files in FrameWeb's source code repository, under the frameworks folder.

If the architecture you are using is not currently supported by FrameWeb Tools, you can create new language and framework definition files and code generation templates for your architecture of choice. In the following sections, I will describe my experience on adapting the Spring Boot files produced by Lucas to the JButler Java EE architecture used in this tutorial. If you need to do a similar process, hopefully my experience will help you do it.

Adjusting the language definition file

(To be continued)

Adjusting the configuration of each FrameWeb model

(To be continued)

Adapting the templates

(To be continued)