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 2019/11/04 18:26:53 UTC

[isis] branch v2 updated: ISIS-2158: work towards removal of ObjectAdpaterProvider

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new 787cf43  ISIS-2158: work towards removal of ObjectAdpaterProvider
787cf43 is described below

commit 787cf436cb3dfb5a83b8ade56f754030a1a1c6f7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Nov 4 19:26:38 2019 +0100

    ISIS-2158: work towards removal of ObjectAdpaterProvider
    
    - removes responsibility of service-adapter-lookup from
    ObjectAdpaterProvider
---
 .../apache/isis/metamodel/MetaModelContext.java    | 18 ++---
 .../isis/metamodel/MetaModelContext_usingIoc.java  | 45 +++++--------
 .../metamodel/adapter/ObjectAdapterProvider.java   | 35 +---------
 ...ObjectFacetDeclarativeInitializingAbstract.java |  4 +-
 .../metamodel/objectmanager/ObjectManager.java     | 17 +++--
 .../metamodel/MetaModelContext_forTesting.java     |  8 +--
 ...ObjectAdapterContext_ObjectAdapterProvider.java | 50 --------------
 .../rendering/ReprRendererAbstract.java            |  2 +-
 .../rendering/domainobjects/ListReprRenderer.java  |  7 +-
 .../resources/DomainServiceResourceServerside.java |  2 +-
 .../server/resources/HomePageReprRenderer.java     | 76 ++++++++++++++++++----
 .../wicket/model/models/ServiceActionsModel.java   |  4 +-
 12 files changed, 115 insertions(+), 153 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
index 3853853..4fda9f9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
@@ -29,7 +29,6 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.applib.services.xactn.TransactionState;
 import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.services.homepage.HomePageAction;
 import org.apache.isis.metamodel.spec.ManagedObject;
@@ -87,14 +86,9 @@ public interface MetaModelContext {
 
     HomePageAction getHomePageAction();
 
-    @Deprecated
-    Stream<ObjectAdapter> streamServiceAdapters();
-    
-    default Stream<ManagedObject> streamServiceAdapters2() {
-        return streamServiceAdapters().map(ManagedObject.class::cast);
-    }
+    Stream<ManagedObject> streamServiceAdapters();
 
-    ObjectAdapter lookupServiceAdapterById(String serviceId);
+    ManagedObject lookupServiceAdapterById(String serviceId);
     
     <T> T getSingletonElseFail(Class<T> type);
     
@@ -189,13 +183,13 @@ public interface MetaModelContext {
             return getMetaModelContext().getTransactionService();
         }
 
-        @Override @Deprecated
-        public default Stream<ObjectAdapter> streamServiceAdapters() {
+        @Override
+        public default Stream<ManagedObject> streamServiceAdapters() {
             return getMetaModelContext().streamServiceAdapters();
         }
 
-        @Override @Deprecated
-        default ObjectAdapter lookupServiceAdapterById(String serviceId) {
+        @Override
+        default ManagedObject lookupServiceAdapterById(String serviceId) {
             return getMetaModelContext().lookupServiceAdapterById(serviceId);
         }
         
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
index 8335849..3d2eeb5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
@@ -34,14 +34,13 @@ import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.commons.internal.ioc.IocContainer;
+import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.services.ServiceUtil;
 import org.apache.isis.metamodel.services.homepage.HomePageAction;
 import org.apache.isis.metamodel.services.homepage.HomePageResolverService;
-import org.apache.isis.metamodel.services.persistsession.PersistenceSessionServiceInternal;
+import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.security.authentication.AuthenticationSessionProvider;
@@ -59,10 +58,6 @@ class MetaModelContext_usingIoc implements MetaModelContext {
         this.iocContainer = iocContainer;
     }
 
-//    @Getter(lazy=true) 
-//    private final IsisConfigurationLegacy configurationLegacy = 
-//    _Config.getConfiguration();
-
     @Getter(lazy=true) 
     private final IsisSystemEnvironment systemEnvironment = 
     getSingletonElseFail(IsisSystemEnvironment.class);
@@ -72,10 +67,6 @@ class MetaModelContext_usingIoc implements MetaModelContext {
     getSingletonElseFail(IsisConfiguration.class);
 
     @Getter(lazy=true) 
-    private final ObjectAdapterProvider objectAdapterProvider =
-    getSingletonElseFail(PersistenceSessionServiceInternal.class);
-
-    @Getter(lazy=true) 
     private final ServiceInjector serviceInjector =
     getSingletonElseFail(ServiceInjector.class);
 
@@ -138,12 +129,12 @@ class MetaModelContext_usingIoc implements MetaModelContext {
     // -- SERVICE SUPPORT
 
     @Override
-    public Stream<ObjectAdapter> streamServiceAdapters() {
+    public Stream<ManagedObject> streamServiceAdapters() {
         return objectAdaptersForBeansOfKnownSort.get().values().stream();
     }
 
     @Override
-    public ObjectAdapter lookupServiceAdapterById(final String serviceId) {
+    public ManagedObject lookupServiceAdapterById(final String serviceId) {
         return objectAdaptersForBeansOfKnownSort.get().get(serviceId);
     }
 
@@ -162,29 +153,27 @@ class MetaModelContext_usingIoc implements MetaModelContext {
     
     // -- HELPER
 
-    private final _Lazy<Map<String, ObjectAdapter>> objectAdaptersForBeansOfKnownSort = 
+    private final _Lazy<Map<String, ManagedObject>> objectAdaptersForBeansOfKnownSort = 
             _Lazy.threadSafe(this::collectBeansOfKnownSort);
 
-    private Map<String, ObjectAdapter> collectBeansOfKnownSort() {
-
-        val objectAdapterProvider = getObjectAdapterProvider();
+    private Map<String, ManagedObject> collectBeansOfKnownSort() {
 
         return getServiceRegistry()
                 .streamRegisteredBeans()
-                .map(objectAdapterProvider::adapterForBean) 
-                .peek(this::guardAgainsTransient)
+                .map(this::toManagedObject) 
                 .collect(Collectors.toMap(ServiceUtil::idOfAdapter, v->v, (o,n)->n, LinkedHashMap::new));
     }
-
-    private void guardAgainsTransient(ObjectAdapter objectAdapter) {
-        val oid = objectAdapter.getOid();
-        if(oid.isTransient()) {
-            val msg = "ObjectAdapter for 'Bean' is expected not to be 'transient' " + oid;
-            throw _Exceptions.unrecoverable(msg);
-        }
+    
+    private ManagedObject toManagedObject(ManagedBeanAdapter managedBeanAdapter) {
+        
+        val servicePojo = managedBeanAdapter.getInstance().getFirst()
+                .orElseThrow(()->_Exceptions.unrecoverableFormatted(
+                        "Cannot get service instance of type '%s'", 
+                        managedBeanAdapter.getBeanClass()));
+        
+        return ManagedObject.of(getSpecificationLoader()::loadSpecification, servicePojo);
+        
     }
 
 
-
-
 }
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterProvider.java
index 413a88c..1249822 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterProvider.java
@@ -18,11 +18,8 @@
  */
 package org.apache.isis.metamodel.adapter;
 
-import java.util.stream.Stream;
-
 import javax.annotation.Nullable;
 
-import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
@@ -53,7 +50,7 @@ public interface ObjectAdapterProvider {
      */
     @Nullable ObjectAdapter adapterFor(@Nullable Object pojo);
 
-    @Nullable ObjectAdapter adapterForBean(@Nullable ManagedBeanAdapter beanAdapter);
+    //@Nullable ObjectAdapter adapterForBean(@Nullable ManagedBeanAdapter beanAdapter);
 
     /**
      * @return collection adapter.
@@ -98,14 +95,6 @@ public interface ObjectAdapterProvider {
      */
     ObjectAdapter newTransientInstance(ObjectSpecification objectSpec);
 
-    //    @Nullable ObjectAdapter recreateViewModelInstance(ObjectSpecification objectSpec, @Nullable final String memento);
-
-    // -- SERVICE LOOKUP 
-
-    Stream<ObjectAdapter> streamServices();
-    ObjectAdapter lookupService(String serviceId);
-
-
     // -- FOR THOSE THAT IMPLEMENT THROUGH DELEGATION
 
     public static interface Delegating extends ObjectAdapterProvider {
@@ -118,11 +107,6 @@ public interface ObjectAdapterProvider {
         }
 
         @Override
-        default ObjectAdapter adapterForBean(ManagedBeanAdapter bean) {
-            return getObjectAdapterProvider().adapterForBean(bean);
-        }
-
-        @Override
         default ObjectAdapter adapterForCollection(
                 final Object pojo,
                 final RootOid parentOid,
@@ -151,23 +135,6 @@ public interface ObjectAdapterProvider {
             return getObjectAdapterProvider().newTransientInstance(objectSpec);
         }
 
-
-        //        default ObjectAdapter recreateViewModelInstance(ObjectSpecification objectSpec, final String memento) {
-        //            return getObjectAdapterProvider().recreateViewModelInstance(objectSpec, memento);
-        //        }
-
-
-        @Override
-        default Stream<ObjectAdapter> streamServices() {
-            return getObjectAdapterProvider().streamServices();
-        }
-
-        @Override
-        default ObjectAdapter lookupService(String serviceId) {
-            return getObjectAdapterProvider().lookupService(serviceId);
-        }
-
-
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
index cd3ab74..42785bc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
@@ -61,7 +61,7 @@ extends RecreatableObjectFacetAbstract {
         }
 
         val objectManager = super.getObjectManager();
-        val spec = objectManager.loadSpec(viewModelPojo);
+        val spec = objectManager.loadSpecification(viewModelPojo);
         val viewModelAdapter = ManagedObject.of(spec, viewModelPojo); 
 
         super.getServiceInjector().injectServicesInto(viewModelPojo);
@@ -88,7 +88,7 @@ extends RecreatableObjectFacetAbstract {
         final _Mementos.Memento memento = newMemento();
 
         val objectManager = super.getObjectManager();
-        val spec = objectManager.loadSpec(viewModelPojo);
+        val spec = objectManager.loadSpecification(viewModelPojo);
         
         /*
          * ManagedObject that holds the ObjectSpecification used for 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java
index 6da6947..c91c1d0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.metamodel.objectmanager;
 
+import javax.annotation.Nullable;
+
 import org.apache.isis.metamodel.MetaModelContext;
 import org.apache.isis.metamodel.objectmanager.ObjectLoader.ObjectLoadRequest;
 import org.apache.isis.metamodel.spec.ManagedObject;
@@ -45,18 +47,25 @@ public interface ObjectManager {
         return getObjectLoader().loadObject(objectLoadRequest);
     }
     
-    public default ManagedObject adapt(Object pojo) {
+    @Nullable
+    public default ManagedObject adapt(@Nullable Object pojo) {
         if(pojo==null) {
             return null; // don't propagate null into ManagedObject, null has no type 
         }
-        return ManagedObject.of(getMetaModelContext().getSpecificationLoader()::loadSpecification, pojo);
+        return ManagedObject.of(this::loadSpecification, pojo);
     }
 
-    public default ObjectSpecification loadSpec(Object pojo) {
+    @Nullable
+    public default ObjectSpecification loadSpecification(@Nullable Object pojo) {
         if(pojo==null) {
             return null; 
         }
-        return getMetaModelContext().getSpecificationLoader().loadSpecification(pojo.getClass());
+        return loadSpecification(pojo.getClass());
+    }
+    
+    @Nullable
+    default ObjectSpecification loadSpecification(@Nullable final Class<?> domainType) {
+        return getMetaModelContext().getSpecificationLoader().loadSpecification(domainType);
     }
     
 }
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
index 753975f..ca09363 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
@@ -37,11 +37,11 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.beans.IsisBeanTypeRegistryHolder;
 import org.apache.isis.config.registry.types.IsisBeanTypeRegistry;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.metamodel.services.homepage.HomePageAction;
+import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.metamodel.specloader.SpecificationLoaderDefault;
@@ -110,7 +110,7 @@ public final class MetaModelContext_forTesting implements MetaModelContext {
     
     private IsisBeanTypeRegistryHolder isisBeanTypeRegistryHolder;
 
-    private Map<String, ObjectAdapter> serviceAdaptersById;
+    private Map<String, ManagedObject> serviceAdaptersById;
 
     @Singular
     private List<Object> singletons;
@@ -126,7 +126,7 @@ public final class MetaModelContext_forTesting implements MetaModelContext {
     }
     
     @Override
-    public Stream<ObjectAdapter> streamServiceAdapters() {
+    public Stream<ManagedObject> streamServiceAdapters() {
 
         if(serviceAdaptersById==null) {
             return Stream.empty();
@@ -135,7 +135,7 @@ public final class MetaModelContext_forTesting implements MetaModelContext {
     }
 
     @Override
-    public ObjectAdapter lookupServiceAdapterById(String serviceId) {
+    public ManagedObject lookupServiceAdapterById(String serviceId) {
         if(serviceAdaptersById==null) {
             return null;
         }
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterProvider.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterProvider.java
index 43cce2d..2e7d56e 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterProvider.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterProvider.java
@@ -18,24 +18,14 @@
  */
 package org.apache.isis.jdo.objectadapter;
 
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.isis.commons.internal.assertions._Assert;
-import org.apache.isis.commons.internal.base._Lazy;
-import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.adapter.oid.factory.OidFactory;
-import org.apache.isis.metamodel.services.ServiceUtil;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.persistence.adapter.ObjectAdapterForBean;
 import org.apache.isis.runtime.system.context.session.RuntimeContext;
 import org.apache.isis.runtime.system.persistence.PersistenceSession;
 
@@ -53,7 +43,6 @@ import lombok.val;
 class ObjectAdapterContext_ObjectAdapterProvider implements ObjectAdapterProvider {
 
     private final ObjectAdapterContext objectAdapterContext;
-    private final RuntimeContext runtimeContext;
     private final SpecificationLoader specificationLoader; 
     private final OidFactory oidFactory; 
 
@@ -63,7 +52,6 @@ class ObjectAdapterContext_ObjectAdapterProvider implements ObjectAdapterProvide
             RuntimeContext runtimeContext) {
 
         this.objectAdapterContext = objectAdapterContext;
-        this.runtimeContext = runtimeContext;
         this.specificationLoader = runtimeContext.getSpecificationLoader();
         this.oidFactory = OidFactory.buildDefault();
     }
@@ -81,12 +69,6 @@ class ObjectAdapterContext_ObjectAdapterProvider implements ObjectAdapterProvide
     }
 
     @Override
-    public ObjectAdapter adapterForBean(ManagedBeanAdapter bean) {
-        return ObjectAdapterForBean.of(bean, specificationLoader);
-    }
-
-
-    @Override
     public ObjectAdapter adapterForCollection(Object pojo, RootOid parentOid, OneToManyAssociation collection) {
 
         requires(parentOid, "parentOid");
@@ -123,37 +105,5 @@ class ObjectAdapterContext_ObjectAdapterProvider implements ObjectAdapterProvide
         return objectAdapterContext.objectCreationMixin.newInstance(objectSpec);
     }
 
-    //    @Override
-    //    public ObjectAdapter recreateViewModelInstance(ObjectSpecification objectSpec, final String memento) {
-    //        return objectAdapterContext.objectCreationMixin.recreateInstance(objectSpec, memento);
-    //    }
-
-    // -- SERVICE SUPPORT
-
-    @Override
-    public Stream<ObjectAdapter> streamServices() {
-        return serviceAdapters.get().values().stream();
-    }
-
-    @Override
-    public ObjectAdapter lookupService(final String serviceId) {
-        return serviceAdapters.get().get(serviceId);
-    }
-
-
-    // -- HELPER
-
-    private final _Lazy<Map<String, ObjectAdapter>> serviceAdapters = _Lazy.of(this::initServiceAdapters);
-
-    private Map<String, ObjectAdapter> initServiceAdapters() {
-
-        return runtimeContext.getServiceRegistry().streamRegisteredBeans()
-                .map(this::adapterForBean)
-                .peek(serviceAdapter->{
-                    _Assert.assertFalse("expected to not be 'transient'", serviceAdapter.getOid().isTransient());
-                })
-                .collect(Collectors.toMap(ServiceUtil::idOfAdapter, v->v, (o,n)->n, LinkedHashMap::new));
-    }
-
 
 }
\ No newline at end of file
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
index 4b5fcbc..ea4e606 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
@@ -209,7 +209,7 @@ implements ReprRenderer<R, T> {
 
     protected Stream<ManagedObject> streamServiceAdapters() {
         val metaModelContext = resourceContext.getMetaModelContext();
-        return metaModelContext.streamServiceAdapters2();
+        return metaModelContext.streamServiceAdapters();
     }
 
 }
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
index ef24b3c..cffeb3f 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
@@ -105,8 +105,11 @@ public class ListReprRenderer extends ReprRendererAbstract<ListReprRenderer, Str
 
             final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("value");
             if (linkFollower.matches(linkToObject)) {
-                final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap()
-                        );
+                final DomainObjectReprRenderer renderer = 
+                        new DomainObjectReprRenderer(
+                                getResourceContext(), 
+                                linkFollower, 
+                                JsonRepresentation.newMap());
                 final JsonRepresentation domainObject = renderer.with(adapter).render();
                 linkToObject.mapPut("value", domainObject);
             }            
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
index 95469ad..988f6d3 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
@@ -76,7 +76,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
 
         val metaModelContext = super.getResourceContext().getMetaModelContext();
 
-        final Stream<ManagedObject> serviceAdapters = metaModelContext.streamServiceAdapters2()
+        final Stream<ManagedObject> serviceAdapters = metaModelContext.streamServiceAdapters()
                 .filter(NATURE_REST_ALSO);
 
         final DomainServicesListReprRenderer renderer = new DomainServicesListReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java
index 1e5bec5..1690b5c 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java
@@ -60,7 +60,7 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
 
         addLinkToUser(getResourceContext().getAuthenticationSession());
         addLinkToMenuBars();
-        addLinkToServices(metaModelContext.streamServiceAdapters2());
+        addLinkToServices(metaModelContext.streamServiceAdapters());
         addLinkToVersion();
         addLinkToDomainTypes(getResourceContext().getSpecificationLoader().snapshotSpecifications());
 
@@ -71,18 +71,32 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
     }
 
     private void addLinkToSelf() {
-        final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.SELF.getName(), RepresentationType.HOME_PAGE, "").build();
+        final JsonRepresentation link = LinkBuilder.newBuilder(
+                resourceContext, 
+                Rel.SELF.getName(), 
+                RepresentationType.HOME_PAGE, 
+                "")
+                .build();
 
         final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
         if (linkFollower.matches(link)) {
-            final HomePageReprRenderer renderer = new HomePageReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
+            final HomePageReprRenderer renderer = new HomePageReprRenderer(
+                    getResourceContext(), 
+                    linkFollower, 
+                    JsonRepresentation.newMap());
+            
             link.mapPut("value", renderer.render());
         }
         getLinks().arrayAdd(link);
     }
 
     private void addLinkToVersion() {
-        final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.VERSION.getName(), RepresentationType.VERSION, "version").build();
+        final JsonRepresentation link = LinkBuilder.newBuilder(
+                getResourceContext(), 
+                Rel.VERSION.getName(),
+                RepresentationType.VERSION, 
+                "version")
+                .build();
 
         final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
         if (linkFollower.matches(link)) {
@@ -95,13 +109,25 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
 
     private void addLinkToServices(Stream<ManagedObject> serviceAdapters) {
 
-        final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.SERVICES.getName(), RepresentationType.LIST, "services").build();
+        final JsonRepresentation link = LinkBuilder.newBuilder(
+                getResourceContext(), 
+                Rel.SERVICES.getName(), 
+                RepresentationType.LIST, 
+                "services")
+                .build();
 
         final LinkFollowSpecs linkFollowSpecs = getLinkFollowSpecs().follow("links");
         if (linkFollowSpecs.matches(link)) {
 
-            final ListReprRenderer renderer = new ListReprRenderer(getResourceContext(), linkFollowSpecs, JsonRepresentation.newMap());
-            renderer.usingLinkToBuilder(new DomainServiceLinkTo()).withLink(Rel.SELF, "services").with(serviceAdapters);
+            final ListReprRenderer renderer = 
+                    new ListReprRenderer(
+                            getResourceContext(), 
+                            linkFollowSpecs, 
+                            JsonRepresentation.newMap());
+            
+            renderer.usingLinkToBuilder(new DomainServiceLinkTo())
+            .withLink(Rel.SELF, "services")
+            .with(serviceAdapters);
 
             link.mapPut("value", renderer.render());
         }
@@ -110,11 +136,20 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
     }
 
     private void addLinkToUser(AuthenticationSession authenticationSession) {
-        final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.USER.getName(), RepresentationType.USER, "user").build();
+        final JsonRepresentation link = LinkBuilder.newBuilder(
+                getResourceContext(), 
+                Rel.USER.getName(), 
+                RepresentationType.USER, 
+                "user")
+                .build();
 
         final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
         if (linkFollower.matches(link)) {
-            final UserReprRenderer renderer = new UserReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
+            final UserReprRenderer renderer = new UserReprRenderer(
+                    getResourceContext(), 
+                    linkFollower, 
+                    JsonRepresentation.newMap());
+            
             renderer.with(authenticationSession);
             link.mapPut("value", renderer.render());
         }
@@ -123,18 +158,33 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
     }
 
     private void addLinkToMenuBars() {
-        final JsonRepresentation link = LinkBuilder
-                .newBuilder(getResourceContext(), Rel.MENUBARS.getName(), RepresentationType.MENUBARS, "menuBars").build();
+        final JsonRepresentation link = LinkBuilder.newBuilder(
+                        getResourceContext(), 
+                        Rel.MENUBARS.getName(), 
+                        RepresentationType.MENUBARS, 
+                        "menuBars")
+                .build();
+        
         getLinks().arrayAdd(link);
     }
 
     private void addLinkToDomainTypes(final Collection<ObjectSpecification> specifications) {
 
-        final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.DOMAIN_TYPES.getName(), RepresentationType.TYPE_LIST, "domain-types").build();
+        final JsonRepresentation link = 
+                LinkBuilder.newBuilder(
+                        getResourceContext(), 
+                        Rel.DOMAIN_TYPES.getName(), 
+                        RepresentationType.TYPE_LIST, 
+                        "domain-types")
+                .build();
 
         final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
         if (linkFollower.matches(link)) {
-            final TypeListReprRenderer renderer = new TypeListReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
+            final TypeListReprRenderer renderer = new TypeListReprRenderer(
+                            getResourceContext(), 
+                            linkFollower, 
+                            JsonRepresentation.newMap());
+            
             renderer.withLink(Rel.SELF, "domain-types").with(specifications);
             link.mapPut("value", renderer.render());
         }
diff --git a/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java b/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
index 56b78c3..db0dc74 100644
--- a/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
+++ b/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
@@ -63,8 +63,8 @@ public class ServiceActionsModel extends ModelAbstract<List<ManagedObject>> {
 
     private static Predicate<ManagedObject> with(final DomainServiceLayout.MenuBar menuBar) {
         return (ManagedObject adapter) -> {
-            val domainServiceLayoutFacet = adapter.getSpecification().getFacet
-                    (DomainServiceLayoutFacet.class);
+            val domainServiceLayoutFacet = adapter.getSpecification()
+                    .getFacet(DomainServiceLayoutFacet.class);
             return (domainServiceLayoutFacet != null && domainServiceLayoutFacet.getMenuBar() == menuBar) ||
                     (domainServiceLayoutFacet == null && menuBar == DomainServiceLayout.MenuBar.PRIMARY);
         };