Skip to content

Add MySQL Spring Boot autoconfiguration (KOJAK-37)#3

Merged
endrju19 merged 11 commits intomainfrom
mysql
Mar 25, 2026
Merged

Add MySQL Spring Boot autoconfiguration (KOJAK-37)#3
endrju19 merged 11 commits intomainfrom
mysql

Conversation

@endrju19
Copy link
Collaborator

Summary

  • Add MysqlStoreConfiguration to OutboxAutoConfiguration — zero-config MysqlOutboxStore + Liquibase migration when okapi-mysql is on the classpath
  • Fix proxyBeanMethods = false on PostgresStoreConfiguration (Kotlin final classes + CGLIB proxy)
  • Rename Postgres Liquibase bean to okapiPostgresLiquibase to avoid collision when both modules coexist

When both okapi-postgres and okapi-mysql are on the classpath, Postgres takes priority (declaration order + @ConditionalOnMissingBean). Users can override by defining their own @Bean OutboxStore.

Test plan

  • MySQL E2E test: publish → claim → deliver → status update via Testcontainers MySQL 8.0
  • Existing Postgres E2E test still passes (no regressions)
  • Full test suite: 23/23 pass in okapi-spring-boot, all other modules green
  • ktlint check passes

When both okapi-postgres and okapi-mysql are on the classpath, only the
winning store's Liquibase migration should run. Return concrete types
from outboxStore() so @ConditionalOnBean can detect which store won.
@endrju19 endrju19 merged commit 6e45fdb into main Mar 25, 2026
7 checks passed
@endrju19 endrju19 deleted the mysql branch March 25, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants