= Vert.x Greet service

A simple Vert.x greeting service with the following features:

* Configurable greeting message.
* Request counter.
* Basic rate limiting.


In this example Vert.x is used embedded. I.e. we use the Vert.x APIs directly in our own classes rather than deploying
the code in verticles.

== How to run

You can run or debug the example in your IDE by just right clicking the main class and run as.. or debug as...

The pom.xml uses the Maven shade plugin to assemble the application and all it's dependencies into a single "fat" jar.

To run with maven

    mvn compile exec:java

To build a "fat jar"

    mvn package

To run the fat jar:

    java -jar target/maven-simplest-3.9.0-fat.jar

(You can take that jar and run it anywhere there is a Java 8+ JDK. It contains all the dependencies it needs so you
don't need to install Vert.x on the target machine).

You can also run the fat jar with maven:

    mvn package exec:exec@run-app

Now point your browser at http://localhost:8080


== Configuration

The service uses two optional environment variables to control the greeting message and a very basic rate limiting feature:

* GRETTING: defines the message returned when requesting the route `/`. If not specified, a default message is used. 
* MAX_REQUESTS_PER_SECOND: Indicates the number of requests per second that the service is able to handle. When a user surpasses this limit, the service returns 503 for each rate-limited request. Ignore this variable to deactivate the rate limit.


== Container Image 

To publish the application as a container image in quay.io, first build the jar:

    mvn package

Next, build the image:

    docker build -t quay.io/redhattraining/ossm-vertx-greet .

Finally, push the image to quay:

    docker push quay.io/redhattraining/ossm-vertx-greet
