protected void injectServices() { if(container != null) { for (final ExceptionRecognizer ers : exceptionRecognizers) { container.injectServicesInto(ers); } } }
@Programmatic public F build( final FixtureScript parentFixtureScript, ExecutionContext executionContext) { final F onFixture = (F) BuilderScriptAbstract.this; parentFixtureScript.container.injectServicesInto(onFixture); execPrereqs(executionContext); // returns the fixture script that is run // (either this one, or possibly one previously executed). return (F)executionContext.executeChildT(parentFixtureScript, this); }
@Action(semantics = SemanticsOf.SAFE) @HomePage public HomePageViewModel homePage() { return container.injectServicesInto(new HomePageViewModel()); }
@Action( semantics = SemanticsOf.SAFE //hidden = Where.EVERYWHERE ) @HomePage public ToDoAppDashboard lookup() { return container.injectServicesInto(new ToDoAppDashboard()); }
/** * Executes a child {@link FixtureScript fixture script}, injecting services into it first, and (for any results * that are {@link org.apache.isis.applib.fixturescripts.FixtureScript.ExecutionContext#addResult(FixtureScript, Object)} added), * uses a key that overriding the default name of the fixture script with one more meaningful in the context of this fixture. * * @return the child fixture script. */ @Programmatic public <T extends FixtureScript> T executeChildT(final FixtureScript callingFixtureScript, final String localNameOverride, final T childFixtureScript) { childFixtureScript.setParentPath(callingFixtureScript.pathWith("")); childFixtureScript.withTracing(callingFixtureScript.tracePrintStream); // cascade down if(localNameOverride != null) { childFixtureScript.setLocalName(localNameOverride); } callingFixtureScript.getContainer().injectServicesInto(childFixtureScript); final T childOrPreviouslyExecuted = executeChildIfNotAlready(childFixtureScript); return childOrPreviouslyExecuted; }
@Override public void evaluate() throws Throwable { isft.getContainer().injectServicesInto(target); isft.beginTran(); try { base.evaluate(); isft.endTran(); isft.nextSession(); } catch(final Throwable e) { // if test failed to clean up after itself, then take care of it here. endTransactionTilDone(); isft.nextSession(); final List<Throwable> causalChain = Throwables.getCausalChain(e); // if underlying cause is an applib-defined exception, throw that rather than Isis' wrapper exception for (final Throwable cause : causalChain) { if(cause instanceof RecoverableException || cause instanceof NonRecoverableException) { throw cause; } } throw e; } }