This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch release-4.0.0-M2-RC1 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 519fc32ccc90ece50612666a6b525b61533117a0 Author: Dan Haywood <[email protected]> AuthorDate: Sun Jul 12 13:38:50 2026 +0100 CAUSEWAY-3990: updates release notes, STATUS and doap_causeway.rdf --- STATUS | 2 + antora/components/relnotes/modules/ROOT/nav.adoc | 1 + .../modules/ROOT/pages/2026/4.0.0-M2/mignotes.adoc | 27 ++- .../ROOT/pages/2026/4.0.0-M2/otel-howto.adoc | 76 ++++++++ .../modules/ROOT/pages/2026/4.0.0-M2/relnotes.adoc | 195 ++++++++++----------- .../relnotes/modules/ROOT/pages/about.adoc | 10 ++ antora/supplemental-ui/doap_causeway.rdf | 8 + 7 files changed, 211 insertions(+), 108 deletions(-) diff --git a/STATUS b/STATUS index 04817e12949..bc4c04e5b50 100644 --- a/STATUS +++ b/STATUS @@ -25,6 +25,8 @@ Description TLP releases: + * causeway-4.0.0-M2 : 12 Jun 2026 + * causeway-4.0.0-M1 : 13 Oct 2025 * causeway-3.6.0 : 9 Apr 2026 diff --git a/antora/components/relnotes/modules/ROOT/nav.adoc b/antora/components/relnotes/modules/ROOT/nav.adoc index 0d92883be8e..1b4303dcfcf 100644 --- a/antora/components/relnotes/modules/ROOT/nav.adoc +++ b/antora/components/relnotes/modules/ROOT/nav.adoc @@ -3,6 +3,7 @@ * 2026 +** xref:relnotes:ROOT:2026/4.0.0-M2/relnotes.adoc[4.0.0-M2] ** xref:relnotes:ROOT:2026/3.6.0/relnotes.adoc[3.6.0] * 2025 diff --git a/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/mignotes.adoc index 92cddd6041f..3fae1f49d56 100644 --- a/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/mignotes.adoc +++ b/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/mignotes.adoc @@ -15,10 +15,10 @@ Upgrade Summary: . Causeway now uses *slf4j* (instead of _log4j_) ✅ . Migrate build requirements to *Maven 4* ✅ -Optional to come with `4.0.0` or later +Optional to come with `4.0.0` or later . Removal of *rest-client* artifact in favor of Spring's RestClient -. Removal of *encrypt-jbcrypt* artifact +. Removal of *encrypt-jbcrypt* artifact == Configuration @@ -36,12 +36,22 @@ Some presets for the _Spring Configuration_ have been removed |=== +== Programming Model + +Notable changes in this release: + +* Support for Property Clear Methods in the Programming Model (eg `clearUsername()`) has been removed. ++ +See https://issues.apache.org/jira/browse/CAUSEWAY-3984[CAUSEWAY-3984] + + == Applib Removal of Interaction-Layer related classes from applib. (Motivation: Layering is an implementation choice, which should not be exposed as API.) -- `InteractionLayerTracker` was relocated to metamodel (removed from applib). -- `InteractionService` and `InteractionContext` were relocated from `..iactnlayer..` to `..iactn..` +* `InteractionLayerTracker` was relocated to metamodel (removed from applib). +* `InteractionService` and `InteractionContext` were relocated from `..iactnlayer..` to `..iactn..` + == RestEasy Integration Removed @@ -120,7 +130,7 @@ causeway: restfulobjects: basePath: /restful ---- -+ + == Immutable Configuration @@ -134,9 +144,14 @@ in effect all accessors have been renamed, stripping any `get` or `is` prefixes. `ErrorDetails` as used by the `ErrorReportingService` has been converted from a class to a record. (In effect all accessors have been renamed, stripping any `get` or `is` prefixes) + == Object Icon Support (Experimental) -WARNING: This is a _Programming Model_/_API_ draft. It might receive some polishing till final `4.0.0`. +[WARNING] +==== +This is a _Programming Model_/_API_ draft. +It might receive some polishing till final `4.0.0`. +==== Object support method `FontAwesomeLayers iconFaLayers()` has been replaced by `IconResource icon(IconSize iconSize)`, which also supports image data embedding and supersedes `String iconName()`. diff --git a/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/otel-howto.adoc b/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/otel-howto.adoc new file mode 100644 index 00000000000..074a00791da --- /dev/null +++ b/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/otel-howto.adoc @@ -0,0 +1,76 @@ += Open Telemetry Setup + +:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...] +:page-partial: + +Add the following dependencies into your application: + +[source,xml] +.pom.xml +---- +<dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-opentelemetry</artifactId> +</dependency> +<dependency> + <groupId>io.micrometer</groupId> + <artifactId>micrometer-registry-otlp</artifactId> +</dependency> +---- + +And update configuration: + +[source,yml,subs="attributes+"] +.application.yaml +---- +spring: + application: + name: <name of service> + +management: + tracing: + sampling: + probability: 1 + opentelemetry: + tracing: + export: + otlp: + endpoint: http://<my-endpoint>:4318/v1/traces +---- + + +In Spring app, disable the 'metric' export (we are currently only using 'traces') in a suitable `@Configuration`, for example `AppManifest`: + +[source,java] +.AppManifest.java +---- +@Bean +OtlpConfig otlpConfig() { + return new OtlpConfig() { + @Override public @Nullable String get(final String key) { return null;} + @Override public boolean enabled() { return false; } + }; +} +---- + +Run up Jaeger as a telemetry collector: ++ +[source,bash] +.Docker - one of many options is to use Jaeger as telemetry collector +---- +docker run -d --name jaeger \ +-p 16686:16686 \ +-p 4317:4317 \ +-p 4318:4318 \ +-p 5778:5778 \ +-p 9411:9411 \ +cr.jaegertracing.io/jaegertracing/jaeger +---- + +This will expose Jaeger's UI at http://<my-endpoint>:16686 + +=== Open Telemetry Usage + +- See blog: https://spring.io/blog/2025/11/18/opentelemetry-with-spring-boot +- See also: https://www.jaegertracing.io/docs/2.16/getting-started/ + diff --git a/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/relnotes.adoc index b3474bbefe2..38d7edc2368 100644 --- a/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/relnotes.adoc +++ b/antora/components/relnotes/modules/ROOT/pages/2026/4.0.0-M2/relnotes.adoc @@ -5,109 +5,100 @@ :page-partial: Apache Causeway v4 is based on Spring Boot v4. -This milestone release mitigates a security vulnerability, provides bug fixes and some new features. + +This milestone release mitigates a security vulnerability, provides bug fixes and some new features. Notable changes in this release: -⚠️ Attention Required - -- Mitigates https://www.cve.org/CVERecord?id=CVE-2025-64408[CVE-2025-64408] -- By default on application start a random HMAC secret (32 bytes) is generated, to digitally sign _Viewmodel Bookmarks_ (URLs). -The HMAC secret can also be set via environment variable `causeway_hmac_sha256` as comma separated list of signed integers (bytes). -A minimum of 16 bytes is required, we recommend 32. (eg. `-13,4,0, ...`) -https://issues.apache.org/jira/browse/CAUSEWAY-3988[CAUSEWAY-3988] -- [Programming Model] Support for Property Clear Methods was removed https://issues.apache.org/jira/browse/CAUSEWAY-3984[CAUSEWAY-3984] - -⭐ New Features - -- _Open Telemetry_ integration, activates when dependencies are found on the class path and _Spring Profile_ `observation` is active. (see Appendix below) -https://issues.apache.org/jira/browse/CAUSEWAY-3975[CAUSEWAY-3975] -- Pickup Webjar Version Strings automatically from Classpath https://issues.apache.org/jira/browse/CAUSEWAY-3948[CAUSEWAY-3948] -- [Wicket Viewer] Select2 with Object Icons https://issues.apache.org/jira/browse/CAUSEWAY-3904[CAUSEWAY-3904] - -🐞 Bug Fixes - -- ApplicationFeatureViewModel may fail to properly instantiate https://issues.apache.org/jira/browse/CAUSEWAY-3966[CAUSEWAY-3966] -- NPE in EntityChangeTrackerDefault when Logging with DEBUG level https://issues.apache.org/jira/browse/CAUSEWAY-3946[CAUSEWAY-3946] -- Metamodel Introspection Policy not honored for Java Records as Viewmodels https://issues.apache.org/jira/browse/CAUSEWAY-3991[CAUSEWAY-3991] -- Switching between Layout Variants may result in _Members_ staying hidden https://issues.apache.org/jira/browse/CAUSEWAY-3971[CAUSEWAY-3971] -- [Commons] Internal OneShot Util may deadlock (potentially preventing App from startup) https://issues.apache.org/jira/browse/CAUSEWAY-3972[CAUSEWAY-3972] -- [Wicket Viewer] Hide Tabs when content is permanently hidden https://issues.apache.org/jira/browse/CAUSEWAY-3983[CAUSEWAY-3983] -- [Wicket Viewer] Table Row Actions Redirect might fail if behind Reverse Proxy https://issues.apache.org/jira/browse/CAUSEWAY-3976[CAUSEWAY-3976] -- [Wicket Viewer] Upload Button may trigger Download of same File https://issues.apache.org/jira/browse/CAUSEWAY-3950[CAUSEWAY-3950] -- [Wicket Viewer] Downloadlink may fail with Network Error https://issues.apache.org/jira/browse/CAUSEWAY-3958[CAUSEWAY-3958] -- [Wicket Viewer] Actions in Tables have wrong Usability/Visibility Logic https://issues.apache.org/jira/browse/CAUSEWAY-3960[CAUSEWAY-3958] -- [Wicket Viewer] Actions in Tables have wrong Result Routing https://issues.apache.org/jira/browse/CAUSEWAY-3961[CAUSEWAY-3961] -- [Wicket Viewer] Dropdown Menu Clicks sometimes ignored https://issues.apache.org/jira/browse/CAUSEWAY-3992[CAUSEWAY-3992] - -🔨 Dependency Upgrades - -- Upgrade to Spring Boot 4.0.5 -- Upgrade to EclipseLink 5.0.0 - -== Appendix - -=== Open Telemetry Minimal Setup (for Applications) - -[source,xml] -.Maven ----- -<dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-opentelemetry</artifactId> -</dependency> -<dependency> - <groupId>io.micrometer</groupId> - <artifactId>micrometer-registry-otlp</artifactId> -</dependency> ----- - -[source,yml] -.Configuration ----- -spring: - application: - name: <name of service> - -management: - tracing: - sampling: - probability: 1 - opentelemetry: - tracing: - export: - otlp: - endpoint: http://<my-endpoint>:4318/v1/traces ----- - -[source,java] -.Spring - disables 'metric' export (we are currently only using 'traces') ----- -@Bean -OtlpConfig otlpConfig() { - return new OtlpConfig() { - @Override public @Nullable String get(final String key) { return null;} - @Override public boolean enabled() { return false; } - }; -} ----- - -[source,bash] -.Docker - one of many options is to use Jaeger as telemetry collector ----- -docker run -d --name jaeger \ --p 16686:16686 \ --p 4317:4317 \ --p 4318:4318 \ --p 5778:5778 \ --p 9411:9411 \ -cr.jaegertracing.io/jaegertracing/jaeger ----- - -Exposing Jaeger's UI at http://<my-endpoint>:16686 - -=== Open Telemetry Usage - -- See blog: https://spring.io/blog/2025/11/18/opentelemetry-with-spring-boot -- See also: https://www.jaegertracing.io/docs/2.16/getting-started/ +* address https://www.cve.org/CVERecord?id=CVE-2025-64408[CVE-2025-64408] (https://issues.apache.org/jira/browse/CAUSEWAY-3988[CAUSEWAY-3988]) ++ +By default on application start a random HMAC secret (32 bytes) is generated, to digitally sign _Viewmodel Bookmarks_ (URLs). +The HMAC secret can also be set via environment variable `causeway_hmac_sha256` as comma separated list of signed integers (bytes). +A minimum of 16 bytes is required, we recommend 32. (eg. `-13,4,0, ...`) + +* _Open Telemetry_ integration (https://issues.apache.org/jira/browse/CAUSEWAY-3975[CAUSEWAY-3975]) ++ +This activates when dependencies are found on the class path and _Spring Profile_ `observation` is active. ++ +TIP: For more details, see xref:relnotes::2026/4.0.0-M2/otel-howto.adoc[Open Telemetry Setup] + +* Better handling of Eclipse Static weaving (https://issues.apache.org/jira/browse/CAUSEWAY-3942[CAUSEWAY-3942], link:https://issues.apache.org/jira/browse/CAUSEWAY-3967[CAUSEWAY-3967], link:https://issues.apache.org/jira/browse/CAUSEWAY-3959[CAUSEWAY-3959], link:https://issues.apache.org/jira/browse/CAUSEWAY-3969[CAUSEWAY-3969]) + + +== New Feature + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3989[CAUSEWAY-3989] - [CommandLog] Bulk-Export and -Upload of Commands +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3982[CAUSEWAY-3982] - extend auditing to only log on updates, not create or delete. +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3975[CAUSEWAY-3975] - Open Telemetry Integration + + +== Improvement + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3988[CAUSEWAY-3988] - [Security] Support for Env Var provided HMAC Secret +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3984[CAUSEWAY-3984] - [Programming Model] Remove Support for Property Clear Methods +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3969[CAUSEWAY-3969] - [JPA] Fail early on inconsistent weave state within discovered entity type hierarchies +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3964[CAUSEWAY-3964] - Metamodel Inspector Support for Type Hierarchy +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3959[CAUSEWAY-3959] - [JPA] Build framework-provided Entities using Static Weaving +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3948[CAUSEWAY-3948] - Pickup Webjar Version Strings automatically from Classpath +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3945[CAUSEWAY-3945] - [Wicket Viewer] Disable client-side Caching for Tabular Downloads (eg Excel) +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3942[CAUSEWAY-3942] - Support EclipseLink static weaving automatically. +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3940[CAUSEWAY-3940] - Metamodel Validation Errors are misleading when Issue is just a missing -parameters Compiler Flag +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3939[CAUSEWAY-3939] - Viewmodel Bookmark Overhaul +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3937[CAUSEWAY-3937] - [Applib/Core] Grid Loading Overhaul +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3904[CAUSEWAY-3904] - [Wicket Viewer] Select2 with Object Icons +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3967[CAUSEWAY-3967] - [JPA] Framework Consuming App fails to bookmark Entities when Weaving is enabled +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3630[CAUSEWAY-3630] - [Wicket Viewer] Simplified Tabular Data Integration +* link:https://issues.apache.org/jira/browse/CAUSEWAY-2445[CAUSEWAY-2445] - [Ongoing] CI Maintenance + + +== Bug + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3992[CAUSEWAY-3992] - [Wicket Viewer] Dropdown Menu Clicks sometimes ignored +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3991[CAUSEWAY-3991] - Metamodel Introspection Policy not honored for Java Records as Viewmodels +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3987[CAUSEWAY-3987] - [Wicket Viewer] Regression - Latest Webjar PDFJS breaks PDF integration +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3983[CAUSEWAY-3983] - [Wicket Viewer] Empty Tabs should be hidden (Regression) +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3976[CAUSEWAY-3976] - [Wicket Viewer] Table Row Actions Redirect might fail if behind Reverse Proxy +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3972[CAUSEWAY-3972] - [Commons] Internal OneShot Util may deadlock +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3971[CAUSEWAY-3971] - [Wicket Viewer] Switching between Layout Variants may result in Members staying hidden +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3966[CAUSEWAY-3966] - ApplicationFeatureViewModel may fail to properly instantiate +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3965[CAUSEWAY-3965] - [Metamodel] Type Hierarchy Introspection misses out on Interfaces +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3961[CAUSEWAY-3961] - [Wicket Viewer] Actions in Tables have wrong Result Routing +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3960[CAUSEWAY-3960] - [Wicket Viewer] Actions in Tables have wrong Usability/Visibility Logic +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3958[CAUSEWAY-3958] - [Wicket Viewer] Downloadlink may fail with Network Error +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3950[CAUSEWAY-3950] - [Wicket Viewer] Upload Button may trigger Download of same File +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3949[CAUSEWAY-3949] - Unstable Tests +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3946[CAUSEWAY-3946] - NPE in EntityChangeTrackerDefault when Logging with DEBUG level +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3944[CAUSEWAY-3944] - [JPA] Collection Mementos may taint Owner Entity State +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3938[CAUSEWAY-3938] - [Wicket Viewer] Editing uninitialized mandatory property causes exception +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3913[CAUSEWAY-3913] - [Layout] Inconsistent slot-in handling when feature should appear more than once +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3899[CAUSEWAY-3899] - NPE guard for DomainChangeRecord + + +== Dependency upgrade + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3947[CAUSEWAY-3947] - Migrate to Jackson 3.x +* Upgrade to Spring Boot 4.0.5 +* Upgrade to EclipseLink 5.0.0 + + +== Task + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3990[CAUSEWAY-3990] - 4.0.0-M2 release tasks + + +== Documentation + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3979[CAUSEWAY-3979] - DefaultRoutingService is no longer used (since v2) +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3911[CAUSEWAY-3911] - Adopt Tip&Tail + + + +== Won't Do + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3963[CAUSEWAY-3963] - WONT DO - [Debug] For every Type introspected, keep track of what triggered the Introspection +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3744[CAUSEWAY-3744] - [Abandoned] For JPA dynamic weaving, implement LoadTimeWeaverAware as a way... + +== Duplicate + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3912[CAUSEWAY-3912] - [Duplicate] Per Viewer Service Filtering diff --git a/antora/components/relnotes/modules/ROOT/pages/about.adoc b/antora/components/relnotes/modules/ROOT/pages/about.adoc index 72b28b65448..bd4b0066f62 100644 --- a/antora/components/relnotes/modules/ROOT/pages/about.adoc +++ b/antora/components/relnotes/modules/ROOT/pages/about.adoc @@ -16,6 +16,16 @@ This table summarises all releases of Apache Causeway to date. | Bugs | Detail +| 12th June 2026 +| 4.0.0-M2 +a| Apache Causeway 4.0.0-M2 +| 3 +|15 +|19 +| +* xref:relnotes:ROOT:2026/4.0.0-M2/relnotes.adoc[Release Notes] +* xref:relnotes:ROOT:2026/4.0.0-M2/mignotes.adoc[Migration Notes] + | 9th Apr 2026 | 3.6.0 a| Apache Causeway 3.6.0 diff --git a/antora/supplemental-ui/doap_causeway.rdf b/antora/supplemental-ui/doap_causeway.rdf index 996699c6aa3..a208f9253db 100644 --- a/antora/supplemental-ui/doap_causeway.rdf +++ b/antora/supplemental-ui/doap_causeway.rdf @@ -36,6 +36,14 @@ <category rdf:resource="http://projects.apache.org/category/web-framework" /> + <release> + <Version> + <name>causeway</name> + <created>2026-06-12</created> + <revision>4.0.0-M2</revision> + </Version> + </release> + <release> <Version> <name>causeway</name>
