Apache Camel + Spring Boot + Docker project generator
- Brings SpringBoot auto-configuration to Apache Camel
- Auto-detection and spring context registration of producers templates, consumer templates and type converter, thanks to Camel Spring Boot component.
- Generates an executable jar that can be easily started as Unix/Linux services using either init.d or systemd, thanks to Spring Boot Maven Plugin.
- Easy creation of docker image for the application, using spotify provided Docker Maven Plugin
Installation
To generate a new project, we assume you have pre-installed
brew install nodejs
npm install -g yeoman
npm install -g generator-camel
To build the generated project, we assume you have pre-installed
brew install maven
Docker - Installation
Usage
1. Create new project:
mkdir myprojectcd myprojectyo camel
2. Project structure
├── README.md Project Readme file├── pom.xml Maven Project Object Model file└── src ├── main │ ├── java │ │ └── com │ │ └── yourpackage │ │ ├── beans │ │ │ └── MyBean.java Camel Bean Example │ │ └── routes │ │ ├── AppBootstrapRouter.java Bootstrap the app │ │ └── MyRouter.java Camel Route Example │ └── resources │ └── application.yml Properties file └── test ├── java └── resources
3. Build the project
Generate the JAR package.
mvn package
Generate with the Docker image
mvn package docker:build
4. Running the project
Using maven
mvn spring-boot:run
As a docker container
docker run -t appName
5. Release (optional)
1 - Initialize local git repository and do the first commit, at project root directory
git initgit add .git commit -am'Initial commit'
2 - Start a local maven and git servers using docker-compose.
cd src/main/docker/cidocker-compose up -d
3 - Create the remote source code repository
docker-compose exec --user gitblit gitblit git init /opt/gitblit-data/git/appName.git --bare
4 - Doing a simple release (will ask for release versions information)
mvn release:preparemvn release:perform
Maven Release Plugin use tag in settings.xml as credentials to authenticate on each server, SCM repository and maven repository server e.g.
gitblit admin admin nexus admin admin123
With maven 3.2.1+, the password can be encrypted as. Details here.
mvn --encrypt-master-passwordmvn --encrypt-password
Building this generator
Install dependencies
npm install
Build
gulp
Test
gulp test
License
Apache-2.0 © Rodrigo Valerio