- 1.. Repositories (multi module project)
- 1 System Repository
- Each Repository is 1...n projects (modules)
- VFS read/writes to GIT
1 guvnor repository is one 1 repository
- Registered viewers/editors for file types
Guvnor is independent of any project.
- Not tied to Drools/Jbpm. Drools/jBPM provide and register extensions for viewers/editors
- Emebdded maven
build, install modules and multi-module projects
Build and Deploy
- Create GIT tag
- Set module/multi-module version
- mvn install/release
- M2 REPO
Guvnor will have local m2_repo, which install uses.
- Local m2_repo exposed via http, for out of the box simple m2_repo.
- Optionally sync local m2_repo with external system
central m2_repos or other governance systems for handling binaries.
- May use “mvn release” too, in which case the jars are uploaded to an external location.
Operations in Guvnor are command requests (some sample commands)
- Create/Destroy Repository
- Create/Destory Projects
- Add/Remove User to Guvnor
- Add/Remove/Update user permissions for repository
- Change project version (pom info)
- Change project dependencies (pom info)
- Create GIT tag
- Maven install/release
- When guvnor is started, it also instantiates the system project
System is a collection of rules and processes connected to a local bus and end points
- Commands are not RPC executed, instead inserted into the bus
Rules pick up the commands and start processes
- Processes define the work flow for handling commands
Typically review/approval related
- Tasks lists, or any workflow feature ccan be used.
- Guvnor has system provided rules and processes for very basic governance
Typcially just one stage of request/approve, handled via a task list.
- User may change or replace rules and processes
Customed processes for their organization
- rules/processes delegate and co-ordinate with external governance system
Project Management (Longer Term)
- Projects have life cycles, and nested life cycles, as part of development process
- Development process should be modelled in rules and processes.
Workflows used to drive the project life cycle and provide reporting
implementation, testing, release
- Should work with external issue trackers to help provide matrix report break down on project progress.