You can run the application directly via Gradle, or optionally containerize it with Docker.
./gradlew bootRundocker build -t shmessenger .
docker run --env-file .env -p 8080:8080 shmessengerdocker compose up --buildThe backend utilizes OpenAPI (Swagger) to document all endpoints automatically. Once the application is running, you can interact with the API interface at: 👉 Swagger UI
When running tests or the application, you may see the following harmless JVM warnings in your console:
-
WARNING: A restricted method in java.lang.System has been called- Why it happens: The SQLite JDBC driver uses native C libraries via
System.load(). Java 22+ logs a warning whenever native libraries are loaded without explicit permission flags. - Why it's normal: Standard SQLite behavior. It's completely harmless and does not affect the app.
- Why it happens: The SQLite JDBC driver uses native C libraries via
-
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes...- Why it happens: Spring Boot uses dynamic library modification (like ByteBuddy for Mockito checks) which disables the JVM's "Class Data Sharing" (CDS) optimization for application classes.
- Why it's normal: Standard behavior for Spring implementations with mock testing setups.