The application consists of several Microservices and a Web-Application managing a conference :
-
microservice-schedule
: Schedule of the conference -
microservice-session
: Sessions of the conference -
microservice-speaker
: Speakers of the conference -
microservice-vote
: Votes for each session -
web-application
: Frontend Angular2 | Bootstrap4
mvn clean install -DskipTests
-
Build the projects using Maven (
mvn clean install
) or (mvn -fn clean install
) to skip over failed tests. -
To get the technical documentation, just
mvn clean generate-resources
under thedocs
directory. You will get a PDF and HTML version of the documentation underdocs/target/generated-docs
Each service can run on any container (this is the Microprofile guarantee), but the service projects have been written by vendors to use their container.
The following sections describe vendor specifics:
The Schedule service is provided using a special microprofile release of Payara Micro which can be downloaded from Maven Central
Build and run the service When building the service Payara Microprofile packages both the war file and the microprofile runtime into a single UberJar for convenience.
cd microservice-schedule
mvn clean package
java -jar target/microservice-schedule.jar [Options]
Port Bindings By default the microservice will bind to port 8080, if this is not available it will bind to the next available port e.g. 8081. To specify the port use --port as a command line option
To see a full set options run the jar with the --help command line option or see the Payara Micro Documentation for a full list of options.
Provided using WildFly Swarm
Build and run the service
cd microservice-session
mvn clean package
java -jar target/microservice-session-swarm.jar [-D<OPTION>]
Address & Port Bindings
Flag | Description | Default |
---|---|---|
swarm.bind.address=<address> |
Interface to bind servers |
0.0.0.0 |
swarm.http.port=<port> |
Sets the port for the HTTP server |
8080 |
swarm.port.offset=<offset> |
Sets a global port adjustment |
0 |
For a full set of configuration options please see the Wildfly Swarm Userguide
Provided using Apache TomEE 7.x
Build and run the service
cd microservice-speaker
cd microservice-speaker-web
mvn clean package
mvn tomee:exec [-D<OPTION>]
java -jar target/microservice-speaker-web-exec.jar
Address & Port Bindings
Flag | Description | Default |
---|---|---|
tomee-plugin.http=<port> |
Sets the port for the HTTP server |
8080 |
tomee-plugin.ajp=<port> |
Sets the port for the AJP protocol |
8009 |
For a full set of configuration options please see TomEE Maven Plugin
This starts the UI app and all services running in an embedded container. The landing page is http://localhost:8080
mvn clean package tomee:run -pl :web-application -DskipTests
This starts a gulp task that monitors and updates changes to the static resources.
$ cd web-application $ mvn frontend:gulp
Open a browser at http://localhost:8080/
The web-application project uses the com.github.eirslett:frontend-maven-plugin to download and install all node and npm requirements. Sometimes this may fail if console permissions are not permissive enough.
In such cases you will have to manually install some reqiurements:
-
Download and install node: https://nodejs.org/en/download/current/
-
Install npm manually:
cd web-application/src/main/static npm install npm npm install typings --global typings install --global