generator-camel
v1.2.1
Published
Apache Camel + Spring Boot + Docker + Release plugin
Downloads
13
Maintainers
Readme
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 myproject
cd myproject
yo 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 (application.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 init
git add .
git commit -am'Initial commit'
2 - Start a local maven and git servers using docker-compose.
cd src/main/docker/ci
docker-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:prepare
mvn 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.
<servers>
<server>
<id>gitblit</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
With maven 3.2.1+, the password can be encrypted as. Details here.
mvn --encrypt-master-password
mvn --encrypt-password
Building this generator
Install dependencies
npm install
Build
gulp
Test
gulp test
License
Apache-2.0 © Rodrigo Valerio