No description
Find a file
2024-07-11 21:36:59 +02:00
doc [skip ci] Dockerize section, how to handle different Dockerfile stages 2024-07-11 21:36:24 +02:00
frontend Prebuild commit - build graalvm bin in phase 1, use bin to stage app in phase 2 2024-06-20 22:05:15 +02:00
gradle/wrapper Installing graalvm and usage to build binary for deploying, need some improvements 2024-06-14 17:41:12 +02:00
image [skip ci]Refactoring in Docker image building, see also section dockerizing in doc/dev_notes.md to handle one Dockerfile for different builds 2024-07-11 21:35:08 +02:00
src [skip ci] new META-INF/native-image created with graalvm agent 22 2024-07-09 09:09:37 +02:00
.gitignore add __pycache__/ to .gitignore 2024-06-26 12:03:58 +02:00
.gitlab-ci.yml Fix, try caching gradle 2024-07-09 14:43:53 +02:00
build.gradle [skip ci] No snapshot version 2024-07-11 21:36:59 +02:00
build.py [skip ci] further linting 2024-07-09 09:08:38 +02:00
gradle.properties [skip ci] Bump to latest versions: springframework, spring.dependency-management, com.vaadin, java/graalvm 22 2024-07-09 09:02:32 +02:00
gradlew Member Names external by application.properties 2024-06-13 10:08:32 +02:00
gradlew.bat first commit 2024-06-06 17:45:46 +02:00
LICENSE first commit 2024-06-06 17:45:46 +02:00
package-lock.json Prebuild commit - build graalvm bin in phase 1, use bin to stage app in phase 2 2024-06-20 22:05:15 +02:00
package.json [skip ci] new META-INF/native-image created with graalvm agent 22 2024-07-09 09:09:37 +02:00
README.md [skip ci] Cleanup dev_notes 2024-07-09 08:58:05 +02:00
settings.gradle first commit 2024-06-06 17:45:46 +02:00
tsconfig.json first commit 2024-06-06 17:45:46 +02:00
types.d.ts first commit 2024-06-06 17:45:46 +02: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® 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
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

(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