Hello Dropwizard wizards,
I need to upgrade an old set of REST-ful services (a few dozen endpoints) from Dropwizard 0.8.5 to a newer release. The update is long overdue, and I'm thinking there's no reason not to move to 2.1.x. I would love if anyone has advice to share on this upgrade -- additional "gotchas" I should watch for, based on your own experience, etc. Here are some details:
I was thinking I might do the upgrades one version at a time
(rather than trying to jump straight from 0.8.5 to 2.1.x), since then I
can locate the source of any compiler/test errors among a much smaller
set of changes. Does anyone have experience suggesting it's better to do the upgrade in one jump? Or just start a fresh Dropwizard project with the new system and pull in functionality bit by bit (an approach pointed out by one of my co-workers)?
(Perhaps if I were more familiar with
the various features/aspects that make Dropwizard work, it would be easier for me to sort through; I'm just expecting to encounter lots of errors where the cause/context is unfamiliar to me, and I'll have to read a lot of documentation and/or code to learn...hence the desire to localize the errors.)
From the release notes, I can see some of the major areas I'll need to address:
- migrating auths (0.9.x)
- migrating Hibernate (1.0.x)
- jackson update (2.0.x)
- jersey changes (2.1.x)
- other library upgrades/inter-dependencies
The Java 17 upgrade is already done (don't ask how it's possible --
motivated by security reasons, we fiddled with jars/dependencies under
the hood to get it compile/run for our use case, without guarantees that
it's fully compatible for all areas of the code).
Fortunately our test coverage is pretty good -- I'll probably start by
examining this and adding tests in any areas that seem underserved (like
user authentication).
Thanks in advance for any advice/opinions. I already found/read the following thread from the group archive which had some helpful tips in it:
"Upgrade from 1.3.19 to 2.0.9" (July 2020). If there are other similar
resources or people, please let me know, as I'm happy to go and learn
more!
Jonathan