Migrating your API from sapi-nt version 1.x.y to 2.0.0 introduces some breaking changes and should be handled with care.
This document is meant to assist you in migrating your application to sapi-nt 2.0.0.
java: 21
kotlin: 2.0.0
These are controlled via java.version and kotlin.version maven properties.
Spring boot 3 migrated from the use of javax to jakarta, therefore you should always be using jakarta.servlet:jakarta.servlet-api
and not javax.servlet:javax.servlet-api, if you aren’t relying on our starter POM (com.epimorphics.sapi-nt-base).
As well as dependency coordinate changes, Jakarta EE now uses jakarta packages rather than javax. Once you’ve
upgraded to sapi-nt 2.0.0 you may find that import statements in your project need to be updated.
The pebble templates have changed the package from com.mitchellbosecke to io.pebbletemplates. If you have any
pebble extensions in your local implementation, then note that the imports statements need to reflect that.
In spring boot 3 the ant path matcher has been deprecated, forbidding matching after * or ** (e.g. /id/**/batch).
In sapi-nt 2.0.0, this is enabled by providing spring.mvc.pathmatch.matching-strategy=ant_path_matcher spring
application property. It is set in the base application.properties under sapi-nt-lib. If you would like to specify
additional properties using a .properties file then make sure you use the application.properties from sapi-nt-lib
as a starting point (see here) because a new
application.properties file in your project will completely override it.
Logging dependencies have been updated as well, and you should follow the new logging documentation to have the logging work as desired. See documentation here.