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 2021/11/21 13:35:00 UTC

[isis] branch master updated: Bump Spring Boot from 2.5.6 to 2.6.0 (2)

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 058ce89  Bump Spring Boot from 2.5.6 to 2.6.0 (2)
058ce89 is described below

commit 058ce8929c342567a911f1259ad9f156604f8b7e
Author: andi-huber <ah...@apache.org>
AuthorDate: Sun Nov 21 14:34:50 2021 +0100

    Bump Spring Boot from 2.5.6 to 2.6.0 (2)
    
    - fixes circular references
    - Since 2.6.0: Relying upon circular references is discouraged and they
    are prohibited by default.
---
 .../_testing/MetaModelContext_forTesting.java      |  2 +-
 .../memento/ObjectMemorizer_builtinHandlers.java   |  4 ++-
 .../bootstrap3/GridSystemServiceBootstrap.java     |  8 +++---
 .../session/InteractionServiceDefault.java         |  5 ++--
 .../wrapper/WrapperFactoryDefault.java             | 29 +++++++++++-----------
 5 files changed, 26 insertions(+), 22 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 1f8d4ce..7fdcb36 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,7 +439,7 @@ implements MetaModelContext {
     private final GridService createGridService() {
         return new GridServiceDefault(
             getGridLoaderService(), _Lists.of(
-                    new GridSystemServiceBootstrap(getGridReader(),
+                    new GridSystemServiceBootstrap(this::getGridReader,
                             getSpecificationLoader(),
                             getTranslationService(),
                             getJaxbService(),
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemorizer_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemorizer_builtinHandlers.java
index a5ce68c..f0476ec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemorizer_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemorizer_builtinHandlers.java
@@ -20,6 +20,8 @@ package org.apache.isis.core.metamodel.objectmanager.memento;
 
 import javax.inject.Inject;
 
+import org.springframework.context.annotation.Lazy;
+
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -28,7 +30,7 @@ final class ObjectMemorizer_builtinHandlers {
 
     public static class MemorizeViaObjectMementoService implements ObjectMemorizer.Handler {
 
-        @Inject private ObjectMementoService objectMementoService;
+        @Inject @Lazy private ObjectMementoService objectMementoService;
 
         @Override
         public boolean isHandling(final ObjectSpecification spec) {
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 920664c..451d309 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,6 +30,7 @@ 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.stereotype.Service;
@@ -91,18 +92,17 @@ 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 final GridReaderUsingJaxb gridReader;
+    private Provider<GridReaderUsingJaxb> gridReaderProvider;
 
     @Inject
     public GridSystemServiceBootstrap(
-            final GridReaderUsingJaxb gridReader,
+            final Provider<GridReaderUsingJaxb> gridReaderProvider,
             final SpecificationLoader specificationLoader,
             final TranslationService translationService,
             final JaxbService jaxbService,
             final MessageService messageService,
             final IsisSystemEnvironment isisSystemEnvironment) {
         super(specificationLoader, translationService, jaxbService, messageService, isisSystemEnvironment);
-        this.gridReader = gridReader;
     }
 
     @Override
@@ -127,7 +127,7 @@ extends GridSystemServiceAbstract<BS3Grid> {
         try {
             final String content = _Resources.loadAsStringUtf8(getClass(), "GridFallbackLayout.xml");
             return Optional.ofNullable(content)
-                    .map(xml -> gridReader.loadGrid(xml))
+                    .map(xml -> gridReaderProvider.get().loadGrid(xml))
                     .filter(BS3Grid.class::isInstance)
                     .map(BS3Grid.class::cast)
                     .map(bs3Grid -> withDomainClass(bs3Grid, domainClass))
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java
index 1fec396..d5b6594 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java
@@ -34,6 +34,7 @@ import javax.inject.Provider;
 
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Service;
@@ -69,8 +70,8 @@ import org.apache.isis.core.security.authentication.InteractionContextFactory;
 
 import lombok.NonNull;
 import lombok.SneakyThrows;
-import lombok.extern.log4j.Log4j2;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Is the factory of {@link Interaction}s.
@@ -101,7 +102,7 @@ implements
     final InteractionScopeLifecycleHandler interactionScopeLifecycleHandler;
 
     // to allow implementations to have dependencies back on this service.
-    @Inject List<TransactionBoundaryAware> transactionBoundaryAwareBeans;
+    @Inject @Lazy List<TransactionBoundaryAware> transactionBoundaryAwareBeans;
 
     @Inject
     public InteractionServiceDefault(
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 21a29f8..bb41e4d 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -36,6 +36,7 @@ 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.springframework.transaction.annotation.Propagation;
 
@@ -121,7 +122,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     @Inject SpecificationLoader specificationLoader;
     @Inject ServiceInjector serviceInjector;
     @Inject _ProxyFactoryService proxyFactoryService; // protected to allow JUnit test
-    @Inject CommandDtoFactory commandDtoFactory;
+    @Inject @Lazy CommandDtoFactory commandDtoFactory;
 
     private final List<InteractionListener> listeners = new ArrayList<>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher>
@@ -186,11 +187,11 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return createProxy(domainObject, syncControl);
     }
 
-    private static boolean equivalent(ImmutableEnumSet<ExecutionMode> first, ImmutableEnumSet<ExecutionMode> second) {
+    private static boolean equivalent(final ImmutableEnumSet<ExecutionMode> first, final ImmutableEnumSet<ExecutionMode> second) {
         return equivalent(first.toEnumSet(), second.toEnumSet());
     }
 
-    private static boolean equivalent(EnumSet<ExecutionMode> first, EnumSet<ExecutionMode> second) {
+    private static boolean equivalent(final EnumSet<ExecutionMode> first, final EnumSet<ExecutionMode> second) {
         return first.containsAll(second) && second.containsAll(first);
     }
 
@@ -222,24 +223,24 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return createMixinProxy(mixee, mixin, syncControl);
     }
 
-    protected <T> T createProxy(T domainObject, SyncControl syncControl) {
+    protected <T> T createProxy(final T domainObject, final SyncControl syncControl) {
         val objAdapter = adaptAndGuardAgainstWrappingNotSupported(domainObject);
         return proxyContextHandler.proxy(domainObject, objAdapter, syncControl);
     }
 
-    protected <T> T createMixinProxy(Object mixee, T mixin, SyncControl syncControl) {
+    protected <T> T createMixinProxy(final Object mixee, final T mixin, final SyncControl syncControl) {
         val mixeeAdapter = adaptAndGuardAgainstWrappingNotSupported(mixee);
         val mixinAdapter = adaptAndGuardAgainstWrappingNotSupported(mixin);
         return proxyContextHandler.mixinProxy(mixin, mixeeAdapter, mixinAdapter, syncControl);
     }
 
     @Override
-    public boolean isWrapper(Object obj) {
+    public boolean isWrapper(final Object obj) {
         return obj instanceof WrappingObject;
     }
 
     @Override
-    public <T> T unwrap(T possibleWrappedDomainObject) {
+    public <T> T unwrap(final T possibleWrappedDomainObject) {
         if(isWrapper(possibleWrappedDomainObject)) {
             val wrappingObject = (WrappingObject) possibleWrappedDomainObject;
             return _Casts.uncheckedCast(wrappingObject.__isis_wrapped());
@@ -463,10 +464,10 @@ public class WrapperFactoryDefault implements WrapperFactory {
         static MemberAndTarget notFound() {
             return new MemberAndTarget(Type.NONE, null, null, null, null);
         }
-        static MemberAndTarget foundAction(ObjectAction action, ManagedObject target, final Method method) {
+        static MemberAndTarget foundAction(final ObjectAction action, final ManagedObject target, final Method method) {
             return new MemberAndTarget(Type.ACTION, action, null, target, method);
         }
-        static MemberAndTarget foundProperty(OneToOneAssociation property, ManagedObject target, final Method method) {
+        static MemberAndTarget foundProperty(final OneToOneAssociation property, final ManagedObject target, final Method method) {
             return new MemberAndTarget(Type.PROPERTY, null, property, target, method);
         }
 
@@ -507,17 +508,17 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
     @Override
-    public boolean addInteractionListener(InteractionListener listener) {
+    public boolean addInteractionListener(final InteractionListener listener) {
         return listeners.add(listener);
     }
 
     @Override
-    public boolean removeInteractionListener(InteractionListener listener) {
+    public boolean removeInteractionListener(final InteractionListener listener) {
         return listeners.remove(listener);
     }
 
     @Override
-    public void notifyListeners(InteractionEvent interactionEvent) {
+    public void notifyListeners(final InteractionEvent interactionEvent) {
         val dispatcher = dispatchersByEventClass.get(interactionEvent.getClass());
         if (dispatcher == null) {
             val msg = String.format("Unknown InteractionEvent %s - "
@@ -545,11 +546,11 @@ public class WrapperFactoryDefault implements WrapperFactory {
     // -- HELPER - SETUP
 
     private <T extends InteractionEvent> void putDispatcher(
-            Class<T> type, BiConsumer<InteractionListener, T> onDispatch) {
+            final Class<T> type, final BiConsumer<InteractionListener, T> onDispatch) {
 
         val dispatcher = new InteractionEventDispatcherTypeSafe<T>() {
             @Override
-            public void dispatchTypeSafe(T interactionEvent) {
+            public void dispatchTypeSafe(final T interactionEvent) {
                 for (InteractionListener l : listeners) {
                     onDispatch.accept(l, interactionEvent);
                 }