This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch v3 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 11383028457313df8cda47cad1f0fea47ee7f8be Merge: e045730dd2f 8f1a665c92c Author: Dan Haywood <[email protected]> AuthorDate: Sun Oct 12 23:22:55 2025 +0100 Merge branch '3.4.0' into v3 .../modules/ROOT/pages/2025/3.4.0/mignotes.adoc | 12 +++---- .../modules/ROOT/pages/2025/3.4.0/relnotes.adoc | 42 ++++++++++++++++++++++ core/adoc/modules/_overview/pages/about.adoc | 2 +- 3 files changed, 49 insertions(+), 7 deletions(-) diff --cc antora/components/relnotes/modules/ROOT/pages/2025/3.4.0/mignotes.adoc index 4d17780e5fb,532b5a58313..b460c456cc8 --- a/antora/components/relnotes/modules/ROOT/pages/2025/3.4.0/mignotes.adoc +++ b/antora/components/relnotes/modules/ROOT/pages/2025/3.4.0/mignotes.adoc @@@ -3,35 -3,20 +3,35 @@@ :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 a [...] :page-partial: -In link:https://issues.apache.org/jira/browse/CAUSEWAY-3896[CAUSEWAY-3896] we made a small change to the API for the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactor]'s async programming model. +== Changes to the Wrapper Factory API - Control classes `SynControl` and `AsyncControl` have been slightly modified, -For example: ++Control classes `SynControl` and `AsyncControl` have been slightly modified, +those are immutable now but do support 'withers' to setup the desired control. + - Factories `SynControl.control()` and `AsyncControl.control()` were ++Factories `SynControl.control()` and `AsyncControl.control()` were +renamed to `#defaults()`. + - `WrapperFactory.asyncWrap` and other `async*` sibling methods no longer return a `Future<T>` ++`WrapperFactory.asyncWrap` and other `async*` sibling methods no longer return a `Future<T>` +but an `AsyncProxy<T>` which allows interaction with the proxied domain +in a more type safe manner. [source,java] +.Example usage ---- -var counter = bookmarkService.lookup(bookmark, Counter.class).orElseThrow(); +// transaction scoped call to retrieve an attached counter entity +var counter = bookmarkService + .lookup(bookmark, Counter.class).orElseThrow(); + +// returns a Future<Counter> +var proxy = wrapperFactory.asyncWrap(counter) + .applyAsync(Counter::bumpUsingDeclaredAction); - ++ +// then later ... -var counter = wrapperFactory.asyncWrap(counter) // <.> - .applyAsync(Counter::bumpUsingDeclaredAction) - .tryGet(5, TimeUnit.SECONDS) // <.> - .valueAsNonNullElseFail(); +// returns the detached counter entity +var counter2 = proxy + .tryGet(5, TimeUnit.SECONDS) // blocking - .valueAsNonNullElseFail(); ++ .valueAsNonNullElseFail(); -assertThat(counter.getNum()).isEqualTo(2L); +assertThat(counter2.getNum()).isEqualTo(2L); - ---- + ---- -<.> returns the detached counter entity -<.> wait max 5 sec to allow executor to complete before continuing diff --cc antora/components/relnotes/modules/ROOT/pages/2025/3.4.0/relnotes.adoc index fc22d87b7ee,bebd4232d07..fc0b5676595 --- a/antora/components/relnotes/modules/ROOT/pages/2025/3.4.0/relnotes.adoc +++ b/antora/components/relnotes/modules/ROOT/pages/2025/3.4.0/relnotes.adoc @@@ -4,16 -4,20 +4,58 @@@ :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 a [...] :page-partial: + This is primarily a maintenance release. + It includes an upgrade to Spring Boot 3.5, as well as various bug fixes. + + The API for the `Wrapper` programming model has been overhauled, see the xref:./mignotes.adoc[migration notes]. + + This is primarily a bug-fix release, also including the upgrade to Spring Boot 3.5. + + + == New Feature + + * link:https://issues.apache.org/jira/browse/CAUSEWAY-3886[CAUSEWAY-3886] - Utility to measure metaclass memory usage using jmx + * link:https://issues.apache.org/jira/browse/CAUSEWAY-3896[CAUSEWAY-3896] - [Wrapper] Async Wrapping Programming Model Overhaul + + ++== Improvement ++ ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3891[CAUSEWAY-3891] - `pdf.js` download response allows caching, leads to confusing behaviour for end-users. ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3884[CAUSEWAY-3884] - [Persistence] Flesh out `EntityOrmMetadata` support for EclipseLink ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3883[CAUSEWAY-3883] - `WrapperFactory` leaks memory (metaspace) every time it is called. ++ ++ ++== Bug ++ ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3893[CAUSEWAY-3893] - `CausewayConfiguration#valueOf(..)` potentially throws preventing App Context Initialization ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3888[CAUSEWAY-3888] - [Tabular] Out of Memory issues when exporting large Tabular Data to XLSX ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3881[CAUSEWAY-3881] - [Wicket Viewer] `BookmarkedPagesPanel` throws when click on 'Clear all' ++ ++ ++== Dependency upgrade ++ ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3855[CAUSEWAY-3855] - Upgrade to Spring Boot 3.5 ++ ++ ++== Documentation ++ ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3887[CAUSEWAY-3887] - Markdown `ComponentFactory` not found from SimpleApp ++ ++ ++== Task ++ ++* link:https://issues.apache.org/jira/browse/CAUSEWAY-3882[CAUSEWAY-3882] - 3.4.0 release activities ++ + +This is primarily a bug-fix release, also including the upgrade to Spring Boot 3.5. + + +== New Feature + +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3886[CAUSEWAY-3886] - Utility to measure metaclass memory usage using jmx +* link:https://issues.apache.org/jira/browse/CAUSEWAY-3896[CAUSEWAY-3896] - [Wrapper] Async Wrapping Programming Model Overhaul + + == Improvement * link:https://issues.apache.org/jira/browse/CAUSEWAY-3891[CAUSEWAY-3891] - `pdf.js` download response allows caching, leads to confusing behaviour for end-users.
