generator-camel

Apache Camel + Spring Boot + Docker + Release plugin


Keywords
camel, java, apache, spring, yeoman-generator
License
Apache-2.0
Install
npm install generator-camel@1.2.1

Documentation

NPM version Travis Status Dependency Status Coverage Status

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

Node.js

brew install nodejs

Yeoman

npm install -g yeoman

Camel Generator

npm install -g generator-camel

To build the generated project, we assume you have pre-installed

Maven

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

As a Linux service

As a Windows Service

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