github spring-projects/spring-modulith 2.0.0
2.0 GA

11 hours ago

⭐ New Features

  • Overhaul event publication lifecycle #796 (Neo4j #1337, MongoDB #1336, JDBC #1321, JPA #1375, #1389)
  • Support for application-module-specific Flyway migrations #1067, #1440
  • Allow serialized execution of event externalization #1370
  • Support for Jackson 3 in event serialization #1364, #1369
  • Support to verify application module structure on startup #1287
  • Migrate nullness verification to jSpecify #1192
  • Propagate named interface assignments of types to return and parameter types of methods declared #1264
  • Extract module description from a module's package-info.java Javadoc #1430
  • Remove deprecated @ApplicationEventListener annotation #1397

💡 Improvements

  • Prevent application module misconfiguration due to invalid additional packages #1251
  • Expose additional application module metadata in application-modules.json #1276
  • Cleanup configuration metadata creation #1455
  • Improve bootstrap procedure for ApplicationModulesEndpoint #1338
  • Unnecessary context bootstrap triggered for application module tests due to overly constrained equals(…) and hashCode() in ModuleTypeExcludeFilter #1216
  • Register SQL schemas as native image resources #1449
  • Reflection metadata missing in JSONPath lookup for application module identifiers on GraalVM #1254
  • List module description before base package in canvas #1447
  • Update version compatibility matrix in reference docs #1289
  • Fix a typo in the overview docs #1294
  • Fix typo in reference documentation #1394
  • Improve Documentation on Change Aware Test Execution #1382
  • Switch automatic Hexagonal Architecture verification to lenient mode #1366
  • Resolve JUnit warnings regarding nested test classes [#1326](https://github.com/spring-projects/ spring-modulith/issues/1326)
  • Constrain access to internally used methods of ApplicationModuleSource #1283
  • Remove legacy reflection-based event handling in PersistentApplicationEventMulticaster #1356
  • Update copyright year in index.adoc #1368
  • Polish deprecations in PublishedEvents #1448

🪲 Bugs

  • Forward classloader in ConfigDataEnvironmentPostProcessor application in ApplicationModuleDetectionStrategy lookup #1435
  • Potential NullPointerException in annotation detection in JavaPackage #1341
  • Avoid ConcurrentModificationException in PackageName #1319
  • Potential stack overflow when looking up a module's dependencies if it's part of a cycle #1299
  • ApplicationModules.toString() should list all dependencies, marking bootstrap dependencies #1285
  • Named interfaces leaking from submodules into parent ones #1279
  • Inconsistent visibility of NamedInterface.of(String name, Classes classes) #1272
  • Repeated invocation of AOT phase breaks creation of application-modules.json #1457
  • Properly detect Maven test execution in BuildSystemUtils #1432
  • Properly disable APT execution for test sources when using KAPT #1386
  • Exception during file creation from APT module #1263
  • Incompatible path handling for KAPT with Maven #1209
  • Invalid type reference in check for jMolecules Onion Architecture integration presence #1414
  • Potential NoClassDefFoundError when jMolecules DDD artifact is missing from the classpath #1333
  • TestExecutionCondition should fall back to execute the test if more than one main class is found #1391
  • Potential ConcurrentModificationException when running @ApplicationModuleTest tests in parallel #1295
  • Version compatibility of 1.4 should state Boot 3.5 at compile target #1331
  • Remove reference to JGraphT from reference documentation #1288

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 4.0
  • Upgrade to Spring Framework 7.0
  • Upgrade to jMolecules 2025.0
  • Upgrade to Structurizr 5
  • Upgrade to ArchUnit 1.4.1
  • Upgrade to Testcontainers 2.0
  • Upgrade to Micrometer 1.6
  • Upgrade to Micrometer Tracing 1.6
  • Upgrade to NullAway 0.12.10
  • Upgrade to jGit 7.4
  • Upgrade to Cute 1.9.0
  • Upgrade to APTK 0.30.5 #1372

❤️ Contributors

Thank you to all the contributors who worked on this release:

@jekutzsche, @kitt51, @patbaumgartner, @tlarbals824, and @val-beresneva

Don't miss a new spring-modulith release

NewReleases is sending notifications on new releases.