2024-07-04 09:18:21 +00:00
|
|
|
# meapp-fullstack: ModeratorElection
|
|
|
|
|
|
|
|
## Purpose
|
|
|
|
|
|
|
|
**ModeratorElection** provides a fullstack java app development as **graalvm binary** containing:
|
|
|
|
* Java app to elect a team member from a comma separated list delivered by environment variable
|
|
|
|
* Backend Spring Boot embeded Tomcat<sup>®</sup> Server
|
|
|
|
* Frontend Vaadin Framework
|
|
|
|
* Dockerfile to generate multi stage image,
|
|
|
|
first stage compilation to graalvm binary, second stage as run stage - graalvm binary execution
|
|
|
|
|
|
|
|
## Try out
|
|
|
|
Development phase is completed, we will deploy production soon - reachable at
|
|
|
|
https://meapp-fullstack.jitsi.prod.meissa.de
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
* in **IDE development**, run
|
|
|
|
`./gradlew clean vaadinPrepareFrontend`
|
|
|
|
* build **jar file**
|
|
|
|
`./gradlew clean build -Pvaadin.productionMode`
|
|
|
|
-> output jar to build/libs/
|
|
|
|
* compile **native-image graalvm binary**
|
|
|
|
(1) use graalvm agent to announce project dependencies
|
|
|
|
```shell
|
2024-07-09 06:58:05 +00:00
|
|
|
MEMBERNAMES=er,sie,es java -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image -jar build/libs/ModeratorElection-0.0.1-SNAPSHOT.jar
|
2024-07-04 09:18:21 +00:00
|
|
|
```
|
|
|
|
(2)
|
|
|
|
`./gradlew nativeCompile -Dvaadin.productionMode=true`
|
|
|
|
-> output binary and necessary libs to build/native/nativeCompile/
|
|
|
|
* **py builder/build.py** usage recommendation:
|
|
|
|
`pyb <task>` to either create docker image, publish docker image, run test or dry run.
|
|
|
|
py builder is using **meissa PyPi package ddadevops** for smart deployment.
|
|
|
|
|
|
|
|
## Get help
|
|
|
|
`./gradlew tasks`
|
|
|
|
|
|
|
|
## Development & mirrors
|
|
|
|
|
|
|
|
Development completed at:
|
|
|
|
https://repo.prod.meissa.de/meissa/ModeratorElection
|
|
|
|
|
|
|
|
Mirror:
|
|
|
|
https://gitlab.com/domaindrivenarchitecture/ModeratorElection (CI)
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
Copyright © 2024 meissa GmbH
|
|
|
|
Licensed under the [Apache License, Version 2.0](LICENSE)
|