Initial PoC of Init-o-matic (ih-nit-OH-mat-ik).
Where the improbable becomes probable. Sometimes, maybe.
To get started, clone this repo and in the project root folder execute the gradle wrapper with
default parameters: ./gradlew
. This will perform a default lifecyle clean build
for you.
Once built, there are two startup scripts that you can use:
./runDev.sh
- run in Development mode./runDep.sh
- run in Deployment mode
Additionally, you should be able to import the project easily into your favorite IDE (this claim has only been tested with IntelliJ). The default run configuration should work out of the box and default to Development mode.
It is important to understand the different runtime modes:
-Dpf4j.mode=development
Development mode is intended for most local development use cases. Specifically, the plugin framework pf4j looks for plugins present in the base ./plugins path. This mode expects that each subfolder contains an un-packaged plugin (essentially the gradle subproject). Additionally, a single classloader is used to facilitate debugging. This mode makes it much easier to change code in a plugin and have it available without requiring a full rebuild.
-Dpf4j.mode=deployment
Deployment mode is used when the application is deployed to a target environment. In this mode pf4j looks for a specific folder where available plugins are bundled as .zip packages (the default folder is in the ./plugins/build/plugins). Unlike Development mode, each plugin gets its own classpath which should avoid library conflicts.
Warning: Development mode is activated by default which is not the default behavior of pf4j.
TODO
TODO?
- Metadata
- identity
- blueprint
- infrastructure
- Git
- init
- commit
- push
- clone
- Github
- Gitlab
- Spring Initializr
- Template processor
- Infrastructure
- Cloud Foundry
- Kubernetes
- Open Service Broker (Generic)
- CI/CD
- Concourse CI
- TeamCity
- Issues
- Wiki
- Kanban/Issue