Roo is becoming more and more powerful, which is great, but also means more and more options to users how to use Roo.
The proposed addon should enable
- teams working on large projects to ensure streamlined Roo usage according to their project's standards and guidelines
- single users to define the approach they usually take in one file to reuse it over multiple projects
Examples use cases:
- A team does not want to use the Active Record pattern for entities, but always wants developers to specifiy "--activeRecord false", and create a JPA repository based on every new entity.
- A user always uses a certain project structure to create web projects: a Maven project with 2 modules called "domain" and "web". He wants to be able to reuse this structure with the project command, and make sure that the shell automatically focuses on the correct module for certain commands (e.g. entity > domain, web mvc > web).
Basic implementation idea:
The Roo command would be intercepted and transformed to a new set of commands according to user specifications (e.g. configuration file), if any exist for that particular command. The shell would then execute this transformed set of commands.
Initial set of proposed features:
- Define reusable project structures to use with the "project" command
- Define default target modules for commands.
- Define default values for command arguments.
- Define chains of commands, either triggered by an existing command or composed by an alias
- Define naming conventions.