CoreMedia Content Cloud v13 Upgrade Guide / Version 2512.0
Table Of ContentsThe Spring dependencies were upgraded to the Spring Boot 4 / Spring 7 baseline. With these upgrades, some further dependencies had to be upgraded as well.
The following Spring dependencies were upgraded:
Spring Boot -> 4.0.0, see also Spring Boot 4.0 Release Notes and Spring Boot 4.0 Migration Guide.
Spring Framework -> 7.0.1, see also Spring Framework 7.0 Release Notes.
Spring Security -> 7.0.0, see also What’s New in Spring Security 7.0.
Spring Data BOM -> 2025.1.1, see also Spring Data 2025.1 Release Notes.
Spring GraphQL -> 2.0.1, see also Spring for GraphQL 2.0.
Spring Webflow -> 4.0.0.
Micrometer -> 1.16.1.
Reactor Project BOM -> 2025.0.1.
Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:
GraphQL -> 25.0
HIbernate ORM -> 7.1.11.Final
Hibernate Validator -> 9.1.0.Final
Jakarta Servlet API -> 6.1.0
Tomcat -> 11.0.15
JUnit Jupiter -> 6.0.1
Most notable changes
Module Dependencies
Spring Boot 4.0 has a new modular design and now ships smaller focused modules rather than several large JARs. With this, many Spring Boot dependencies and Java packages have changed and respective references must be applied.
Take extra care of Spring Boot’s auto configurations. Many of them have now vanished from the classpaths, because
they were moved to module JARs that are not configured as project (compile) dependencies. Some of them weren’t actually
used, and they don’t pollute the classpaths anymore. Others may be required for your application’s functionality but
now could have vanished. The new module JARs containing these auto configurations may have to be added as additional
runtime or test dependencies now. To identify potentially missing auto configurations, you may start your Spring Boot
applications or tests before and after upgrade with -Ddebug=true and compare the CONDITIONS EVALUATION REPORT in the logs.
Some unwanted auto configurations from the former Spring Boot JARs had to be excluded explicitly. Now their respective module dependencies have been removed so that those exclusions are not needed anymore:
The MongoAutoConfiguration had to be excluded when it was in the combined
spring-boot-autoconfiguredependency. Now it resides inspring-boot-mongodbthat is not added to the applications anymore.The
FreeMarkerAutoConfigurationhad to be excluded when it was in the combinedspring-boot-autoconfiguredependency. Now it resides inspring-boot-freemarkerthat is not added to the applications anymore.The
DataSourceAutoConfigurationhad to be excluded when it was in the combinedspring-boot-autoconfiguredependency. Now it resides inspring-boot-jdbc. That dependency is still needed in the Studio Server and User Changes applications (along with the exclusion of theDataSourceAutoConfiguration). But it has been removed in all other applications.
The former ServletWebServerFactoryAutoConfiguration and EmbeddedWebServerFactoryCustomizerAutoConfiguration contained
configurations for various supported web servers. The configurations for each web server have now been moved to a
focused module JAR. In case of Tomcat, the auto configuration class is now named TomcatServletWebServerAutoConfiguration
and resides in the spring-boot-tomcat module JAR.
Upgrading Jackson
Spring Boot now uses Jackson 3 as its preferred JSON library. But for projects that cannot easily migrate, Jackson 2
is still supported (until excluding Spring Boot 4.2). Jackson 3 uses new group IDs and package names with com.fasterxml.jackson
becoming tools.jackson. Although the coordinates of both Jackson versions are disjunct, it turned out that Spring’s
Jackson 2 and 3 integrations produce various conflicts when the dependencies of both versions are on the classpath
of the CoreMedia applications. As migrating the Jackson integrations of the CoreMedia CMS is a rather complex and
time-consuming task, Jackson 3 dependencies have been avoided for now.
The migration to Jackson 3 is planned for the AEPs that will be released in spring or autumn 2026. If possible, upcoming AMPs may support both Jackson versions on the classpaths, but this requires further investigation.
Upgrading Testing Features
Mocks or test clients may not be working like before. Test classes may require additional annotations now:
@AutoConfigureMockMvc
@AutoConfigureWebTestClient
@ExtendWith(MockitoExtension.class)
In some cases, when @Mock and @MockitoBean are both used in the same test class, the @Mock annotation may have to be replaced with the static Mockito#mock(Class<T>) invocation.
Public API Changes
Spring Boot’s new modular design required changes to the com.coremedia.cms.delivery.configuration.DeliveryPropertiesAutoConfiguration:
The class annotations changed from @AutoConfiguration(after={ServletWebServerFactoryAutoConfiguration.class,WebMvcAutoConfiguration.class}) @EnableConfigurationProperties(DeliveryConfigurationProperties.class) to @AutoConfiguration(after=WebMvcAutoConfiguration.class) @EnableConfigurationProperties({DeliveryConfigurationProperties.class,ServerProperties.class,WebMvcProperties.class}).
The bean method changed from deliveryBaseURI(DeliveryConfigurationProperties, ObjectProvider<ServerProperties>, ObjectProvider<WebMvcProperties>) to deliveryBaseURI(DeliveryConfigurationProperties, ServerProperties, WebMvcProperties).


