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 83a1e5ad7c ISIS-3198: refactoring: purge RuntimeContextBase
83a1e5ad7c is described below

commit 83a1e5ad7cb81dd831cd6377a9199674dfeb0ddd
Author: Andi Huber <[email protected]>
AuthorDate: Wed Sep 14 17:11:26 2022 +0200

    ISIS-3198: refactoring: purge RuntimeContextBase
---
 core/runtime/src/main/java/module-info.java        |  1 -
 .../core/runtime/context/RuntimeContextBase.java   | 72 ----------------------
 .../restfulobjects/rendering/IResourceContext.java | 46 +++++++++++---
 .../viewer/context/ResourceContext.java            | 51 ++-------------
 .../viewer/resources/UserResourceServerside.java   | 11 +---
 5 files changed, 44 insertions(+), 137 deletions(-)

diff --git a/core/runtime/src/main/java/module-info.java 
b/core/runtime/src/main/java/module-info.java
index 76908dc22f..baa948bb04 100644
--- a/core/runtime/src/main/java/module-info.java
+++ b/core/runtime/src/main/java/module-info.java
@@ -18,7 +18,6 @@
  */
 module org.apache.isis.core.runtime {
     exports org.apache.isis.core.runtime;
-    exports org.apache.isis.core.runtime.context;
     exports org.apache.isis.core.runtime.events;
 
     requires java.annotation;
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java
deleted file mode 100644
index 3d6a8b19e4..0000000000
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.core.runtime.context;
-
-import java.util.function.Supplier;
-
-import org.apache.isis.applib.services.iactn.InteractionProvider;
-import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
-import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
-import 
org.apache.isis.core.security.authentication.manager.AuthenticationManager;
-
-import lombok.Getter;
-import lombok.val;
-
-/**
- *
- * @since 2.0
- *
- */
-public abstract class RuntimeContextBase {
-
-    // -- FINAL FIELDS
-
-    @Getter protected final MetaModelContext metaModelContext;
-
-    @Getter protected final InteractionLayerTracker interactionLayerTracker;
-    @Getter protected final InteractionService interactionService;
-    @Getter protected final AuthenticationManager authenticationManager;
-    @Getter protected final TransactionService transactionService;
-    @Getter protected final Supplier<ManagedObject> homePageSupplier;
-    @Getter protected final ObjectManager objectManager;
-
-    // -- SINGLE ARG CONSTRUCTOR
-
-    protected RuntimeContextBase(MetaModelContext mmc) {
-        this.metaModelContext= mmc;
-        val serviceRegistry = mmc.getServiceRegistry();
-        this.objectManager = mmc.getObjectManager();
-        this.transactionService = mmc.getTransactionService();
-        this.homePageSupplier = mmc::getHomePageAdapter;
-        this.interactionService = 
serviceRegistry.lookupServiceElseFail(InteractionService.class);
-        this.authenticationManager = 
serviceRegistry.lookupServiceElseFail(AuthenticationManager.class);
-        this.interactionLayerTracker = 
serviceRegistry.lookupServiceElseFail(InteractionLayerTracker.class);
-    }
-
-    // -- AUTH
-
-    public InteractionProvider getInteractionProvider() {
-        return interactionLayerTracker;
-    }
-
-}
diff --git 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
index de1605d15c..735ff059ce 100644
--- 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
+++ 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
@@ -28,6 +28,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.iactn.InteractionProvider;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.context.HasMetaModelContext;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import 
org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer;
@@ -41,7 +42,7 @@ import 
org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationSer
  *
  * @since 1.x  {@index}
  */
-public interface IResourceContext {
+public interface IResourceContext extends HasMetaModelContext {
 
     /**
      * Prepends with the servlet's base URI
@@ -74,16 +75,37 @@ public interface IResourceContext {
     List<List<String>> getFollowLinks();
     boolean isValidateOnly();
 
-    boolean honorUiHints();
+    default boolean honorUiHints() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isHonorUiHints();
+    }
+
+    default boolean objectPropertyValuesOnly() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isObjectPropertyValuesOnly();
+    }
+
+    default boolean suppressDescribedByLinks() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressDescribedByLinks();
+    }
 
-    boolean objectPropertyValuesOnly();
+    default boolean suppressUpdateLink() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressUpdateLink();
+    }
 
-    boolean suppressDescribedByLinks();
-    boolean suppressUpdateLink();
-    boolean suppressMemberId();
-    boolean suppressMemberLinks();
-    boolean suppressMemberExtensions();
-    boolean suppressMemberDisabledReason();
+    default boolean suppressMemberId() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberId();
+    }
+
+    default boolean suppressMemberLinks() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberLinks();
+    }
+
+    default boolean suppressMemberExtensions() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberExtensions();
+    }
+
+    default boolean suppressMemberDisabledReason() {
+        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberDisabledReason();
+    }
 
     /**
      * To avoid infinite loops when eagerly rendering graphs
@@ -100,7 +122,11 @@ public interface IResourceContext {
      */
     RepresentationService.Intent getIntent();
 
-    InteractionProvider getInteractionProvider();
+    @Deprecated // use directly
+    default InteractionProvider getInteractionProvider() {
+        return getInteractionService();
+    }
+
     MetaModelContext getMetaModelContext();
 
     // -- UTILITY
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
index 14d0474b0a..6ac8b0707b 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
@@ -40,7 +40,6 @@ import 
org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.object.ManagedObjects;
-import org.apache.isis.core.runtime.context.RuntimeContextBase;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
 import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest.DomainModel;
@@ -60,9 +59,11 @@ import lombok.Setter;
 import lombok.val;
 
 public class ResourceContext
-extends RuntimeContextBase
 implements IResourceContext {
 
+    @Getter(onMethod_={@Override})
+    private MetaModelContext metaModelContext;
+
     @Getter private final HttpHeaders httpHeaders;
     @Getter private final Request request;
     @Getter private final HttpServletRequest httpServletRequest;
@@ -97,7 +98,7 @@ implements IResourceContext {
             final InteractionInitiatedBy interactionInitiatedBy,
             final Map<String, String[]> requestParams) {
 
-        super(metaModelContext);
+        this.metaModelContext = metaModelContext;
 
         this.httpHeaders = httpHeaders;
         //not used ... this.providers = providers;
@@ -222,6 +223,7 @@ implements IResourceContext {
 
     // -- canEagerlyRender
     private Set<Bookmark> rendered = _Sets.newHashSet();
+
     @Override
     public boolean canEagerlyRender(final ManagedObject objectAdapter) {
         return ManagedObjects.bookmark(objectAdapter)
@@ -229,48 +231,6 @@ implements IResourceContext {
         .orElse(true);
     }
 
-    // -- configuration settings
-
-    @Override
-    public boolean honorUiHints() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isHonorUiHints();
-    }
-
-    @Override
-    public boolean objectPropertyValuesOnly() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isObjectPropertyValuesOnly();
-    }
-
-    @Override
-    public boolean suppressDescribedByLinks() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressDescribedByLinks();
-    }
-
-    @Override
-    public boolean suppressUpdateLink() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressUpdateLink();
-    }
-
-    @Override
-    public boolean suppressMemberId() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberId();
-    }
-
-    @Override
-    public boolean suppressMemberLinks() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberLinks();
-    }
-
-    @Override
-    public boolean suppressMemberExtensions() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberExtensions();
-    }
-
-    @Override
-    public boolean suppressMemberDisabledReason() {
-        return 
getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberDisabledReason();
-    }
-
     @Override
     public String restfulUrlFor(final @NonNull String url) {
         return restfulAbsoluteBase + url;
@@ -294,5 +254,4 @@ implements IResourceContext {
     @Setter //(onMethod = @__(@Override))
     private ObjectAdapterLinkTo objectAdapterLinkTo;
 
-
 }
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
index 647ac0bc08..be36841fb5 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
@@ -32,7 +32,6 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
-import 
org.apache.isis.core.security.authentication.manager.AuthenticationManager;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
 import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
@@ -113,19 +112,15 @@ public class UserResourceServerside extends 
ResourceAbstract implements UserReso
         }
     }
 
-    private void logout(ResourceContext resourceContext) {
-
+    private void logout(final ResourceContext resourceContext) {
         val interactionService = resourceContext.getInteractionService();
-        val interactionLayerTracker = 
resourceContext.getInteractionLayerTracker();
-        val authenticationManager = 
resourceContext.getMetaModelContext().getServiceRegistry().lookupServiceElseFail(AuthenticationManager.class);
+        val authenticationManager = resourceContext.getAuthenticationManager();
 
-        interactionLayerTracker
+        interactionService
         .currentInteractionContext()
         .ifPresent(interactionContext->{
-
             authenticationManager.closeSession(interactionContext);
             interactionService.closeInteractionLayers();
-
         });
     }
 

Reply via email to