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