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 2021/06/11 12:31:26 UTC
[isis] 03/08: ISIS-2732: simplifies FixturesLifecycleService
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2732
in repository https://gitbox.apache.org/repos/asf/isis.git
commit b9b2f25d04ee842b61e19e1b572780e4253429cb
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 11:59:18 2021 +0100
ISIS-2732: simplifies FixturesLifecycleService
---
.../applib/services/FixturesLifecycleService.java | 47 +++++-----------------
1 file changed, 11 insertions(+), 36 deletions(-)
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/FixturesLifecycleService.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/FixturesLifecycleService.java
index 782c49d..94f9add 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/FixturesLifecycleService.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/FixturesLifecycleService.java
@@ -18,8 +18,8 @@
*/
package org.apache.isis.testing.fixtures.applib.services;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
+import java.lang.reflect.InvocationTargetException;
+
import javax.inject.Inject;
import javax.inject.Named;
@@ -32,14 +32,11 @@ import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.config.environment.IsisSystemEnvironment;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.core.metamodel.events.MetamodelEvent;
-import org.apache.isis.testing.fixtures.applib.clock.clock.Clock;
-import org.apache.isis.testing.fixtures.applib.clock.clock.FixtureClock;
import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
/**
@@ -55,37 +52,22 @@ public class FixturesLifecycleService {
@SuppressWarnings("unused")
- @Inject
- private InteractionService interactionService; // depends on relationship
- @Inject
- private IsisSystemEnvironment isisSystemEnvironment;
- @Inject
- private IsisConfiguration isisConfiguration;
- @Inject
- private ServiceInjector serviceInjector;
- @Inject
- private FixtureScripts fixtureScripts;
+ private final FixtureScripts fixtureScripts;
private FixtureScript initialFixtureScript;
+ @Inject
+ public FixturesLifecycleService(
+ final IsisConfiguration isisConfiguration,
+ final FixtureScripts fixtureScripts) {
- @PostConstruct
- public void postConstruct() {
-
- // a bit of a workaround, but required if anything in the metamodel (for example, a
- // ValueSemanticsProvider for a date value type) needs to use the Clock singleton
- // we do this after loading the services to allow a service to prime a different clock
- // implementation (eg to use an NTP time service).
- if (isisSystemEnvironment.isPrototyping() && !Clock.isInitialized()) {
- FixtureClock.initialize();
- }
+ this.fixtureScripts = fixtureScripts;
final Class<?> initialScript = isisConfiguration.getTesting().getFixtures().getInitialScript();
if (initialScript != null && FixtureScript.class.isAssignableFrom(initialScript)) {
try {
- initialFixtureScript = (FixtureScript) initialScript.newInstance();
- serviceInjector.injectServicesInto(initialFixtureScript);
- } catch (InstantiationException | IllegalAccessException e) {
+ initialFixtureScript = (FixtureScript) initialScript.getDeclaredConstructor().newInstance();
+ } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
initialFixtureScript = null;
}
}
@@ -102,13 +84,6 @@ public class FixturesLifecycleService {
log.info("install initial fixtures from script {}", initialFixtureScript.getFriendlyName());
fixtureScripts.run(initialFixtureScript);
}
-
- }
-
-
- @PreDestroy
- public void preDestroy() {
-
}
}