Dec 16th, 2011, 08:18 AM
User-specific, parameterized scripts for common Roo tasks
We created a Roo addon that we will soon start offering to projects within our company to streamline their usage of Roo within large teams. We also think that this might be a valuable addition to the community edition, that's why we created a JIRA:
I pasted the issue's description below, you'll find more details about our proposed implementation and more detailed examples under that JIRA link. You could think of it as defining parameterized, reusable little scripts for how you typically use Roo.
Any feedback, suggestions, comments from Roo users out there?
Would a feature like this be helpful for you?
Thanks for any comments!
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
Example 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, jpa setup > 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.
Dec 17th, 2011, 05:11 PM
Just to put Birgitta's request in context, she is a consultant from Accenture, with whom SpringSource has signed a conribution agreement to allow them to provide code and/or ideas for improving Roo. So please be forthcoming with whatever suggestions you might have for the type of customisations to which she is referring.