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/27 14:16:35 UTC

[isis] 01/01: ISIS-2177: removes ObjectAdapterByIdProvider

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

ahuber pushed a commit to branch 2177-object-manager
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a8a6360adde17ce56ea4b867d6f385c236d6e322
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Nov 27 15:12:07 2019 +0100

    ISIS-2177: removes ObjectAdapterByIdProvider
---
 .../adapter/ObjectAdapterByIdProvider.java         | 69 ----------------------
 .../JdoPersistenceCapableFacetImpl.java            | 12 ++--
 .../jdo/objectadapter/ObjectAdapterContext.java    |  7 ---
 ...ctAdapterContext_ObjectAdapterByIdProvider.java | 14 +----
 .../isis/jdo/persistence/PersistenceSession5.java  | 11 ----
 .../system/persistence/PersistenceSession.java     | 13 +---
 6 files changed, 14 insertions(+), 112 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java
deleted file mode 100644
index 69a33a8..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java
+++ /dev/null
@@ -1,69 +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.metamodel.adapter;
-
-import java.util.Map;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
-
-/**
- * 
- * @since 2.0
- *
- */
-public interface ObjectAdapterByIdProvider {
-
-    // -- INTERFACE
-
-    /**
-     * This method  will <i>always</i> return an object, possibly indicating it is persistent; 
-     * so make sure that you
-     * know that the oid does indeed represent an object you know exists.
-     */
-    ObjectAdapter adapterFor(RootOid rootOid);
-
-    Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids);
-
-
-    // -- FOR THOSE THAT IMPLEMENT THROUGH DELEGATION
-
-    public static interface Delegating extends ObjectAdapterByIdProvider {
-
-        @Programmatic
-        ObjectAdapterByIdProvider getObjectAdapterByIdProvider();
-
-        @Override
-        @Programmatic
-        default ObjectAdapter adapterFor(RootOid rootOid) {
-            return getObjectAdapterByIdProvider().adapterFor(rootOid);
-        }
-
-        @Override
-        @Programmatic
-        default Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids) {
-            return getObjectAdapterByIdProvider().adaptersFor(rootOids);
-        }
-
-
-    }
-
-
-}
diff --git a/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java b/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
index 67c09e0..4e3b8d2 100644
--- a/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
+++ b/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
@@ -25,6 +25,7 @@ import javax.jdo.annotations.IdentityType;
 
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.context._Context;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.jdo.metamodel.IsisJdoMetamodelPlugin;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -47,13 +48,16 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
     @Override
     public Object fetchByIdentifier(ObjectSpecification spec, String identifier) {
         
-        //TODO simplify, spec is already loaded
+        if(!spec.isEntity()) {
+            throw _Exceptions.unexpectedCodeReach();
+        }
         
         val persistenceSession = super.getPersistenceSessionJdo();
-        val adapter = persistenceSession.getObjectAdapterByIdProvider()
-                .adapterFor(Oid.Factory.persistentOf(spec.getSpecId(), identifier)); 
+        val rootOid = Oid.Factory.persistentOf(spec.getSpecId(), identifier);
+        
+        val pojo = persistenceSession.fetchPersistentPojo(rootOid);
         
-        return adapter.getPojo();
+        return pojo;
     }
     
     @Override
diff --git a/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext.java b/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext.java
index 81a44f6..2babee9 100644
--- a/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext.java
+++ b/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext.java
@@ -26,7 +26,6 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.jdo.persistence.IsisPersistenceSessionJdo;
 import org.apache.isis.metamodel.MetaModelContext;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapterByIdProvider;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.ParentedOid;
@@ -124,12 +123,6 @@ final public class ObjectAdapterContext {
         return newIdentifierMixin.createPersistentOid(pojo);
     }
 
-    // -- BY-ID SUPPORT
-
-    public ObjectAdapterByIdProvider getObjectAdapterByIdProvider() {
-        return objectAdapterByIdProviderMixin;
-    }
-
     // -- DEPENDENCY INJECTION
 
     // package private
diff --git a/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterByIdProvider.java b/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterByIdProvider.java
index 7e3e4cb..8cd8457 100644
--- a/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterByIdProvider.java
+++ b/core/persistence/jdo/common/src/main/java/org/apache/isis/jdo/objectadapter/ObjectAdapterContext_ObjectAdapterByIdProvider.java
@@ -27,7 +27,6 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapterByIdProvider;
 import org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.PojoRecreationException;
@@ -37,10 +36,8 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.runtime.system.context.session.RuntimeContext;
 import org.apache.isis.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.security.authentication.AuthenticationSession;
 
 import lombok.val;
-import lombok.extern.log4j.Log4j2;
 
 /**
  * package private mixin for ObjectAdapterContext
@@ -49,13 +46,12 @@ import lombok.extern.log4j.Log4j2;
  * </p> 
  * @since 2.0
  */
-@Log4j2
-class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByIdProvider {
+@Deprecated // remove once bulk loading works
+class ObjectAdapterContext_ObjectAdapterByIdProvider  {
 
     private final ObjectAdapterContext objectAdapterContext;
     private final PersistenceSession persistenceSession;
     private final SpecificationLoader specificationLoader;
-    private final AuthenticationSession authenticationSession;
 
     ObjectAdapterContext_ObjectAdapterByIdProvider(
             ObjectAdapterContext objectAdapterContext,
@@ -65,8 +61,6 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
         this.objectAdapterContext = objectAdapterContext;
         this.persistenceSession = persistenceSession;
         this.specificationLoader = runtimeContext.getSpecificationLoader();
-        this.authenticationSession = runtimeContext.getAuthenticationSession();
-
     }
 
     /**
@@ -96,8 +90,7 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
      *
      * @throws {@link org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException} if the object does not exist.
      */
-    @Override
-    public ObjectAdapter adapterFor(final RootOid rootOid) {
+     public ObjectAdapter adapterFor(final RootOid rootOid) {
 
         /* FIXME[ISIS-1976] SPI for adapterFor(RootOid)
          * https://github.com/apache/isis/pull/121#discussion_r215889748
@@ -145,7 +138,6 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
 
     }
 
-    @Override
     public Map<RootOid,ObjectAdapter> adaptersFor(final Stream<RootOid> rootOids) {
 
         final Map<RootOid, ObjectAdapter> adapterByOid = _Maps.newLinkedHashMap();
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java
index 71acd61..1e1fe38 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java
@@ -58,7 +58,6 @@ import org.apache.isis.jdo.datanucleus.persistence.spi.JdoObjectIdSerializer;
 import org.apache.isis.jdo.objectadapter.ObjectAdapterContext;
 import org.apache.isis.metamodel.MetaModelContext;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapterByIdProvider;
 import org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.PojoRefreshException;
@@ -874,11 +873,6 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
         return false;
     }
 
-    @Override
-    public ObjectAdapter adapterFor(final RootOid rootOid) {
-        return objectAdapterContext.getObjectAdapterByIdProvider().adapterFor(rootOid);
-    }
-
     // -- MEMENTO SUPPORT
 
     @Override
@@ -891,11 +885,6 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
         return objectAdapterContext.getObjectAdapterProvider().adapterFor(pojo);
     }
 
-    @Override
-    public ObjectAdapterByIdProvider getObjectAdapterByIdProvider() {
-        return objectAdapterContext.getObjectAdapterByIdProvider();
-    }
-
     // -- HELPER
     
     private void debugLogNotPersistentIgnoring(Object domainObject) {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSession.java
index efab3ae..25c1714 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSession.java
@@ -28,7 +28,6 @@ import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.components.SessionScopedComponent;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapterByIdProvider;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
@@ -41,7 +40,6 @@ import org.apache.isis.runtime.persistence.objectstore.transaction.Transactional
 public interface PersistenceSession 
 extends 
 ObjectAdapterProvider,
-ObjectAdapterByIdProvider.Delegating,
 TransactionalResource, 
 SessionScopedComponent {
 
@@ -105,15 +103,10 @@ SessionScopedComponent {
     // -------------------------------------------------------------------------------------------------
     // -- API NOT STABLE YET - SUBJECT TO REFACTORING
     // -------------------------------------------------------------------------------------------------
-
-    // -- MEMENTO SUPPORT
-
-    ObjectAdapter adapterOfMemento(ObjectSpecification spec, Oid oid, Data data);
-
+    
     // -- TODO remove ObjectAdapter references from API
-
-    @Override
-    ObjectAdapter adapterFor(RootOid rootOid);
+    
+    ObjectAdapter adapterOfMemento(ObjectSpecification spec, Oid oid, Data data);
 
     <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query);
     <T> ObjectAdapter firstMatchingQuery(final Query<T> query);