| Plugin Version | Bloomreach Experience Manager Version |
|---|---|
| 6.1.0 | 17.0.0 |
| 6.0.0 | 17.0.0 |
| 5.5.0 | 16.7.0 |
| 5.4.0 | 16.7.0 |
| 5.3.x | 16.7.0 |
| 5.2.0 | 16.7.0 |
| 5.1.0 | 16.6.5 |
| 5.0.1 | 16.6.5 |
| 5.0.0 | 16.0.0 |
| 4.x | 15.x |
| 3.x | 14.x |
| 2.1.2 | 13.4.x |
| 2.0.0 | 13.1 |
| 1.x | 12.x |
Parallel Test Isolation and Log Noise Reduction (FORGE-668)
Improvements:
IsolatingComponentManager — A new IsolatingComponentManager is registered once with HstServices at class load and never replaced. Each test class sets its own SpringComponentManager via a per-thread ThreadLocal delegate, eliminating the flakiness caused by concurrent test classes writing to the global HstServices static.contextPath() override in AbstractResourceTest — New protected method, defaulting to /site. Annotation-driven tests derive a per-class context path (e.g., /site-MyTest), fully isolating servlet context registrations when test classes run concurrently.SimpleComponentTest teardown fix — Captures and restores the pre-existing ComponentManager on teardown. Prevents SimpleComponentTest from clobbering the IsolatingComponentManager when brut-components and brut-resources tests run in the same JVM.MODEL_CACHE atomicity — Cache write changed from non-atomic get + put to putIfAbsent, preventing silent overwrites when two test threads bootstrap with the same configuration fingerprint concurrently.SessionImpl, JcrContentProcessor, ItemStateReferenceCache), HCM config engine duplicates (ConfigurationTreeBuilder, ConfigurationConfigService), HST template and sitemap warnings (HstComponentConfigurationService, LocationMapTreeComponentDocuments), and RuntimeTypeStubber / ConfigServiceBootstrapStrategy operational messages downgraded from WARN to DEBUG. All are structural noise in a BRUT test context.-XX:+UseParallelGC to -XX:+UseZGC -XX:+ZGenerational, reducing pause times during the allocation-heavy bootstrap phase.project.build.javaVersion property and explicit maven-compiler-plugin source/target configuration (both were already governed by the parent POM).Breaking Changes:
hippo-cms7-project:16.7.0 to 17.0.0. Projects on 16.x must remain on BRUT 5.x.junit-jupiter.version=6.0.3. BRUT's @Nested test injection now uses TestInstances.getAllInstances() instead of synthetic field reflection, compatible with Java 21 bytecode.RuntimeRepositoryException package change — Removed from org.hippoecm.hst.core.jcr; now imported from org.hippoecm.repository.api. Update any direct imports in your project.Improvements:
applyNamespacesAndNodeTypes — prevents NamespaceException failures from addon module orderinghst:ismapped=false on mounts with unresolvable site references, preventing errors in multi-tenant setupsRuntimeTypeStubber.registerStubMixinNodeType() — new method to register stub mixin types specificallySpringComponentManager.getInternalApplicationContext() — exposes Spring context for test setupAbstractPageModelTest registers a GenericWebApplicationContext on the test servlet context — fixes WebApplicationContextUtils.getWebApplicationContext() returning nullloadProjectContent = true may pick up additional modules; use excludeDependencyHcmModules to opt out of specific ones.excludeDependencyHcmModules parameter on @BrxmJaxrsTest and @BrxmPageModelTest to opt out of specific addon modulesdependencyHcmModules repurposed as force-include override for modules that auto-discovery would misspage section are now correctly parsed and resolvedresolveModelContent(component, modelName, type) and resolveModelContentList(component, modelName, type) — helper methods replacing manual stream pipelines for resolving $ref contentPageModelAssert, PageModelDiagnostics, and ConfigurationDiagnostics provide actionable failure output with YAML file references and fix recommendationsConfigurationModel cached by source file hash — repeated YAML/CND processing skipped for classes with identical HCM moduleshst-manager.xml overrides)Quick Start Guides: Getting Started | Quick Reference | Common Patterns | Troubleshooting
@Test method parameters (recommended)@BrxmPageModelTest, @BrxmJaxrsTest, @BrxmComponentTest@Node(jcrType="...") annotations in bean packagesloadProjectContent = true@Before pattern fully supported