You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2023/04/05 09:32:36 UTC
[causeway] 01/01: CAUSEWAY-3412: reworks runPersonas to execute all in a single ExecutionContext
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-3412
in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 7175a9bab47db7bc0a5102a39968e71f8ba88f45
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Apr 5 11:32:13 2023 +0200
CAUSEWAY-3412: reworks runPersonas to execute all in a single ExecutionContext
---
.../applib/fixturescripts/FixtureScripts.java | 23 ++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScripts.java b/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScripts.java
index bafed10f24..e89160e3fb 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScripts.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScripts.java
@@ -439,14 +439,21 @@ public class FixtureScripts {
@SafeVarargs
@Programmatic
- public final void runPersonas(final PersonaWithBuilderScript<?,? extends BuilderScriptAbstract<?>> ... personaScripts) {
- for (val personaWithBuilderScript : personaScripts) {
-
- val script = _Casts.<PersonaWithBuilderScript<Object,BuilderScriptAbstract<Object>>>
- uncheckedCast(personaWithBuilderScript);
-
- runPersona(script);
- }
+ public final void runPersonas(final PersonaWithBuilderScript<?,? extends BuilderScriptAbstract<?>> ... personas) {
+ interactionService.callAnonymous(()->
+ transactionService.callWithinCurrentTransactionElseCreateNew(()->
+ runFixtureScript(new FixtureScript() {
+ @Override
+ protected void execute(final ExecutionContext executionContext) {
+ for (val personaWithBuilderScript : personas) {
+ val fixtureScript = personaWithBuilderScript.builder();
+ executionContext.executeChild(this, fixtureScript);
+ }
+ }
+ }, null)
+ )
+ )
+ .ifFailureFail();
}
@Programmatic