You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/06/11 07:18:44 UTC
[isis] 01/02: ISIS-2726: removes RuntimeContext,
just use MetaModelContext instead
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2726
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 964c1da84ea4b33332d929a2e6cca079746b6c4c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 08:15:56 2021 +0100
ISIS-2726: removes RuntimeContext, just use MetaModelContext instead
as was suggested in its comment, simplifying an abstraction introduced in ISIS-2033
---
.../isis/core/runtime/context/RuntimeContext.java | 47 ----------------------
.../core/runtime/context/RuntimeContextBase.java | 38 +++--------------
.../restfulobjects/rendering/IResourceContext.java | 5 ---
.../rendering/ReprRendererAbstract.java | 2 +-
.../viewer/restfulobjects/rendering/Responses.java | 2 +-
...entNegotiationServiceForRestfulObjectsV1_0.java | 2 +-
.../viewer/context/ResourceContext.java | 16 ++++----
.../viewer/resources/DomainResourceHelper.java | 2 +-
.../viewer/resources/HomePageReprRenderer.java | 4 +-
.../viewer/resources/JsonParserHelper.java | 2 +-
.../viewer/resources/UserResourceServerside.java | 20 ++++++++-
11 files changed, 39 insertions(+), 101 deletions(-)
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
deleted file mode 100644
index ed366df..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
+++ /dev/null
@@ -1,47 +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 org.apache.isis.applib.services.inject.ServiceInjector;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-
-/**
- * TODO [2033] this was introduced when refactoring, maybe use MetaModelContext instead if possible
- *
- * @since 2.0
- *
- */
-public interface RuntimeContext {
-
- MetaModelContext getMetaModelContext();
-
- InteractionLayerTracker getInteractionTracker();
- IsisConfiguration getConfiguration();
- SpecificationLoader getSpecificationLoader();
- ServiceInjector getServiceInjector();
- ServiceRegistry getServiceRegistry();
-
- void logoutFromSession();
-
-
-}
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
index a3b36ba..6348fc0 100644
--- 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
@@ -23,34 +23,27 @@ 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.inject.ServiceInjector;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
import lombok.Getter;
+import lombok.val;
/**
*
* @since 2.0
*
*/
-public abstract class RuntimeContextBase implements RuntimeContext {
+public abstract class RuntimeContextBase {
// -- FINAL FIELDS
- @Getter(onMethod = @__(@Override)) protected final MetaModelContext metaModelContext;
- @Getter(onMethod = @__(@Override)) protected final IsisConfiguration configuration;
- @Getter(onMethod = @__(@Override)) protected final ServiceInjector serviceInjector;
- @Getter(onMethod = @__(@Override)) protected final ServiceRegistry serviceRegistry;
- @Getter(onMethod = @__(@Override)) protected final SpecificationLoader specificationLoader;
- @Getter(onMethod = @__(@Override)) protected final InteractionLayerTracker interactionLayerTracker;
+ @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;
@@ -61,10 +54,7 @@ public abstract class RuntimeContextBase implements RuntimeContext {
protected RuntimeContextBase(MetaModelContext mmc) {
this.metaModelContext= mmc;
- this.configuration = mmc.getConfiguration();
- this.serviceInjector = mmc.getServiceInjector();
- this.serviceRegistry = mmc.getServiceRegistry();
- this.specificationLoader = mmc.getSpecificationLoader();
+ val serviceRegistry = mmc.getServiceRegistry();
this.objectManager = mmc.getObjectManager();
this.transactionService = mmc.getTransactionService();
this.homePageSupplier = mmc::getHomePageAdapter;
@@ -79,22 +69,4 @@ public abstract class RuntimeContextBase implements RuntimeContext {
return interactionLayerTracker;
}
- @Override
- public void logoutFromSession() {
- // we do the logout (removes this session from those valid)
- // similar code in wicket viewer (AuthenticatedWebSessionForIsis#onInvalidate())
-
- interactionLayerTracker
- .currentInteractionContext()
- .ifPresent(authentication->{
-
- authenticationManager.closeSession(authentication);
- interactionService.closeInteractionLayers();
-
- });
-
-
- }
-
-
}
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 55c3342..d25f160 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
@@ -27,8 +27,6 @@ import javax.ws.rs.core.MediaType;
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.applib.services.registry.ServiceRegistry;
-import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -97,10 +95,7 @@ public interface IResourceContext {
RepresentationService.Intent getIntent();
InteractionProvider getInteractionProvider();
- SpecificationLoader getSpecificationLoader();
MetaModelContext getMetaModelContext();
- ServiceRegistry getServiceRegistry();
- IsisConfiguration getConfiguration();
// -- UTILITY
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
index 7a17e67..388aab9 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
@@ -60,7 +60,7 @@ implements ReprRenderer<R, T> {
final RepresentationType representationType,
final JsonRepresentation representation) {
this.resourceContext = resourceContext;
- this.jsonValueEncoder = resourceContext.getServiceRegistry()
+ this.jsonValueEncoder = resourceContext.getMetaModelContext().getServiceRegistry()
.lookupServiceElseFail(JsonValueEncoder.class);
this.linkFollower = asProvidedElseCreate(linkFollower);
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
index c9e74aa..019aca8 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
@@ -88,7 +88,7 @@ public final class Responses {
private static Date now(ReprRenderer<?, ?> renderer) {
if(renderer instanceof ReprRendererAbstract) {
- ((ReprRendererAbstract<?, ?>)renderer).getResourceContext().getServiceRegistry()
+ ((ReprRendererAbstract<?, ?>)renderer).getResourceContext().getMetaModelContext().getServiceRegistry()
.lookupServiceElseFail(ClockService.class).getClock().javaUtilDate();
}
return new Date();
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
index 62392e2..869ab27 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
@@ -214,7 +214,7 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
final String actionArguments = actionArgumentsFrom(objectAndActionInvocation);
final DomainObjectList list = domainObjectListFrom(collectionAdapters, elementSpec, actionOwnerSpec, actionId, actionArguments);
- val listAdapter = ManagedObject.lazy(resourceContext.getSpecificationLoader(), list);
+ val listAdapter = ManagedObject.lazy(resourceContext.getMetaModelContext().getSpecificationLoader(), list);
return responseBuilder(
buildResponse(
resourceContext,
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 83228ff..a30eb71 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
@@ -229,42 +229,42 @@ implements IResourceContext {
@Override
public boolean honorUiHints() {
- return getConfiguration().getViewer().getRestfulobjects().isHonorUiHints();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isHonorUiHints();
}
@Override
public boolean objectPropertyValuesOnly() {
- return getConfiguration().getViewer().getRestfulobjects().isObjectPropertyValuesOnly();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isObjectPropertyValuesOnly();
}
@Override
public boolean suppressDescribedByLinks() {
- return getConfiguration().getViewer().getRestfulobjects().isSuppressDescribedByLinks();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressDescribedByLinks();
}
@Override
public boolean suppressUpdateLink() {
- return getConfiguration().getViewer().getRestfulobjects().isSuppressUpdateLink();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressUpdateLink();
}
@Override
public boolean suppressMemberId() {
- return getConfiguration().getViewer().getRestfulobjects().isSuppressMemberId();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberId();
}
@Override
public boolean suppressMemberLinks() {
- return getConfiguration().getViewer().getRestfulobjects().isSuppressMemberLinks();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberLinks();
}
@Override
public boolean suppressMemberExtensions() {
- return getConfiguration().getViewer().getRestfulobjects().isSuppressMemberExtensions();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberExtensions();
}
@Override
public boolean suppressMemberDisabledReason() {
- return getConfiguration().getViewer().getRestfulobjects().isSuppressMemberDisabledReason();
+ return getMetaModelContext().getConfiguration().getViewer().getRestfulobjects().isSuppressMemberDisabledReason();
}
@Override
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
index 9826738..3fb2521 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
@@ -304,7 +304,7 @@ class DomainResourceHelper {
// //////////////////////////////////////
private <T> T lookupService(Class<T> serviceType) {
- return resourceContext.getServiceRegistry().lookupServiceElseFail(serviceType);
+ return resourceContext.getMetaModelContext().getServiceRegistry().lookupServiceElseFail(serviceType);
}
}
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
index 98da262..3ac0f69 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
@@ -62,7 +62,7 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
addLinkToMenuBars();
addLinkToServices(metaModelContext.streamServiceAdapters());
addLinkToVersion();
- addLinkToDomainTypes(getResourceContext().getSpecificationLoader().snapshotSpecifications());
+ addLinkToDomainTypes(getResourceContext().getMetaModelContext().getSpecificationLoader().snapshotSpecifications());
// inks and extensions
representation.mapPut("extensions", JsonRepresentation.newMap());
@@ -192,4 +192,4 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
getLinks().arrayAdd(link);
}
-}
\ No newline at end of file
+}
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java
index bde22b8..cc66d3e 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java
@@ -49,7 +49,7 @@ public class JsonParserHelper {
public JsonParserHelper(IResourceContext resourceContext, ObjectSpecification objectSpecification) {
this.objectSpec = objectSpecification;
this.resourceContext = resourceContext;
- this.jsonValueEncoder = resourceContext.getServiceRegistry()
+ this.jsonValueEncoder = resourceContext.getMetaModelContext().getServiceRegistry()
.lookupServiceElseFail(JsonValueEncoder.class);
}
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 6befc61..647ac0b 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,6 +32,7 @@ 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;
@@ -41,6 +42,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.Caching;
import org.apache.isis.viewer.restfulobjects.rendering.Responses;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
+import org.apache.isis.viewer.restfulobjects.viewer.context.ResourceContext;
import org.apache.isis.viewer.restfulobjects.viewer.webmodule.IsisRestfulObjectsInteractionFilter;
import lombok.val;
@@ -99,7 +101,7 @@ public class UserResourceServerside extends ResourceAbstract implements UserReso
final HomePageReprRenderer renderer = new HomePageReprRenderer(resourceContext, null, JsonRepresentation.newMap());
renderer.includesSelf();
- resourceContext.logoutFromSession();
+ logout(resourceContext);
// we also redirect to home page with special query string; this allows the session filter
// to clear out any cookies/headers (eg if BASIC auth in use).
@@ -111,4 +113,20 @@ public class UserResourceServerside extends ResourceAbstract implements UserReso
}
}
+ private void logout(ResourceContext resourceContext) {
+
+ val interactionService = resourceContext.getInteractionService();
+ val interactionLayerTracker = resourceContext.getInteractionLayerTracker();
+ val authenticationManager = resourceContext.getMetaModelContext().getServiceRegistry().lookupServiceElseFail(AuthenticationManager.class);
+
+ interactionLayerTracker
+ .currentInteractionContext()
+ .ifPresent(interactionContext->{
+
+ authenticationManager.closeSession(interactionContext);
+ interactionService.closeInteractionLayers();
+
+ });
+ }
+
}