Skip to content

Releases: spring-projects/spring-modulith

2.0 M1

26 Jul 17:13
2.0.0-M1
0ba2f75
Compare
Choose a tag to compare
2.0 M1 Pre-release
Pre-release

⭐ New Features

  • Revamp event publication lifecycle for JDBC #1321
  • Support to verify application module structure on startup #1287
  • Propagate named interface assignments of types to return and parameter types of methods declared #1264

💡 Improvements

  • Resolve JUnit warnings regarding nested test classes #1326
  • Update version compatibility matrix in reference docs #1289
  • Constrain access to internally used methods of ApplicationModuleSource #1283
  • Expose additional application module metadata in application-modules.json #1276
  • Reflection metadata missing in JSONPath lookup for application module identifiers on GraalVM #1254
  • Prevent application module misconfiguration due to invalid additional packages #1251
  • Unnecessary context bootstrap triggered for application module tests due to overly constrained equals(…) and hashCode() in ModuleTypeExcludeFilter #1216
  • Migrate nullness verification to jSpecify #1192

🪲 Bugs

  • Avoid ConcurrentModificationException in PackageName #1319
  • Potential stack overflow when looking up a module's dependencies if it's part of a cycle #1299
  • Potential ConcurrentModificationException when running @ApplicationModuleTest tests in parallel #1295
  • Remove reference to JGraphT from reference documentation #1288
  • 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
  • Exception during file creation from APT module #1263
  • Incompatible path handling for KAPT with Maven #1209

🔨 Dependency Upgrades

  • Upgrade to Micrometer Tracing 1.6 M1 #1318, #1221
  • Upgrade to Testcontainers 1.21.3 #1317, #1243
  • Upgrade to Cute 1.8.0 #1282
  • Upgrade to APTK 0.30.2 #1281
  • Update examples to jMolecules 2023.3.2 #1253
  • Upgrade to jMolecules 2023.3.2 #1252, #1210
  • Upgrade to Flapdoodle MongoDB 4.20.0 #1244
  • Upgrade to Structurizr 4.1.0 #1242
  • Upgrade to jGit 7.3.0.202506031305-r #1241, #1232
  • Upgrade to MongoDB 5.5.1 #1231
  • Upgrade to ArchUnit 1.4.1 #1230
  • Upgrade to Spring Boot 4 M1 #1191
  • Upgrade to Spring Framework 7 M7 #1190, #1240

1.4.2

25 Jul 16:22
1.4.2
8aac8c7
Compare
Choose a tag to compare

💡 Improvements

  • Update version compatibility matrix in reference docs #1290
  • Expose additional application module metadata in application-modules.json #1277
  • Unnecessary context bootstrap triggered for application module tests due to overly constrained equals(…) and hashCode() in ModuleTypeExcludeFilter #1261

🪲 Bugs

  • Potential ConcurrentModificationException when running @ApplicationModuleTest tests in parallel #1302
  • Potential stack overflow when looking up a module's dependencies if it's part of a cycle #1300
  • ApplicationModules.toString() should list *all* dependencies marking bootstrap dependencies #1286
  • Exception during file creation from APT module #1284
  • Named interfaces leaking from submodules into parent ones #1280

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.5.4 #1320
  • Upgrade jMolecules to 2023.2.2 in examples #1315
  • Upgrade to Testcontainers 1.21.3 #1314
  • Upgrade to Micrometer 1.15.2 #1313
  • Upgrade to Spring Framework 6.2.9 #1308
  • Upgrade to Micrometer Tracing 1.5.2 #1307
  • Upgrade to jMolecules 2023.3.2 #1306

1.3.8

25 Jul 16:21
1.3.8
e41b13a
Compare
Choose a tag to compare

💡 Improvements

  • Unnecessary context bootstrap triggered for application module tests due to overly constrained equals(…) and hashCode() in ModuleTypeExcludeFilter #1262

🪲 Bugs

  • Potential ConcurrentModificationException when running @ApplicationModuleTest tests in parallel #1303
  • Potential stack overflow when looking up a module's dependencies if it's part of a cycle #1301

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.4.8 #1305
  • Upgrade to Spring Framework 6.2.9 #1304

1.4.1

19 Jun 21:27
1.4.1
4d42328
Compare
Choose a tag to compare

💡 Improvements

  • Reflection metadata missing in JSONPath lookup for application module identifiers on GraalVM #1250
  • Prevent application module misconfiguration due to invalid additional packages #1247

🪲 Bugs

  • Incompatible path handling for KAPT with Maven #1255
  • Fix automatic module name of Moments artifact #1220

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.5.2 #1257
  • Upgrade jGit to 7.0.1.202505221510-r #1236
  • Upgrade Spring Framework to 6.2.8 #1235
  • Upgrade ArchUnit to 1.4.1 #1233
  • Upgrade Micrometer Tracing to 1.5.1 #1222

1.3.7

19 Jun 21:26
1.3.7
e60bf80
Compare
Choose a tag to compare

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.4.7 #1256
  • Upgrade jGit to 7.0.1.202505221510-r #1239
  • Upgrade ArchUnit to 1.3.2 #1238
  • Upgrade Spring Framework to 6.2.8 #1237

1.4.0

27 May 08:10
1.4.0
8395791
Compare
Choose a tag to compare

⭐ New Features

  • Support for bean instances located in test sources for @ApplicationModuleTest #202
  • Automatically create counters for cross-module application events #1068
  • Provide abstraction to access ApplicationModuleIdentifiers in order of module dependency #1066
  • Avoid the bootstrap of an ApplicationModules instance to execute ApplicationModuleInitializers #1065
  • Documenter should automatically write application module metadata #1063
  • Application metadata JSON should list ApplicationModuleInitializer beans #1062
  • Avoid dependency on JGraphT #1060
  • Migrate to FinishedSpan.localServiceName(…) #935
  • Remove AWS integration in favor of Spring Cloud AWS port #1024
  • Allow detecting NamedInterfaces programmatically #1009
  • Move to Micrometer's Observations API #928

💡 Improvements

  • Remove deprecated support for Spring AutoRestDocs for Javadoc extraction #1193*
  • Deprecate @CheckReturnValue in favor of the Spring Framework variant #1189*
  • Support to disable automatic additional verifications executed by ApplicationModules.verify() #1185*
  • Improve rendering of tree structures in reference documentation #1171
  • Removed deprecated FormatableType #1153
  • ApplicationModules should expose root packages #1152
  • ApplicationModule should expose internal types #1150
  • Module observability listener performance issue on publishEvent #1149
  • Performance problem with event publication lookup #1146
  • State change detection for Scenarios should only accept non-empty collections by default #1131
  • Event externalization bootstrap should log which event types it's configured to externalize. #1130
  • Align automatic module names with project portfolio #1122
  • Register AssertablePublishedEvents in test ApplicationContext if AssertJ is on the classpath #1110
  • ModuleTestExecution should use ApplicationModulesFactory to create ApplicationModules instance #1090
  • Set up DCO infrastructure #1087
  • Move AOT processor generating application module metadata to runtime module #1064
  • Structurally identical events cause the wrong publication to be selected for completion #1056
  • Avoid dependency on Apache Commons Logging from spring-modulith-docs artifact #1055
  • ModulithMetadata.of(String) should pick up classes annotated with @Modulithic in the given package #1015
  • Allow filtering Violations #995
  • Allow registering skin parameters in generated PlantUML diagrams #983
  • Provide a Spring Boot compatibility matrix #971
  • Improve Application Module Canvas rendering #968
  • Improve documentation when to add the Spring Modulith Core artifact in compile scope #943
  • Controllers implementing interfaces not mapped when the observability module is used #933

🪲 Bugs

  • FormattableType.getAbbreviatedTypeName(…) skips containing class for nested ones #1151
  • @NamedInterface not detected on composed annotation #1139
  • Fix Kotlin examples for module and named interfaces declarations and … #1138
  • Severe performance regression in JavaPackage #1098
  • Complete description for Neo4j index property #1084
  • Application module identifier not picked up on package marker types #1052
  • Resubmission of publications must not unregister in-progress publications in case of successful invocation #1051
  • @ApplicationModuleTest in separate test files does not cache the ApplicationContext #1050
  • ApplicationModuleSource picks up module identifier from nested modules #1042
  • NamedInterfaces.Builder excludes all packages by default #1040
  • JavaPackage.getSubPackages() does not include empty intermediate packages #1039
  • ApplicationModuleInformation needs to be public #1038
  • Proxy creation in observability support should use the original bean's classloader #1016
  • IllegalArgumentException in AsciiDoc generation for Spring @EventListeners without parameters #1006
  • Prevent compile time dependency of APT on docs artifact #984
  • Asciidoctor.toInlineCode(String) does not handle local method references correctly #965
  • Archiving JPA entity causes unnecessary need to set up archive table #964

🔨 Dependency Upgrades

❤️ Contributors

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

@Alexander-Miller @ciberkleid @marcingrzejszczak @lukasdo @dtsaryov @sangjun121

* – Added between RC1 and GA.

1.3.6

27 May 08:09
1.3.6
26a1d1f
Compare
Choose a tag to compare

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.4.6 #1201
  • Upgrade Spring Framework to 6.2.7 #1200

1.2.13

27 May 08:08
1.2.13
c036a6a
Compare
Choose a tag to compare

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.3.12 #1199
  • Upgrade Spring Framework to 6.1.20 #1198

1.4 RC1

25 Apr 12:15
1.4.0-RC1
e345c1d
Compare
Choose a tag to compare
1.4 RC1 Pre-release
Pre-release

💡 Improvements

  • Improve rendering of tree structures in reference documentation #1171
  • Removed deprecated FormatableType #1153
  • ApplicationModules should expose root packages #1152
  • ApplicationModule should expose internal types #1150
  • Module observability listener performance issue on publishEvent #1149
  • Performance problem with event publication lookup #1146
  • State change detection for Scenarios should only accept non-empty collections by default #1131
  • Event externalization bootstrap should log which event types it's configured to externalize. #1130
  • Align automatic module names with project portfolio #1122

🪲 Bugs

  • FormattableType.getAbbreviatedTypeName(…) skips containing class for nested ones #1151
  • @NamedInterface not detected on composed annotation #1139
  • Fix Kotlin examples for module and named interfaces declarations and … #1138

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.5 RC1 #1176
  • Upgrade to Micrometer Tracing 1.5 RC1 #1169
  • Upgrade Spring Framework to 6.2.6 #1168
  • Upgrade jMolecules to 2023.3.1 #1167

❤️ Contributors

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

@dtsaryov @sangjun121

1.3.5

25 Apr 09:34
1.3.5
65acef6
Compare
Choose a tag to compare

💡 Improvements

  • Improve rendering of tree structures in reference documentation #1173
  • Performance problem with event publication lookup #1160
  • Event externalization bootstrap should log which event types it's configured to externalize. #1136

🪲 Bugs

  • FormattableType.getAbbreviatedTypeName(…) skips containing class for nested ones #1161
  • @NamedInterface not detected on composed annotation #1142
  • Fix Kotlin examples for module and named interfaces declarations and … #1140

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 3.4.5 #1175
  • Upgrade Spring Framework to 6.2.6 #1165
  • Upgrade jMolecules to 2023.2.2 #1164

❤️ Contributors

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

@sangjun121