conductor-oss / conductor-oss/conductor
Spring Boot 4 compatibility: server artifacts hard-reference Boot-3-only FQCNs (Jackson2ObjectMapperBuilderCustomizer, DataSourceAutoConfiguration)
@bradyyie is already working on this.
Since Aug 15, 2026.
- Dominant language
- Java
- Stars
- 32.2k
- Forks
- 1k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 41
Description
The feature, motivation and pitch
Describe the problem
We embed the Conductor server modules (conductor-core, conductor-rest, conductor-postgres-persistence, conductor-scheduler-*) inside our own Spring Boot application. After upgrading the host application to Spring Boot 4.1 (Spring Framework 7 / Jackson 3), the application fails at startup, because the published Conductor artifacts were compiled against Spring Boot 3-only class locations that no longer exist in Boot 4.x:
conductor-common—com.netflix.conductor.common.config.ObjectMapperBuilderConfiguration:
// common/src/main/java/com/netflix/conductor/common/config/ObjectMapperBuilderConfiguration.java
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; // L15
@Bean
public Jackson2ObjectMapperBuilderCustomizer conductorJackson2ObjectMapperBuilderCustomizer() { ... } // L28
In Boot 4.x this SPI was moved out of spring-boot-autoconfigure into the optional spring-boot-jackson2 compatibility module under a new package (org.springframework.boot.jackson2.autoconfigure.Jackson2ObjectMapperBuilderCustomizer). Adding spring-boot-jackson2 therefore does not satisfy the already-compiled reference — the old FQCN no longer exists on any classpath → NoClassDefFoundError at context startup. On top of that, spring-boot-jackson2 is deprecated since Boot 4.0 as an explicit stop-gap, with removal expected around the Spring Framework 7.1 timeline — so there is no long-term path on the consumer side.
conductor-postgres-persistenceandconductor-sqlite-persistence:
// postgres-persistence/.../config/PostgresConfiguration.java (L29, L47)
// sqlite-persistence/.../config/SqliteConfiguration.java (L29, L55)
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@Import(DataSourceAutoConfiguration.class)
In Boot 4.x, DataSourceAutoConfiguration moved to org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration (auto-configurations were split into per-technology modules), so the class-literal @Import fails at startup (TypeNotPresentException).
All of the above references are still present on current main (checked July 2026).
Impact
The Conductor server modules cannot be embedded in any Spring Boot 4.x / Spring Framework 7 / Jackson 3 application. Consumers embedding the server are effectively pinned to Spring Boot 3.x — a line that is now entirely out of OSS support (3.5, the last 3.x minor, reached OSS end-of-life on June 30, 2026; only 4.0 and 4.1 currently receive open-source patches).
Question / request
Are there any plans for Spring Boot 4 compatibility on the server side? Even without migrating the server itself off its current Boot 3.x baseline, making the published artifacts consumable from Boot 4.x host applications (i.e. avoiding hard references to Boot-version-specific FQCNs) would unblock embedding scenarios.
For context: the client side is already covered — conductor-oss/java-sdk#115 added the dedicated conductor-client-spring-boot4 module. This issue concerns only the server/common artifacts.
Environment
- Conductor: 3.30.x
- Host application: Spring Boot 4.1.x, Java 25
- Embedded modules: conductor-core, conductor-rest, conductor-postgres-persistence, conductor-scheduler-core, conductor-scheduler-postgres-persistence
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.