This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/main by this push:
new b9a5395db5e Bumps Spring Boot 4.0.0->4.0.1
b9a5395db5e is described below
commit b9a5395db5eabe62a50cdc62138b6f2d85fc2ce6
Author: andi-huber <[email protected]>
AuthorDate: Thu Dec 18 20:33:42 2025 +0100
Bumps Spring Boot 4.0.0->4.0.1
- also bumps asm 9.9 -> 9.0.1
- fixes rest client issues
- makes object not found exceptions more verbose
---
.../unrecoverable/ObjectNotFoundException.java | 9 +++++
bom/pom.xml | 6 +--
core/config/pom.xml | 2 +-
parent/pom.xml | 2 +-
.../jpa/rest/JpaRestEndpointService.java | 46 ++++++++++++++++------
.../testdomain/rest/jpa/RestServiceTest.java | 12 ++----
starters/pom.xml | 2 +-
.../viewer/wicket/model/models/UiObjectWkt.java | 14 +++----
8 files changed, 59 insertions(+), 34 deletions(-)
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/exceptions/unrecoverable/ObjectNotFoundException.java
b/api/applib/src/main/java/org/apache/causeway/applib/exceptions/unrecoverable/ObjectNotFoundException.java
index 1d410da9608..05ac12ef369 100644
---
a/api/applib/src/main/java/org/apache/causeway/applib/exceptions/unrecoverable/ObjectNotFoundException.java
+++
b/api/applib/src/main/java/org/apache/causeway/applib/exceptions/unrecoverable/ObjectNotFoundException.java
@@ -19,6 +19,7 @@
package org.apache.causeway.applib.exceptions.unrecoverable;
import org.apache.causeway.applib.exceptions.UnrecoverableException;
+import org.apache.causeway.applib.services.bookmark.Bookmark;
/**
* Indicates that the persistence context was unable to get an instantiate
@@ -36,4 +37,12 @@ public ObjectNotFoundException(final String oid) {
public ObjectNotFoundException(final String oid, final Throwable cause) {
super("Object not found in store with oid " + oid, cause);
}
+
+ public ObjectNotFoundException(final Bookmark bookmark) {
+ super("Object not found in store with bookmark " + bookmark);
+ }
+
+ public ObjectNotFoundException(final Bookmark bookmark, final Throwable
cause) {
+ super("Object not found in store with bookmark " + bookmark, cause);
+ }
}
diff --git a/bom/pom.xml b/bom/pom.xml
index 5de9c4ce076..e7f971e6d98 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -39,7 +39,7 @@ identified
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>4.0.0</version>
+ <version>4.0.1</version>
<relativePath />
</parent>
<groupId>org.apache.causeway</groupId>
@@ -64,7 +64,7 @@ identified
<archunit.version>1.4.1</archunit.version>
<asciidoctorj.version>3.0.1</asciidoctorj.version>
- <asm.version>9.9</asm.version> <!-- keep in sync with
+ <asm.version>9.9.1</asm.version> <!-- keep in sync with
org.eclipse.persistence:org.eclipse.persistence.asm -->
<approvaltests.version>26.0.0</approvaltests.version>
@@ -144,7 +144,7 @@ identified
<sql-formatter.version>2.0.5</sql-formatter.version>
<snakeyaml.version>2.0</snakeyaml.version>
- <spring-boot.version>4.0.0</spring-boot.version>
+ <spring-boot.version>4.0.1</spring-boot.version>
<surefire-plugin.argLine>
-Xmx384m
diff --git a/core/config/pom.xml b/core/config/pom.xml
index 7ebed858f10..fe7041fef7d 100644
--- a/core/config/pom.xml
+++ b/core/config/pom.xml
@@ -68,7 +68,7 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>9.9</version>
+ <version>9.9.1</version>
</dependency>
</dependencies>
</plugin>
diff --git a/parent/pom.xml b/parent/pom.xml
index b120518c0e4..2db2e185c6c 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -158,7 +158,7 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>9.9</version>
+ <version>9.9.1</version>
</dependency>
</dependencies>
</plugin>
diff --git
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
index 1704dace66c..b8867ed3861 100644
---
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
+++
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
@@ -47,6 +47,7 @@
import org.apache.causeway.commons.collections.Can;
import org.apache.causeway.commons.functional.Try;
import org.apache.causeway.commons.internal.base._Bytes;
+import org.apache.causeway.commons.io.DataSource;
import org.apache.causeway.commons.io.JsonUtils;
import org.apache.causeway.core.config.CausewayConfiguration;
import org.apache.causeway.core.config.applib.RestfulPathProvider;
@@ -143,7 +144,12 @@ public void write(final Object t, @Nullable final
MediaType contentType, final H
protected Builder restClient() {
return RestClient.builder()
- .messageConverters(converters->converters.add(0, new
CausewayMessageConverter()))
+ .configureMessageConverters(builder->{
+ builder
+ .registerDefaults()
+ .addCustomConverter(new CausewayMessageConverter());
+ })
+ //.messageConverters(converters->converters.add(0, new
CausewayMessageConverter()))
.baseUrl(baseUrl())
.defaultHeaders(headers ->
headers.setBasicAuth(LdapConstants.SVEN_PRINCIPAL, "pass"));
}
@@ -180,8 +186,12 @@ public Try<JpaBook> getRecommendedBookOfTheWeek(final
RestClient client) {
var response = request(client.post(),
"/actions/recommendedBookOfTheWeek/invoke", actParamModel())
.retrieve();
- var entity = response.body(JpaBook.class);
- return Try.success(entity);
+ //TODO seems broken since Spring Boot 4.0.1
+// var entity = response.body(JpaBook.class);
+// return Try.success(entity);
+
+ var json = response.body(String.class);
+ return JsonUtils.tryRead(JpaBook.class, json);
}
public Try<BookDto> getRecommendedBookOfTheWeekDto(final RestClient
client) {
@@ -197,10 +207,15 @@ public Try<Can<JpaBook>> getMultipleBooks(final
RestClient client) throws JAXBEx
.addActionParameter("nrOfBooks", 3))
.retrieve();
- List<JpaBook> books = response
- .body(new ParameterizedTypeReference<List<JpaBook>>() {});
+ var json = response.body(String.class);
+ return JsonUtils.tryReadAsList(JpaBook.class,
DataSource.ofStringUtf8(json))
+ .mapSuccessWhenPresent(Can::ofCollection);
- return Try.success(Can.ofCollection(books));
+ //TODO seems broken since Spring Boot 4.0.1
+// List<JpaBook> books = response
+// .body(new ParameterizedTypeReference<List<JpaBook>>() {});
+//
+// return Try.success(Can.ofCollection(books));
}
public Try<JpaBook> storeBook(final RestClient client, final JpaBook
newBook) throws JAXBException {
@@ -208,8 +223,12 @@ public Try<JpaBook> storeBook(final RestClient client,
final JpaBook newBook) th
.addActionParameter("newBook", BookDto.from(newBook).encode()))
.retrieve();
- var entity = response.body(JpaBook.class);
- return Try.success(entity);
+ var json = response.body(String.class);
+ return JsonUtils.tryRead(JpaBook.class, json);
+
+ //TODO seems broken since Spring Boot 4.0.1
+// var entity = response.body(JpaBook.class);
+// return Try.success(entity);
}
public Try<BookDto> getRecommendedBookOfTheWeekAsDto(final RestClient
client) {
@@ -256,10 +275,15 @@ public Try<Can<JpaBook>>
getBooksFromInventoryAsJaxbVm(final RestClient client)
.body(actParamModel().toJson())
.retrieve();
- List<JpaBook> books = response
- .body(new ParameterizedTypeReference<List<JpaBook>>() {});
+ var json = response.body(String.class);
+ return JsonUtils.tryReadAsList(JpaBook.class,
DataSource.ofStringUtf8(json))
+ .mapSuccessWhenPresent(Can::ofCollection);
- return Try.success(Can.ofCollection(books));
+ //TODO seems broken since Spring Boot 4.0.1
+// List<JpaBook> books = response
+// .body(new ParameterizedTypeReference<List<JpaBook>>() {});
+//
+// return Try.success(Can.ofCollection(books));
}
public Try<CalendarEvent> echoCalendarEvent(
diff --git
a/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
b/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
index c68bbddf3dc..a7ebcb919e4 100644
---
a/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
+++
b/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
@@ -88,10 +88,8 @@ void httpSessionInfo() {
@Test @Order(2)
void bookOfTheWeek_viaRestEndpoint() {
- var entity = restService.getRecommendedBookOfTheWeek(restClient)
- .ifFailureFail();
-
- var bookOfTheWeek = entity.valueAsNonNullElseFail();
+ var bookOfTheWeek = restService.getRecommendedBookOfTheWeek(restClient)
+ .valueAsNonNullElseFail();
assertNotNull(bookOfTheWeek);
assertEquals("Book of the week", bookOfTheWeek.getName());
@@ -160,10 +158,8 @@ void inventoryAsJaxbVm_viaRestEndpoint() {
@Test @Order(8)
void listBooks_fromInventoryAsJaxbVm_viaRestEndpoint() {
- var entity = restService.getBooksFromInventoryAsJaxbVm(restClient)
- .ifFailure(Assertions::fail);
-
- var books = entity.valueAsNonNullElseFail();
+ var books = restService.getBooksFromInventoryAsJaxbVm(restClient)
+ .valueAsNonNullElseFail();
var expectedBookTitles = JpaTestFixtures.expectedBookTitles();
diff --git a/starters/pom.xml b/starters/pom.xml
index f68dbb697c7..1f961bfbdb9 100644
--- a/starters/pom.xml
+++ b/starters/pom.xml
@@ -62,7 +62,7 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
- <version>9.9</version>
+ <version>9.9.1</version>
</dependency>
</dependencies>
</plugin>
diff --git
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
index e19af684d01..a1720b9bdf8 100644
---
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
+++
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
@@ -156,9 +156,8 @@ public boolean isInlinePrompt() {
@Override
public String getHint(final Component component, final String keyName) {
final ComponentHintKey componentHintKey =
ComponentHintKey.create(super.getMetaModelContext(), component, keyName);
- if(componentHintKey != null) {
+ if(componentHintKey != null)
return componentHintKey.get(getOwnerBookmark());
- }
return null;
}
@@ -181,7 +180,7 @@ public String getTitle() {
}
@Override
- public ObjectIcon getIcon(IconSize iconSize) {
+ public ObjectIcon getIcon(final IconSize iconSize) {
return getManagedObject().getIcon(iconSize);
}
@@ -218,17 +217,14 @@ public UiAttributeWkt getPropertyModel(
// in other words: this guard only works if every entity has at least
a property
var ownerPojo = bookmarkedObjectModel.managedObject()
.getPojo();
- if(ownerPojo==null) {
- throw new ObjectNotFoundException(
- bookmarkedObjectModel.bookmark().identifier());
- }
+ if(ownerPojo==null)
+ throw new
ObjectNotFoundException(bookmarkedObjectModel.bookmark());
var propIdentifier = property.getFeatureIdentifier();
var propertyModels = propertyModels();
final UiAttributeWkt existingPropertyModel =
propertyModels.get(propIdentifier);
- if (existingPropertyModel != null) {
+ if (existingPropertyModel != null)
return existingPropertyModel;
- }
var propertyInteractionModel = new PropertyInteractionWkt(
bookmarkedObjectModel,