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/17 10:10:21 UTC
[isis] 02/02: ISIS-2746: fixes the order in which fixtures and seed
services are called once MetamodelEvent (post build) is fired
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2746
in repository https://gitbox.apache.org/repos/asf/isis.git
commit a71d8dc3b688d0c7300ecd800aa73f17c38b6812
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jun 17 11:09:50 2021 +0100
ISIS-2746: fixes the order in which fixtures and seed services are called once MetamodelEvent (post build) is fired
---
.../ApplicationFeatureRepositoryDefault.java | 3 +++
.../dom/_infra/seed/SeedServiceAbstract.java | 3 +++
.../applib/seed/SeedSecurityModuleService.java | 18 ++++++++---------
.../services/InitialFixtureScriptsInstaller.java | 23 ++++++++++------------
4 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index 9cfa93b..971c965 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -33,7 +33,9 @@ import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.SemanticsOf;
@@ -91,6 +93,7 @@ implements ApplicationFeatureRepository {
}
// -- init
+ @Order(OrderPrecedence.MIDPOINT)
@EventListener(MetamodelEvent.class)
public void onMetamodelEvent(MetamodelEvent event) {
if (event.isPostMetamodel()
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/_infra/seed/SeedServiceAbstract.java b/examples/demo/domain/src/main/java/demoapp/dom/_infra/seed/SeedServiceAbstract.java
index 2cc1f75..8621521 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/_infra/seed/SeedServiceAbstract.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/_infra/seed/SeedServiceAbstract.java
@@ -22,6 +22,7 @@ import java.util.function.Supplier;
import javax.inject.Inject;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.springframework.context.event.EventListener;
import org.apache.isis.core.metamodel.events.MetamodelEvent;
@@ -33,6 +34,7 @@ import lombok.NonNull;
import demoapp.dom._infra.values.ValueHolder;
import demoapp.dom._infra.values.ValueHolderFixtureFactory;
import demoapp.dom._infra.values.ValueHolderRepository;
+import org.springframework.core.annotation.Order;
public abstract class SeedServiceAbstract implements SeedService {
@@ -49,6 +51,7 @@ public abstract class SeedServiceAbstract implements SeedService {
@EventListener(MetamodelEvent.class)
+ @Order(OrderPrecedence.MIDPOINT)
public void onAppLifecycleEvent(MetamodelEvent event) {
if (event.isPostMetamodel()) {
fixtureScripts.run(fixtureScriptSupplier.get());
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/seed/SeedSecurityModuleService.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/seed/SeedSecurityModuleService.java
index 09ffe08..e1f24f4 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/seed/SeedSecurityModuleService.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/seed/SeedSecurityModuleService.java
@@ -18,20 +18,18 @@
*/
package org.apache.isis.extensions.secman.applib.seed;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.event.EventListener;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Service;
-
+import lombok.extern.log4j.Log4j2;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.core.metamodel.events.MetamodelEvent;
import org.apache.isis.extensions.secman.applib.seed.scripts.SeedUsersAndRolesFixtureScript;
import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
-import lombok.extern.log4j.Log4j2;
+import javax.inject.Inject;
+import javax.inject.Named;
/**
* Automatically seeds the built-in roles (and permissions) for both Secman
@@ -48,7 +46,6 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isis.ext.secman.SeedSecurityModuleService")
-@Order(OrderPrecedence.MIDPOINT)
@Qualifier("Default")
@Log4j2
public class SeedSecurityModuleService {
@@ -60,6 +57,7 @@ public class SeedSecurityModuleService {
this.fixtureScripts = fixtureScripts;
}
+ @Order(OrderPrecedence.MIDPOINT - 100)
@EventListener(MetamodelEvent.class)
public void onMetamodelEvent(final MetamodelEvent event) {
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/InitialFixtureScriptsInstaller.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/InitialFixtureScriptsInstaller.java
index c090602..4683ace 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/InitialFixtureScriptsInstaller.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/services/InitialFixtureScriptsInstaller.java
@@ -18,31 +18,27 @@
*/
package org.apache.isis.testing.fixtures.applib.services;
-import java.lang.reflect.InvocationTargetException;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Primary;
-import org.springframework.context.event.EventListener;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Service;
-
+import lombok.extern.log4j.Log4j2;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.metamodel.events.MetamodelEvent;
import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
-import lombok.extern.log4j.Log4j2;
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.lang.reflect.InvocationTargetException;
/**
* @since 2.0 {@index}
*/
@Service
@Named("isis.testing.fixtures.InitialFixtureScriptsInstaller")
-@Order(OrderPrecedence.MIDPOINT)
@Primary
@Qualifier("Default")
@Log4j2
@@ -72,6 +68,7 @@ public class InitialFixtureScriptsInstaller {
}
@EventListener(MetamodelEvent.class)
+ @Order(OrderPrecedence.LAST - 100)
public void onMetamodelEvent(final MetamodelEvent event) {
log.debug("received metamodel event {}", event);