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 <[email protected]> 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
