Releases: spring-projects/spring-modulith
Releases · spring-projects/spring-modulith
2.0 M1
⭐ 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(…)
andhashCode()
inModuleTypeExcludeFilter
#1216 - Migrate nullness verification to jSpecify #1192
🪲 Bugs
- Avoid
ConcurrentModificationException
inPackageName
#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
💡 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(…)
andhashCode()
inModuleTypeExcludeFilter
#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
1.3.8
💡 Improvements
- Unnecessary context bootstrap triggered for application module tests due to overly constrained
equals(…)
andhashCode()
inModuleTypeExcludeFilter
#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
1.4.1
💡 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
1.3.7
1.4.0
⭐ 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 executeApplicationModuleInitializer
s #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 #1152ApplicationModule
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 testApplicationContext
if AssertJ is on the classpath #1110 ModuleTestExecution
should useApplicationModulesFactory
to createApplicationModules
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 theApplicationContext
#1050ApplicationModuleSource
picks up module identifier from nested modules #1042NamedInterfaces.Builder
excludes all packages by default #1040JavaPackage.getSubPackages()
does not include empty intermediate packages #1039ApplicationModuleInformation
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
- Upgrade Micrometer Tracing to 1.5.0 #1205*, #1169, #1104, #1072, #1036
- Upgrade to Spring Boot 3.5 #1203, #1176, #1073, #1037
- Upgrade Spring Framework to 6.2.7 #1202, #1168, #1116, #1103, #1071, #1046
- Upgrade jMolecules to 2023.3.1 #1167, #1045
- Upgrade to ArchUnit 1.4 #1097
- Upgrade to APTK 0.29 #992
- Upgrade to Structurizr 3.1 #961
❤️ 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
1.2.13
1.4 RC1
💡 Improvements
- Improve rendering of tree structures in reference documentation #1171
- Removed deprecated
FormatableType
#1153 ApplicationModules
should expose root packages #1152ApplicationModule
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:
1.3.5
💡 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: