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 14:58:08 UTC
[isis] branch v2 updated: ISIS-2158: remove ObjectAdapterService -
obsolete layer of abstraction
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 05c7804 ISIS-2158: remove ObjectAdapterService - obsolete layer of abstraction
05c7804 is described below
commit 05c7804143df095ad88acabb1fe1a7f088d54a16
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Nov 4 15:57:56 2019 +0100
ISIS-2158: remove ObjectAdapterService - obsolete layer of abstraction
---
.../persistsession/ObjectAdapterService.java | 31 ----
.../parseable/ParseableFacetUsingParserTest.java | 4 +-
.../ValueSemanticsProviderAbstractTestCase.java | 5 +-
.../SpecificationLoaderTestAbstract.java | 6 -
.../specimpl/ObjectAssociationAbstractTest.java | 14 +-
...ObjectAssociationAbstractTest_alwaysHidden.java | 16 +-
.../persist/ObjectAdapterServiceDefault.java | 161 ---------------------
.../viewer/services/DeepLinkServiceWicket.java | 8 +-
8 files changed, 13 insertions(+), 232 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/ObjectAdapterService.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/ObjectAdapterService.java
deleted file mode 100644
index 5dd9101..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/ObjectAdapterService.java
+++ /dev/null
@@ -1,31 +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.services.persistsession;
-
-import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
-
-/**
- * Layer of abstraction to PersistenceSession
- * @since 2.0
- *
- */
-public interface ObjectAdapterService extends ObjectAdapterProvider {
-
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
index 7456d6a..10afb11c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
@@ -36,7 +36,6 @@ import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser;
import org.apache.isis.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.security.authentication.AuthenticationSessionProvider;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -50,7 +49,6 @@ public class ParseableFacetUsingParserTest {
@Mock private AuthenticationSessionProvider mockAuthenticationSessionProvider;
@Mock private ServiceInjector mockServicesInjector;
@Mock private ServiceRegistry mockServiceRegistry;
- @Mock private ObjectAdapterService mockAdapterManager;
protected MetaModelContext metaModelContext;
private ParseableFacetUsingParser parseableFacetUsingParser;
@@ -67,7 +65,7 @@ public class ParseableFacetUsingParserTest {
context.checking(new Expectations() {
{
never(mockAuthenticationSessionProvider);
- never(mockAdapterManager);
+ //never(mockAdapterManager);
allowing(mockFacetHolder).getMetaModelContext();
will(returnValue(metaModelContext));
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index b7c14ab..2ae8a78 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -38,7 +38,6 @@ import org.apache.isis.metamodel.facets.object.encodeable.encoder.EncodableFacet
import org.apache.isis.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser;
import org.apache.isis.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.security.authentication.AuthenticationSessionProvider;
import org.apache.isis.unittestsupport.config.internal._Config;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -57,8 +56,6 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
@Mock protected FacetHolder mockFacetHolder;
- @Mock protected ObjectAdapterService mockSessionServiceInternal;
- //@Mock protected SpecificationLoader mockSpecificationLoader;
@Mock protected AuthenticationSessionProvider mockAuthenticationSessionProvider;
@Mock protected ObjectAdapter mockAdapter;
@@ -82,7 +79,7 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
{
never(mockAuthenticationSessionProvider);
- never(mockSessionServiceInternal);
+ //never(mockSessionServiceInternal);
allowing(mockFacetHolder).getMetaModelContext();
will(returnValue(metaModelContext));
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
index f41830b..d865d58 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -45,7 +45,6 @@ import org.apache.isis.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract;
import org.apache.isis.metamodel.progmodel.ProgrammingModelInitFilterDefault;
import org.apache.isis.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.security.authentication.AuthenticationSessionProvider;
@@ -79,10 +78,6 @@ abstract class SpecificationLoaderTestAbstract {
return Mockito.mock(GridService.class);
}
- ObjectAdapterService mockPersistenceSessionServiceInternal() {
- return Mockito.mock(ObjectAdapterService.class);
- }
-
MessageService mockMessageService() {
return Mockito.mock(MessageService.class);
}
@@ -112,7 +107,6 @@ abstract class SpecificationLoaderTestAbstract {
protected SpecificationLoader specificationLoader;
protected AuthenticationSessionProvider mockAuthenticationSessionProvider;
protected GridService mockGridService;
- protected ObjectAdapterService mockPersistenceSessionServiceInternal;
protected MessageService mockMessageService;
protected MetaModelContext metaModelContext;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
index 32f0e50..2ee42d6 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
@@ -36,7 +36,6 @@ import org.apache.isis.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.metamodel.facets.properties.choices.PropertyChoicesFacet;
import org.apache.isis.metamodel.interactions.UsabilityContext;
import org.apache.isis.metamodel.interactions.VisibilityContext;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
@@ -51,21 +50,14 @@ public class ObjectAssociationAbstractTest {
@Rule
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+ @Mock private ObjectSpecification objectSpecification;
+ @Mock private ServiceInjector mockServicesInjector;
+ @Mock private SpecificationLoader mockSpecificationLoader;
private ObjectAssociationAbstract objectAssociation;
private FacetedMethod facetedMethod;
- @Mock
- private ObjectSpecification objectSpecification;
- @Mock
- private ServiceInjector mockServicesInjector;
- @Mock
- private SpecificationLoader mockSpecificationLoader;
- @Mock
- private ObjectAdapterService mockPersistenceSessionServiceInternal;
-
-
public static class Customer {
private String firstName;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
index 160a1b7..8d3d6b3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
@@ -37,7 +37,6 @@ import org.apache.isis.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.metamodel.facets.members.hidden.HiddenFacetAbstract;
import org.apache.isis.metamodel.interactions.UsabilityContext;
import org.apache.isis.metamodel.interactions.VisibilityContext;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
@@ -57,17 +56,10 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
private ObjectAssociationAbstract objectAssociation;
private FacetedMethod facetedMethod;
- @Mock
- private ObjectSpecification mockObjectSpecification;
- @Mock
- private ObjectSpecification mockOnType;
-
- @Mock
- private ServiceInjector mockServicesInjector;
- @Mock
- private SpecificationLoader mockSpecificationLoader;
- @Mock
- private ObjectAdapterService mockPersistenceSessionServiceInternal;
+ @Mock private ObjectSpecification mockObjectSpecification;
+ @Mock private ObjectSpecification mockOnType;
+ @Mock private ServiceInjector mockServicesInjector;
+ @Mock private SpecificationLoader mockSpecificationLoader;
public static class Customer {
public String getFirstName() {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/persist/ObjectAdapterServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/persist/ObjectAdapterServiceDefault.java
deleted file mode 100644
index cfbf2d0..0000000
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/persist/ObjectAdapterServiceDefault.java
+++ /dev/null
@@ -1,161 +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.runtime.services.persist;
-
-import java.io.Serializable;
-import java.util.stream.Stream;
-
-import javax.inject.Inject;
-
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.NonRecoverableException;
-import org.apache.isis.applib.services.inject.ServiceInjector;
-import org.apache.isis.commons.internal.debug._Probe;
-import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
-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.PojoAdapter;
-import org.apache.isis.runtime.system.context.IsisContext;
-import org.apache.isis.runtime.system.persistence.PersistenceSession;
-
-import static org.apache.isis.commons.internal.base._With.requires;
-
-import lombok.val;
-
-@Service @Primary
-public class ObjectAdapterServiceDefault implements ObjectAdapterService {
-
-
- @Override
- public ObjectAdapter adapterFor(Object pojo) {
-
- if(pojo == null) {
- return null;
- }
-
- val spec = specificationLoader.loadSpecification(pojo.getClass());
- switch (spec.getBeanSort()) {
- case VALUE:
- return PojoAdapter.ofValue((Serializable) pojo);
-
- case VIEW_MODEL:
- case MANAGED_BEAN:
- case ENTITY:
- case MIXIN:
- return ps().adapterFor(pojo);
-
- case COLLECTION:
- return PojoAdapter.ofTransient(pojo, spec.getSpecId());
-
- case UNKNOWN:
- break;
-
- }
-
- _Probe.errOut("UNKNOWN ManagedObject type: '%s'", pojo.getClass());
-
- return null;
- //throw _Exceptions.unmatchedCase("UNKNOWN ManagedObject type: " + pojo.getClass());
- }
-
- @Override
- public ObjectAdapter adapterForBean(ManagedBeanAdapter bean) {
- return ps().adapterForBean(bean);
- }
-
- @Override
- public ObjectAdapter adapterForCollection(
- Object collectionPojo,
- RootOid parentOid,
- OneToManyAssociation oneToMany) {
-
- requires(parentOid, "parentOid");
- requires(collectionPojo, "collectionPojo");
-
- val collectionOid = Oid.Factory.parentedOfOneToMany(parentOid, oneToMany);
-
- // the List, Set etc. instance gets wrapped in its own adapter
- val newAdapter = PojoAdapter.of(collectionPojo, collectionOid);
- return newAdapter;
- }
-
- @Override
- public ObjectAdapter adapterForViewModel(Object viewModelPojo, String mementoStr) {
-
- val objectSpecification = specificationLoader.loadSpecification(viewModelPojo.getClass());
- val objectSpecId = objectSpecification.getSpecId();
- val newRootOid = Oid.Factory.viewmodelOf(objectSpecId, mementoStr);
- val newAdapter = PojoAdapter.of(viewModelPojo, newRootOid);
- return newAdapter;
- }
-
- @Override
- public ObjectAdapter newTransientInstance(ObjectSpecification spec) {
- val pojo = spec.instantiatePojo();
- val newAdapter = PojoAdapter.ofTransient(pojo, spec.getSpecId());
- newAdapter.injectServices(serviceInjector);
- return newAdapter;
- }
-
- // -- HELPER
-
- protected PersistenceSession ps() {
- return IsisContext.getPersistenceSession()
- .orElseThrow(()->new NonRecoverableException("No PersistenceSession on current thread."));
- }
-
- @Inject SpecificationLoader specificationLoader;
- @Inject ServiceInjector serviceInjector;
-
- @Override
- public ManagedObject disposableAdapterForViewModel(Object viewModelPojo) {
- return ps().disposableAdapterForViewModel(viewModelPojo);
- }
-
- @Override
- public ObjectSpecification specificationForViewModel(Object viewModelPojo) {
- return ps().specificationForViewModel(viewModelPojo);
- }
-
- // @Override
- // public ObjectAdapter recreateViewModelInstance(ObjectSpecification objectSpec, String memento) {
- // return ps().recreateViewModelInstance(objectSpec, memento);
- // }
-
- @Override
- public Stream<ObjectAdapter> streamServices() {
- return ps().streamServices();
- }
-
- @Override
- public ObjectAdapter lookupService(String serviceId) {
- return ps().lookupService(serviceId);
-
- }
-
-
-}
diff --git a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java b/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java
index d280f2d..c46f571 100644
--- a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java
+++ b/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java
@@ -30,8 +30,8 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.services.linking.DeepLinkService;
-import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.metamodel.specloader.SpecificationLoader;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
@@ -44,15 +44,15 @@ import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
public class DeepLinkServiceWicket implements DeepLinkService {
@Inject private PageClassRegistry pageClassRegistry;
- @Inject private ObjectAdapterService objectAdapterProvider;
+ @Inject private SpecificationLoader specificationLoader;
@Override
public URI deepLinkFor(final Object domainObject) {
- final ManagedObject objectAdapter = objectAdapterProvider.adapterFor(domainObject);
+ final ManagedObject objectAdapter = ManagedObject.of(specificationLoader::loadSpecification, domainObject);
+
final PageParameters pageParameters = EntityModel.createPageParameters(objectAdapter);
- //PageClassRegistry pageClassRegistry = guiceBeanProvider.lookup(PageClassRegistry.class);
final Class<? extends Page> pageClass = pageClassRegistry.getPageClass(PageType.ENTITY);
final RequestCycle requestCycle = RequestCycle.get();