-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial investigation of Java 21 spring boot 3 #295
base: main
Are you sure you want to change the base?
Conversation
…-service into java-21-spring-boot-3
/deploy pricem |
Deploying to dev cluster with following parameters:
|
<configuration> | ||
<source>${java.version}</source> | ||
<target>${java.version}</target> | ||
<parameters>true</parameters> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Required to fix failing CaseGroupEndpointUnitTest
tests.
Error "Name for argument of type [java.util.UUID] not specified, and parameter name information not found in class file either"
with spring 3 upgrade when using org.springframework.test.web.servlet.MockMvc
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | ||
<failsafe.skipITs>true</failsafe.skipITs> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To allow me to control the tests during development. This will of course be false
when delivered.
…ust use F_NEW frames with Java 21
/deploy pricem |
Deploying to dev cluster with following parameters:
|
/deploy pricem |
Deploying to dev cluster with following parameters:
|
What and why?
Initial sanity test of upgrading Java and Spring Boot
Outstanding Issues
The app now starts and successfully amd connects to Postgres and Pub/Sub. The app successfully deploys to GCP and acceptance tests all pass successfully.
For current progress/outstanding issues check the
TODO:
comments throughout for more details. In summary so far.We have to update WireMock from the legacy
com.github.tomakehurst
to the neworg.wiremock
library. This new hosted package has the original tomakehurst package classes bundled inside it. This means we don't need to update the various imports throughout as they've made usage backward compatible.However, we see ReflectASM errors with the GoDaddy logging framework (only when using the new
org.wiremock
package, not the legacycom.github.tomakehurst package
).The RefectASM and GoDaddy logging packages are both very old and no longer supported https://github.com/godaddy/godaddy-logger/blob/main/README.md#whats-included-in-this-library.
The errors themselves maybe because of the way they've bundled the original tomakehurst within the new wiremock library, and the reflection framework is unable to instrument the byte code correctly under Java 21.
we can run integration tests only with the following
or run unit tests only with the following
How to test?
Start Postgres and the Pub/Sub emulator
Run the app natively with Maven
Or just run the jar
Build the image with Docker
In preparation to run the Docker image, authenticate your Google ADC (it's needed to connect to the Pub/Sub emulator) and ensure your key location is valid and check that your json creds file exists
Test the case service image
Destroy the network