This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch maintenance-branch
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/maintenance-branch by this
push:
new 2f33343eab7 CAUSEWAY-3973: [v2] makes the backport a non-breaking
change for consuming apps (part 2)
2f33343eab7 is described below
commit 2f33343eab7dc3c48a78e9960ff37e0554e7f3f1
Author: andi-huber <[email protected]>
AuthorDate: Wed Mar 11 20:13:41 2026 +0100
CAUSEWAY-3973: [v2] makes the backport a non-breaking change for
consuming apps (part 2)
---
.../layout/resource/LayoutResourceLoader.java | 4 +--
.../services/grid/LayoutResourceLookup.java | 1 +
.../services/grid/spi/LayoutResourceLoader.java | 31 ++++++++++++++++++++++
3 files changed, 34 insertions(+), 2 deletions(-)
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/layout/resource/LayoutResourceLoader.java
b/api/applib/src/main/java/org/apache/causeway/applib/layout/resource/LayoutResourceLoader.java
index b890aa387dd..8baa4f15162 100644
---
a/api/applib/src/main/java/org/apache/causeway/applib/layout/resource/LayoutResourceLoader.java
+++
b/api/applib/src/main/java/org/apache/causeway/applib/layout/resource/LayoutResourceLoader.java
@@ -35,7 +35,7 @@ public interface LayoutResourceLoader {
*
* <p>Implementing beans may chose to be indifferent by returning an empty
{@link Try}
*/
- Try<LayoutResource> tryLoadLayoutResource(
+ Try<? extends LayoutResource> tryLoadLayoutResource(
final @NonNull Class<?> domainClass,
final @NonNull String candidateResourceName);
@@ -46,7 +46,7 @@ Try<LayoutResource> tryLoadLayoutResource(
*
* <p>Silently ignores exceptions underneath, if any.
*/
- default Optional<LayoutResource> lookupLayoutResource(
+ default Optional<? extends LayoutResource> lookupLayoutResource(
final @NonNull Class<?> domainClass,
final @NonNull String candidateResourceName) {
return tryLoadLayoutResource(domainClass, candidateResourceName)
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java
index a849a263e22..cf13f865fb5 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java
@@ -163,6 +163,7 @@ private Optional<LayoutResource>
lookupLayoutResourceUsingLoaders(
return layoutResourceLoaders.stream()
.flatMap(loader->loader.lookupLayoutResource(type,
candidateResourceName).stream())
+ .map(LayoutResource.class::cast)
.findFirst();
}
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/spi/LayoutResourceLoader.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/spi/LayoutResourceLoader.java
index 524dacfa091..d9cdf63042f 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/spi/LayoutResourceLoader.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/spi/LayoutResourceLoader.java
@@ -18,10 +18,41 @@
*/
package org.apache.causeway.core.metamodel.services.grid.spi;
+import java.util.Optional;
+
+import org.apache.causeway.applib.layout.resource.LayoutResource;
+import org.apache.causeway.commons.functional.Try;
+import org.springframework.lang.NonNull;
+
/**
* @deprecated was promoted to applib
*/
@Deprecated(forRemoval = true)
public interface LayoutResourceLoader extends
org.apache.causeway.applib.layout.resource.LayoutResourceLoader{
+ /**
+ * Try to locate and load a {@link LayoutResource} by type and name.
+ *
+ * <p>Implementing beans may chose to be indifferent by returning an empty
{@link Try}
+ */
+ @Override
+
Try<org.apache.causeway.core.metamodel.services.grid.spi.LayoutResource>
tryLoadLayoutResource(
+ final @NonNull Class<?> domainClass,
+ final @NonNull String candidateResourceName);
+
+ /**
+ * Optionally returns a {@link LayoutResource} based
+ * on whether it could be resolved by type and name
+ * and successfully read.
+ *
+ * <p>Silently ignores exceptions underneath, if any.
+ */
+ @Override
+ default
Optional<org.apache.causeway.core.metamodel.services.grid.spi.LayoutResource>
lookupLayoutResource(
+ final @NonNull Class<?> domainClass,
+ final @NonNull String candidateResourceName) {
+ return tryLoadLayoutResource(domainClass, candidateResourceName)
+ .getValue();
+ }
+
}