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/08/18 12:50:25 UTC
[isis] 02/02: ISIS-3124: fixes running into not-serializable issues
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
commit a6c30cbd4177ad0de9a9f39a7a41325c5ee399f4
Author: andi-huber <ah...@apache.org>
AuthorDate: Thu Aug 18 14:50:14 2022 +0200
ISIS-3124: fixes running into not-serializable issues
---
.../core/metamodel/_testing/MetaModelContext_forTesting.java | 4 ++++
.../isis/core/metamodel/context/HasMetaModelContext.java | 5 +++++
.../apache/isis/core/metamodel/context/MetaModelContext.java | 3 +++
.../core/metamodel/context/MetaModelContext_usingIoc.java | 11 +++++++++++
.../widgets/entitysimplelink/EntityLinkSimplePanel.java | 8 +++-----
.../providers/ObjectAdapterMementoProviderAbstract.java | 9 ++++-----
.../org/apache/isis/viewer/wicket/ui/panels/PanelBase.java | 11 +++--------
7 files changed, 33 insertions(+), 18 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 819067aa0a..f21ae9781a 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
@@ -40,6 +40,7 @@ import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.applib.services.layout.LayoutService;
import org.apache.isis.applib.services.menu.MenuBarsService;
import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
@@ -165,6 +166,9 @@ implements MetaModelContext {
private IsisBeanTypeRegistry isisBeanTypeRegistry;
+ @Builder.Default
+ private PlaceholderRenderService placeholderRenderService = PlaceholderRenderService.fallback();
+
//private Map<String, ManagedObject> serviceAdaptersById;
@Singular
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
index 0ddc758d1b..5d148b16f9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
@@ -27,6 +27,7 @@ import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.iactnlayer.InteractionContext;
import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
@@ -132,6 +133,10 @@ public interface HasMetaModelContext {
return getMetaModelContext().getWrapperFactory();
}
+ default PlaceholderRenderService getPlaceholderRenderService() {
+ return getMetaModelContext().getPlaceholderRenderService();
+ }
+
default Optional<UserLocale> currentUserLocale() {
return getInteractionProvider().currentInteractionContext()
.map(InteractionContext::getLocale);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java
index 3bf2024b06..ee5ab7ad86 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java
@@ -28,6 +28,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
@@ -103,6 +104,8 @@ public interface MetaModelContext {
TransactionService getTransactionService();
+ PlaceholderRenderService getPlaceholderRenderService();
+
ManagedObject getHomePageAdapter();
// cannot move to ServiceRegistry, because applib does not know ManagedObject
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java
index 8fb707d282..2b045a699e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java
@@ -20,6 +20,7 @@ package org.apache.isis.core.metamodel.context;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -28,6 +29,7 @@ import org.apache.isis.applib.services.homepage.HomePageResolverService;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
@@ -103,6 +105,11 @@ class MetaModelContext_usingIoc implements MetaModelContext {
private final ObjectIconService objectIconService =
getSingletonElseFail(ObjectIconService.class);
+ @Getter(lazy=true)
+ private final PlaceholderRenderService placeholderRenderService =
+ getDefault(PlaceholderRenderService.class)
+ .orElseGet(PlaceholderRenderService::fallback);
+
@Getter(lazy=true)
private final TitleService titleService =
getSingletonElseFail(TitleService.class);
@@ -156,6 +163,10 @@ class MetaModelContext_usingIoc implements MetaModelContext {
return iocContainer.getSingletonElseFail(type);
}
+ private <T> Optional<T> getDefault(final Class<T> type) {
+ return iocContainer.select(type).getFirst();
+ }
+
private final _Lazy<Map<String, ManagedObject>> objectAdaptersForBeansOfKnownSort =
_Lazy.threadSafe(this::collectBeansOfKnownSort);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java
index 10fa23f559..01ec44c80f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java
@@ -36,7 +36,6 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.CancelH
import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormComponentPanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
-import lombok.Getter;
import lombok.val;
/**
@@ -120,10 +119,9 @@ implements CancelHintRequired {
// -- DEPENDENCIES
- @Getter(lazy=true)
- private final PlaceholderRenderService placeholderRenderService =
- getCommonContext().lookupService(PlaceholderRenderService.class)
- .orElseGet(PlaceholderRenderService::fallback);
+ private PlaceholderRenderService getPlaceholderRenderService() {
+ return getCommonContext().getPlaceholderRenderService();
+ }
private IsisAppCommonContext getCommonContext() {
return ((HasCommonContext)getModel()).getCommonContext();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index a2a909bd37..7efdc1940b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -158,13 +158,12 @@ extends ChoiceProvider<ObjectMemento> {
/**
* Translate without context: Tooltips, Button-Labels, etc.
*/
- private final String translate(final String input) {
+ private String translate(final String input) {
return getCommonContext().getTranslationService().translate(TranslationContext.empty(), input);
}
- @Getter(lazy=true)
- private final PlaceholderRenderService placeholderRenderService =
- getCommonContext().lookupService(PlaceholderRenderService.class)
- .orElseGet(PlaceholderRenderService::fallback);
+ private PlaceholderRenderService getPlaceholderRenderService() {
+ return getCommonContext().getPlaceholderRenderService();
+ }
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 6c1181a95c..88e8ea0a0f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -51,10 +51,6 @@ import org.apache.isis.viewer.wicket.ui.pages.EmailVerificationUrlService;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
-import lombok.AccessLevel;
-import lombok.Getter;
-import lombok.experimental.Accessors;
-
/**
* Provides the <em>common context</em> for all implementing sub-classes.
* @since 2.0
@@ -145,10 +141,9 @@ implements HasCommonContext {
return pageNavigationService = computeIfAbsent(PageNavigationService.class, pageNavigationService);
}
- @Getter(lazy=true, value = AccessLevel.PROTECTED) @Accessors(makeFinal = true)
- private final PlaceholderRenderService placeholderRenderService =
- getCommonContext().lookupService(PlaceholderRenderService.class)
- .orElseGet(PlaceholderRenderService::fallback);
+ protected PlaceholderRenderService getPlaceholderRenderService() {
+ return getCommonContext().getPlaceholderRenderService();
+ }
protected MessageBroker getMessageBroker() {
return getCommonContext().getMessageBroker()