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();
+    }
+       
 }

Reply via email to