66[ ![ Kotlin release] [ kt_img ]] [ kt_url ]
77[ ![ Maven Central Version] [ maven_img ]] [ maven_url ]
88[ ![ Ktor] [ ktor_img ]] [ ktor_url ]
9- [ ![ Compose MP] [ cmp_img ]] [ cmp_url ]
109[ ![ Style guide] [ ktfmt_img ]] [ ktfmt_url ]
1110
1211This repo shows a Gradle multi-project build structure that uses the [ Kotlin Multiplatform] [ Kotlin Multiplatform ] to
@@ -16,19 +15,15 @@ and [Compose Web (wasm)][Compose-Multiplatform] applications.
1615### Install OpenJDK EA Build
1716
1817``` bash
19- # Mac OS
2018$ curl -s " https://get.sdkman.io" | bash
2119$ sdk i java 25.ea-open
22- $ sdk u java 25.ea-open
2320```
2421
2522### Build & Run
2623
2724``` bash
2825$ ./gradlew build [-Pskip.test]
29-
30- # Run the app
31- $ ./gradlew :backend:jvm:run
26+ $ OTEL_SDK_DISABLED=true backend/jvm/build/libs/jvm-app
3227
3328# Publish to local repo
3429$ ./gradlew buildAndPublish
@@ -90,6 +85,7 @@ The next version will be based on the semantic version scope (`major`, `minor`,
9085* Containers
9186
9287 ``` bash
88+ # Running app on container
9389 $ docker run \
9490 -it \
9591 --rm \
@@ -99,8 +95,9 @@ The next version will be based on the semantic version scope (`major`, `minor`,
9995 --publish 8081:8081 \
10096 --name kotlin-mpp-playground \
10197 --mount type=bind,source=$( pwd) ,destination=/app,readonly \
102- openjdk:25-slim /bin/bash -c " printenv && nohup jwebserver -b 0.0.0.0 -p 8081 -d / & backend/jvm/build/libs/jvm-app"
98+ openjdk:25-slim /bin/bash -c " printenv && backend/jvm/build/libs/jvm-app"
10399
100+ # Build a container image and run
104101 $ ./gradlew :backend:jvm:jibDockerBuild
105102 $ docker run -it --rm --name jvm-app -p 8080:8080 -p 9898:9898 sureshg/jvm
106103 $ docker stats
@@ -109,24 +106,18 @@ The next version will be based on the semantic version scope (`major`, `minor`,
109106* OpenTelemetry
110107
111108 ``` bash
112- # Install otel-desktop-viewer or Jaeger
113- $ brew tap CtrlSpice/homebrew-otel-desktop-viewer
114- $ brew install otel-desktop-viewer
115- $ otel-desktop-viewer
116-
109+ # Run otel tui
110+ $ brew install ymtdzzz/tap/otel-tui
111+ $ otel-tui
117112
118- # or run the Jaeger collector
113+ # or run the Jaeger
119114 $ docker run -it --rm --pull=always \
120115 -e COLLECTOR_OTLP_ENABLED=true \
121116 -p 4317:4317 \
122117 -p 16686:16686 \
123118 jaegertracing/all-in-one:latest
124119 $ open http://localhost:16686
125120
126- # Run otel tui
127- $ brew install ymtdzzz/tap/otel-tui
128- $ otel-tui
129-
130121 # Run the app
131122 $ docker run -it --rm \
132123 --name jvm \
@@ -136,7 +127,6 @@ The next version will be based on the semantic version scope (`major`, `minor`,
136127 -e OTEL_TRACES_EXPORTER=" otlp" \
137128 -e OTEL_EXPORTER_OTLP_PROTOCOL=" grpc" \
138129 -e OTEL_EXPORTER_OTLP_ENDPOINT=" http://host.docker.internal:4317" \
139- -e OTEL_DROP_SPANS=" /swagger" \
140130 sureshg/jvm:latest
141131 $ curl -v -X GET http://localhost:8080/trace
142132
@@ -160,25 +150,26 @@ The next version will be based on the semantic version scope (`major`, `minor`,
160150
161151 ``` bash
162152 # Training Run
153+ $
163154 $ java --enable-preview \
164- -XX:+UnlockExperimentalVMOptions \
165- -XX:+UseCompactObjectHeaders \
155+ -XX:+UseZGC \
156+ -XX:+UnlockExperimentalVMOptions -XX:+ UseCompactObjectHeaders \
166157 -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf \
167158 -jar backend/jvm/build/libs/jvm-all.jar
168159
169160 # Create AOT archive
170161 $ java --enable-preview \
171- -XX:+UnlockExperimentalVMOptions \
172- -XX:+UseCompactObjectHeaders \
173- -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot \
174- -jar backend/jvm/build/libs/jvm-all.jar
162+ -XX:+UseZGC \
163+ -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders \
164+ -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot \
165+ -jar backend/jvm/build/libs/jvm-all.jar
175166
176167 # Run with AOT
177168 $ java --enable-preview \
178- -XX:+UnlockExperimentalVMOptions \
179- -XX:+UseCompactObjectHeaders \
180- -XX:AOTCache=app.aot \
181- -jar backend/jvm/build/libs/jvm-all.jar
169+ -XX:+UseZGC \
170+ -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders \
171+ -XX:AOTCache=app.aot \
172+ -jar backend/jvm/build/libs/jvm-all.jar
182173
183174 # Show native memory details
184175 $ jcmd jvm-app System.map
0 commit comments