You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/03/21 04:41:04 UTC

[isis] branch master updated: ISIS-2980: GridSystemServiceBootstrap: fixes GridReaderUsingJaxb never initialized

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new add7e33  ISIS-2980: GridSystemServiceBootstrap: fixes GridReaderUsingJaxb never initialized
add7e33 is described below

commit add7e331e894bc8bb743d796f5e0e06dabe0840d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 21 05:40:56 2022 +0100

    ISIS-2980: GridSystemServiceBootstrap: fixes GridReaderUsingJaxb never
    initialized
---
 .../core/metamodel/_testing/MetaModelContext_forTesting.java  |  6 ++++--
 .../services/grid/bootstrap3/GridSystemServiceBootstrap.java  | 11 +++++++----
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
index 6f81556..2825468 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
@@ -439,12 +439,14 @@ implements MetaModelContext {
     private final GridService createGridService() {
         return new GridServiceDefault(
             getGridLoaderService(), _Lists.of(
-                    new GridSystemServiceBootstrap(this::getGridReader,
+                    new GridSystemServiceBootstrap(
                             getSpecificationLoader(),
                             getTranslationService(),
                             getJaxbService(),
                             getMessageService(),
-                            getSystemEnvironment()))); // support reloading
+                            getSystemEnvironment())
+                            .setGridReader(getGridReader())
+                    )); // support reloading
     }
 
     @Getter(lazy = true)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java
index 451d309..512bd86 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java
@@ -30,9 +30,9 @@ import java.util.stream.Collectors;
 import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.inject.Provider;
 
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -78,7 +78,9 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
+import lombok.Setter;
 import lombok.val;
+import lombok.experimental.Accessors;
 import lombok.extern.log4j.Log4j2;
 
 @Service
@@ -92,11 +94,12 @@ extends GridSystemServiceAbstract<BS3Grid> {
     public static final String TNS = "http://isis.apache.org/applib/layout/grid/bootstrap3";
     public static final String SCHEMA_LOCATION = "http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd";
 
-    private Provider<GridReaderUsingJaxb> gridReaderProvider;
+    @Inject @Lazy // circular dependency (late binding)
+    @Setter @Accessors(chain = true) // JUnit support
+    private GridReaderUsingJaxb gridReader;
 
     @Inject
     public GridSystemServiceBootstrap(
-            final Provider<GridReaderUsingJaxb> gridReaderProvider,
             final SpecificationLoader specificationLoader,
             final TranslationService translationService,
             final JaxbService jaxbService,
@@ -127,7 +130,7 @@ extends GridSystemServiceAbstract<BS3Grid> {
         try {
             final String content = _Resources.loadAsStringUtf8(getClass(), "GridFallbackLayout.xml");
             return Optional.ofNullable(content)
-                    .map(xml -> gridReaderProvider.get().loadGrid(xml))
+                    .map(xml -> gridReader.loadGrid(xml))
                     .filter(BS3Grid.class::isInstance)
                     .map(BS3Grid.class::cast)
                     .map(bs3Grid -> withDomainClass(bs3Grid, domainClass))