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);