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() {
-
     }
 
 }