This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch ISIS-1976-rethink-object-adapters in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/ISIS-1976-rethink-object-adapters by this push: new 9b304a3 ISIS-1976: further cleaning up 9b304a3 is described below commit 9b304a30f502ee3d9dec567d8a5d0fc56281505a Author: Andi Huber <ahu...@apache.org> AuthorDate: Thu Sep 6 15:11:54 2018 +0200 ISIS-1976: further cleaning up Task-Url: https://issues.apache.org/jira/browse/ISIS-1976 --- .../runtime/persistence/adapter/PojoAdapter.java | 7 ++++--- .../adaptermanager/ObjectAdapterContext.java | 2 +- ...ObjectAdapterContext_ObjectAdapterProvider.java | 1 - .../ObjectAdapterContext_ServiceLookup.java | 22 +++++++++++----------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java index c335815..2411c26 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java @@ -19,6 +19,8 @@ package org.apache.isis.core.runtime.persistence.adapter; +import java.util.function.Function; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,7 +57,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter { /** * can be {@link #replacePojo(Object) replace}d. */ - private Object pojo; + private final Object pojo; /** * can be {@link #replaceOid(Oid) replace}d. */ @@ -83,8 +85,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter { this.pojo = pojo; this.oid = oid; } - - + // -- getSpecification /** diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java index 44fc112..3f43ace 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java @@ -245,7 +245,7 @@ public class ObjectAdapterContext { // -- SERVICE LOOKUP public ObjectAdapter lookupServiceAdapterFor(RootOid rootOid) { - return serviceLookupMixin.serviceAdapterFor(rootOid); + return serviceLookupMixin.lookupServiceAdapterFor(rootOid); } // -- FACTORIES diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java index b231b0c..d8f422d 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java @@ -30,7 +30,6 @@ import org.apache.isis.core.commons.ensure.Assert; import org.apache.isis.core.metamodel.IsisJdoMetamodelPlugin; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider; -import org.apache.isis.core.metamodel.adapter.oid.Oid; import org.apache.isis.core.metamodel.adapter.oid.RootOid; import org.apache.isis.core.metamodel.facets.object.value.ValueFacet; import org.apache.isis.core.metamodel.services.ServicesInjector; diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java index ae92baa..f6ff249 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java @@ -24,6 +24,8 @@ import java.util.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.isis.commons.internal.base._Timing; +import org.apache.isis.commons.internal.base._Timing.StopWatch; import org.apache.isis.commons.internal.collections._Maps; import org.apache.isis.commons.internal.context._Context; import org.apache.isis.core.commons.ensure.Assert; @@ -52,22 +54,16 @@ class ObjectAdapterContext_ServiceLookup { this.servicesInjector = servicesInjector; } - ObjectAdapter serviceAdapterFor(RootOid rootOid) { + ObjectAdapter lookupServiceAdapterFor(RootOid rootOid) { final ServicesByIdResource servicesByIdResource = _Context.computeIfAbsent(ServicesByIdResource.class, cls->initLookupResource()); - try { - final Object serviceInstance = servicesByIdResource.lookupServiceInstance(rootOid); - if(serviceInstance==null) { - return null; - } - return objectAdapterContext.getFactories().createRootAdapter(serviceInstance, rootOid); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - throw new IllegalStateException("Could not resolve service for id '" + rootOid.enStringNoVersion() + "'"); + final Object serviceInstance = servicesByIdResource.lookupServiceInstance(rootOid); + if(serviceInstance==null) { + return null; } + return objectAdapterContext.getFactories().createRootAdapter(serviceInstance, rootOid); } @@ -93,6 +89,8 @@ class ObjectAdapterContext_ServiceLookup { objectAdapterContext.printContextInfo("INIT SERVICE ID LOOKUP RESOURCE"); + StopWatch watch = _Timing.now(); + final ServicesByIdResource lookupResource = new ServicesByIdResource(); servicesInjector.streamRegisteredServiceInstances() @@ -102,6 +100,8 @@ class ObjectAdapterContext_ServiceLookup { lookupResource.servicesById.put((RootOid)serviceAdapter.getOid() , serviceAdapter.getObject()); }); + objectAdapterContext.printContextInfo("took (µs) "+watch.stop().getMicros()); + return lookupResource; }