You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/10/16 16:01:31 UTC
[isis] 09/09: ISIS-1742: fixes up compile issues resulting from
removal of methods from DomainObjectContainer
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 0fdeaf933b6e40ad2b2c450619de7d0243e42dfe
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 16 17:01:08 2017 +0100
ISIS-1742: fixes up compile issues resulting from removal of methods from DomainObjectContainer
Includes some refactoring of DomainServiceProvider
---
.../isis/applib/fixturescripts/FixtureScript.java | 7 +---
.../isis/applib/fixturescripts/FixtureScripts.java | 19 ++++++++--
.../isis/applib/services/bookmark/Bookmark.java | 4 ++
.../exceprecog/ExceptionRecognizerComposite.java | 8 ++--
.../schema/services/jaxb/JaxbServiceDefault.java | 8 ++--
.../ExceptionRecognizerCompositeTest.java | 11 ++++--
.../integtestsupport/IntegrationTestAbstract.java | 5 ++-
.../core/integtestsupport/IsisSystemForTest.java | 4 --
.../container/DomainObjectContainerDefault.java | 8 ++--
.../services/grid/GridLoaderServiceDefault.java | 6 +--
.../ApplicationFeatureRepositoryDefaultTest.java | 20 +++++-----
.../scenarios/DomainServiceProvider.java | 2 -
.../scenarios/DomainServiceProviderMockery.java | 43 +++++++++++++++-------
.../specsupport/scenarios/ScenarioExecution.java | 7 +---
14 files changed, 88 insertions(+), 64 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
index 4bbcf68..99eb406 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
@@ -542,7 +542,7 @@ public abstract class FixtureScript
if(localNameOverride != null) {
childFixtureScript.setLocalName(localNameOverride);
}
- callingFixtureScript.container.injectServicesInto(childFixtureScript);
+ callingFixtureScript.serviceRegistry.injectServicesInto(childFixtureScript);
executeChildIfNotAlready(childFixtureScript);
@@ -864,7 +864,7 @@ public abstract class FixtureScript
* Convenience method
*/
protected <T> T mixin(final Class<T> mixinClass, final Object mixedIn) {
- return container.mixin(mixinClass, mixedIn);
+ return factoryService.mixin(mixinClass, mixedIn);
}
/**
@@ -891,9 +891,6 @@ public abstract class FixtureScript
protected FixtureScripts fixtureScripts;
@javax.inject.Inject
- protected DomainObjectContainer container;
-
- @javax.inject.Inject
protected FactoryService factoryService;
@javax.inject.Inject
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
index 3a5abd0..547bc2c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
@@ -48,7 +48,11 @@ import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecification;
import org.apache.isis.applib.services.memento.MementoService;
import org.apache.isis.applib.services.memento.MementoService.Memento;
+import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.applib.util.ObjectContracts;
/**
@@ -303,7 +307,7 @@ public abstract class FixtureScripts extends AbstractService {
// if this method is called programmatically, the caller may have simply new'd up the fixture script
// (rather than use container.newTransientInstance(...). To allow this use case, we need to ensure that
// domain services are injected into the fixture script.
- container.injectServicesInto(fixtureScript);
+ serviceRegistry.injectServicesInto(fixtureScript);
return runScript(fixtureScript, parameters);
}
@@ -404,12 +408,12 @@ public abstract class FixtureScripts extends AbstractService {
if(object == null) {
return null;
}
- if (object instanceof ViewModel || container.isPersistent(object)) {
+ if (object instanceof ViewModel || repositoryService.isPersistent(object)) {
// continue
} else {
switch(getNonPersistedObjectsStrategy()) {
case PERSIST:
- container.flush();
+ transactionService.flushTransaction();
break;
case IGNORE:
return null;
@@ -446,6 +450,15 @@ public abstract class FixtureScripts extends AbstractService {
BookmarkService bookmarkService;
@javax.inject.Inject
+ ServiceRegistry serviceRegistry;
+
+ @javax.inject.Inject
+ RepositoryService repositoryService;
+
+ @javax.inject.Inject
+ TransactionService transactionService;
+
+ @javax.inject.Inject
ClassDiscoveryService classDiscoveryService;
@javax.inject.Inject
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
index 7d976a0..a1f97e7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
@@ -40,6 +40,10 @@ public class Bookmark implements Serializable {
protected static final char SEPARATOR = ':';
+ public static Bookmark create(final String str) {
+ return str != null? new Bookmark(str): null;
+ }
+
public OidDto toOidDto() {
final OidDto oidDto = new OidDto();
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
index 802a89d..b3d218e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
@@ -27,9 +27,9 @@ import javax.annotation.PreDestroy;
import com.google.common.collect.Lists;
-import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
/**
* Convenience implementation of {@link ExceptionRecognizer} that loops through a list of
@@ -141,9 +141,9 @@ public class ExceptionRecognizerComposite implements ExceptionRecognizer2 {
}
protected void injectServices() {
- if(container != null) {
+ if(serviceRegistry != null) {
for (final ExceptionRecognizer ers : exceptionRecognizers) {
- container.injectServicesInto(ers);
+ serviceRegistry.injectServicesInto(ers);
}
}
}
@@ -168,7 +168,7 @@ public class ExceptionRecognizerComposite implements ExceptionRecognizer2 {
// //////////////////////////////////////
@javax.inject.Inject
- DomainObjectContainer container;
+ ServiceRegistry serviceRegistry;
@javax.inject.Inject
TranslationService translationService;
diff --git a/core/applib/src/main/java/org/apache/isis/schema/services/jaxb/JaxbServiceDefault.java b/core/applib/src/main/java/org/apache/isis/schema/services/jaxb/JaxbServiceDefault.java
index a6072b8..8e1beef 100644
--- a/core/applib/src/main/java/org/apache/isis/schema/services/jaxb/JaxbServiceDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/schema/services/jaxb/JaxbServiceDefault.java
@@ -19,10 +19,10 @@ package org.apache.isis.schema.services.jaxb;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
-import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.schema.utils.jaxbadapters.PersistentEntityAdapter;
@DomainService(
@@ -33,17 +33,17 @@ public class JaxbServiceDefault extends JaxbService.Simple {
protected void configure(final Unmarshaller unmarshaller) {
final PersistentEntityAdapter adapter = new PersistentEntityAdapter();
- container.injectServicesInto(adapter);
+ serviceRegistry.injectServicesInto(adapter);
unmarshaller.setAdapter(PersistentEntityAdapter.class, adapter);
}
protected void configure(final Marshaller marshaller) {
final PersistentEntityAdapter adapter = new PersistentEntityAdapter();
- container.injectServicesInto(adapter);
+ serviceRegistry.injectServicesInto(adapter);
marshaller.setAdapter(PersistentEntityAdapter.class, adapter);
}
@javax.inject.Inject
- DomainObjectContainer container;
+ ServiceRegistry serviceRegistry;
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
index e91f111..68b9aff 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
@@ -19,13 +19,16 @@
package org.apache.isis.applib.services.exceprecog;
import java.util.Map;
+
import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.apache.isis.applib.DomainObjectContainer;
+
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
@@ -56,7 +59,7 @@ public class ExceptionRecognizerCompositeTest {
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
@Mock
- private DomainObjectContainer mockContainer;
+ private ServiceRegistry mockServiceRegistry;
@Mock
private TranslationService mockTranslationService;
@@ -64,10 +67,10 @@ public class ExceptionRecognizerCompositeTest {
@Before
public void setUp() throws Exception {
composite = new ExceptionRecognizerComposite();
- composite.container = mockContainer;
+ composite.serviceRegistry = mockServiceRegistry;
composite.translationService = mockTranslationService;
- context.ignoring(mockContainer);
+ context.ignoring(mockServiceRegistry);
context.ignoring(mockTranslationService);
}
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
index 935577d..7de3f00 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
@@ -34,6 +34,7 @@ import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.fixtures.FixtureClock;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.applib.services.clock.ClockService;
+import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.scratchpad.Scratchpad;
import org.apache.isis.applib.services.sessmgmt.SessionManagementService;
@@ -186,7 +187,7 @@ public abstract class IntegrationTestAbstract {
* Convenience method
*/
protected <T> T mixin(final Class<T> mixinClass, final Object mixedIn) {
- return container().mixin(mixinClass, mixedIn);
+ return service(FactoryService.class).mixin(mixinClass, mixedIn);
}
@@ -208,7 +209,7 @@ public abstract class IntegrationTestAbstract {
return new Statement() {
@Override
public void evaluate() throws Throwable {
- isft.getContainer().injectServicesInto(target);
+ isft.getIsisSessionFactory().getServicesInjector().injectServicesInto(target);
isft.beginTran();
try {
base.evaluate();
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
index f9afd98..ce93a63 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
@@ -344,10 +344,6 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
}
}
- public DomainObjectContainer getContainer() {
- return getService(DomainObjectContainer.class);
- }
-
//endregion
//region > isisSystem (populated during setup)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index 9687c0e..907df32 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -34,7 +34,6 @@ import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
-import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
@@ -85,7 +84,7 @@ public class DomainObjectContainerDefault
throw new IllegalArgumentException("Must specify a reference for disposing an object");
}
final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(persistentObject));
- if (!isPersistent(persistentObject)) {
+ if (!repositoryService.isPersistent(persistentObject)) {
throw new RepositoryException("Object not persistent: " + adapter);
}
@@ -206,7 +205,7 @@ public class DomainObjectContainerDefault
// TODO check aggregation is supported
return;
}
- if (isPersistent(domainObject)) {
+ if (repositoryService.isPersistent(domainObject)) {
throw new PersistFailedException("Object already persistent; OID=" + adapter.getOid());
}
persistenceSessionServiceInternal.makePersistent(adapter);
@@ -292,6 +291,9 @@ public class DomainObjectContainerDefault
ServiceRegistry serviceRegistry;
@javax.inject.Inject
+ RepositoryService repositoryService;
+
+ @javax.inject.Inject
WrapperFactory wrapperFactory;
@javax.inject.Inject
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
index 3bcd2a5..c61a353 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
@@ -34,7 +34,6 @@ import com.google.common.io.Resources;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
@@ -42,6 +41,7 @@ import org.apache.isis.applib.layout.component.Grid;
import org.apache.isis.applib.services.grid.GridLoaderService;
import org.apache.isis.applib.services.grid.GridSystemService;
import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
@DomainService(
@@ -148,7 +148,7 @@ public class GridLoaderServiceDefault implements GridLoaderService {
final String resourceName = resourceNameFor(domainClass);
final String message = "Failed to parse " + resourceName + " file (" + ex.getMessage() + ")";
if(supportsReloading()) {
- container.warnUser(message);
+ messageService.warnUser(message);
}
LOG.warn(message);
@@ -190,7 +190,7 @@ public class GridLoaderServiceDefault implements GridLoaderService {
DeploymentCategoryProvider deploymentCategoryProvider;
@javax.inject.Inject
- DomainObjectContainer container;
+ MessageService messageService;
@javax.inject.Inject
JaxbService jaxbService;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
index e81b08f..ca1a1e2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
@@ -186,43 +186,43 @@ public class ApplicationFeatureRepositoryDefaultTest {
// then
final Sequence sequence = context.sequence("loadSequence");
context.checking(new Expectations() {{
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newClass(Bar.class.getName()))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newMember(Bar.class.getName(), "someProperty"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newMember(Bar.class.getName(), "someCollection"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newMember(Bar.class.getName(), "someAction"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newPackage("org.isisaddons.module.security.dom.feature"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newPackage("org.isisaddons.module.security.dom"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newPackage("org.isisaddons.module.security"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newPackage("org.isisaddons.module"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newPackage("org.isisaddons"))));
- oneOf(mockContainer).newTransientInstance(ApplicationFeature.class);
+ oneOf(mockFactoryService).instantiate(ApplicationFeature.class);
inSequence(sequence);
will(returnValue(new ApplicationFeature(ApplicationFeatureId.newPackage("org"))));
}});
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProvider.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProvider.java
index ca73bd5..0ee22ef 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProvider.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProvider.java
@@ -30,8 +30,6 @@ import org.apache.isis.applib.DomainObjectContainer;
*/
public interface DomainServiceProvider {
- public abstract DomainObjectContainer getContainer();
-
public abstract <T> T getService(Class<T> serviceClass);
/**
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProviderMockery.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProviderMockery.java
index 4d4d2cd..65e8c41 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProviderMockery.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/DomainServiceProviderMockery.java
@@ -18,18 +18,24 @@ package org.apache.isis.core.specsupport.scenarios;
import java.util.Map;
import java.util.Set;
+
import com.google.common.collect.Maps;
+
import org.hamcrest.Description;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.api.Action;
import org.jmock.api.Invocation;
+
import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.core.unittestsupport.jmocking.JavassistImposteriser;
class DomainServiceProviderMockery implements DomainServiceProvider {
- private DomainObjectContainer mockContainer = null;
+ private RepositoryService mockRepositoryService = null;
+ private FactoryService mockFactoryService = null;
private final Map<Class<?>, Object> mocks = Maps.newHashMap();
private Mockery context;
@@ -47,42 +53,51 @@ class DomainServiceProviderMockery implements DomainServiceProvider {
mocks.clear();
}
+
+ @SuppressWarnings("unchecked")
@Override
- public DomainObjectContainer getContainer() {
- if(mockContainer == null) {
- mockContainer = getService(DomainObjectContainer.class);
+ public <T> T getService(Class<T> serviceClass) {
+ Object mock = doGetService(serviceClass);
+
+ if(FactoryService.class.isAssignableFrom(serviceClass)) {
+ mockFactoryService = (FactoryService) mock;
+
context.checking(new Expectations() {
{
- allowing(mockContainer).newTransientInstance(with(Expectations.<Class<?>>anything()));
+ allowing(mockFactoryService).instantiate(with(Expectations.<Class<?>>anything()));
will(new Action() {
-
+
@SuppressWarnings("rawtypes")
public Object invoke(Invocation invocation) throws Throwable {
Class cls = (Class) invocation.getParameter(0);
return scenarioExecution.injectServices(cls.newInstance());
}
-
+
public void describeTo(Description description) {
description.appendText("newTransientInstance");
}
});
-
- allowing(mockContainer).persistIfNotAlready(with(anything()));
}
});
}
- return mockContainer;
+ if(RepositoryService.class.isAssignableFrom(serviceClass)) {
+ mockRepositoryService = (RepositoryService) mock;
+ context.checking(new Expectations() {
+ {
+ allowing(mockRepositoryService).persist(with(anything()));
+ }
+ });
+ }
+ return (T) mock;
}
- @SuppressWarnings("unchecked")
- @Override
- public <T> T getService(Class<T> serviceClass) {
+ protected <T> Object doGetService(final Class<T> serviceClass) {
Object mock = mocks.get(serviceClass);
if(mock == null) {
mock = context.mock(serviceClass);
}
mocks.put(serviceClass, mock);
- return (T) mock;
+ return mock;
}
@Override
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
index 511e3cb..eba5761 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
@@ -147,12 +147,7 @@ public abstract class ScenarioExecution {
* @throws IllegalStateException if not available
*/
public DomainObjectContainer container() {
- final DomainObjectContainer container = dsp.getContainer();
- if(container == null) {
- throw new IllegalStateException(
- "No DomainObjectContainer available");
- }
- return container;
+ return service(DomainObjectContainer.class);
}
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.