Hi all.
I have a FixtureScript that invokes some factory methods that include setters
that are invoking by wrapping the domain object (for ensuring that the
validateXXX, modifyXXX, etc. methods are also invoked).
public class TwentyPercentForTwoOrdersCoupon extends FixtureScript {
@Override
protected void execute(
final FixtureScript.ExecutionContext executionContext) {
this.coupons.createCoupon("50€-2ORDERS", LocalDate.now(),
LocalDate.now().plusDays(3), 2L, null, new BigDecimal("50"));
}
@Inject
private Coupons coupons;
}
@DomainService(repositoryFor = Coupon.class)
public class Coupons extends AbstractTellmegenService {
// {{ createCoupon (action)
@MemberOrder(sequence = "2.5.1")
public Coupon createCoupon(@ParameterLayout(named = "Code") final String
code,
@ParameterLayout(named = "Start Date") final LocalDate startDate,
@ParameterLayout(named = "Due Date") final LocalDate dueDate,
@ParameterLayout(named = "Max Number of Kits") final Long
maxNumberOfKits,
@ParameterLayout(named = "Percent Discount (0-100)")
@Parameter(optionality = Optionality.OPTIONAL) final Integer percentDiscount,
@ParameterLayout(named = "Amount Discount (€)")
@Parameter(optionality = Optionality.OPTIONAL) final BigDecimal amountDiscount)
{
final Coupon coupon = this.newTransientInstance(Coupon.class);
this.wrap(coupon).setCode(code);
this.wrap(coupon).setStartDate(startDate);
this.wrap(coupon).setDueDate(dueDate);
this.wrap(coupon).setMaxNumberOfOrders(maxNumberOfKits);
this.wrap(coupon).setPercentDiscount(percentDiscount);
this.wrap(coupon).setAmountDiscount(amountDiscount);
// Save DB
this.persist(coupon);
this.getContainer().flush();
return coupon;
}
But when executing from the Fixture Script, the following exception is thrown.
Any ideas about how to avoid it?
I'm using the security add-on. Perhaps it must be initialized somewhere on the
Fixture Script?
Thanks!
11:06:11,379 [WebAppContext main WARN ] Failed startup of
context
o.e.j.w.WebAppContext{,file:/Users/oscarboubou/dev/tellmegen/dbtg/webapp/src/main/webapp/},src/main/webapp
javax.servlet.ServletException: com.google.inject.ProvisionException: Guice
provision errors:
1) Error in custom provider,
org.apache.isis.applib.services.wrapper.HiddenException: Reason: Could not
locate application user for initialisation. Identifier:
com.tellmegen.domain.model.order.coupon.Coupon#code()
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:132)
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:132)
while locating org.apache.isis.core.runtime.system.IsisSystem
for field at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:1)
while locating webapp.application.TellMeGenApplication
1 error
at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:450)
at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:118)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:768)
at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)
at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
at
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at
org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
at org.eclipse.jetty.server.Server.doStart(Server.java:282)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at
org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:86)
at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
at org.apache.isis.WebServer.main(WebServer.java:25)
Caused by: com.google.inject.ProvisionException: Guice provision errors:
1) Error in custom provider,
org.apache.isis.applib.services.wrapper.HiddenException: Reason: Could not
locate application user for initialisation. Identifier:
com.tellmegen.domain.model.order.coupon.Coupon#code()
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:132)
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:132)
while locating org.apache.isis.core.runtime.system.IsisSystem
for field at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:1)
while locating webapp.application.TellMeGenApplication
1 error
at
com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451)
at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65)
at
com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:256)
at
webapp.application.TellMeGenApplication.init(TellMeGenApplication.java:204)
at org.apache.wicket.Application.initApplication(Application.java:823)
at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:424)
... 16 more
Caused by: org.apache.isis.applib.services.wrapper.HiddenException: Reason:
Could not locate application user for initialisation. Identifier:
com.tellmegen.domain.model.order.coupon.Coupon#code()
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:713)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:681)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.checkVisibility(DomainObjectInvocationHandler.java:663)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.handleSetterMethodOnProperty(DomainObjectInvocationHandler.java:387)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:216)
at
org.apache.isis.core.wrapper.proxy.ProxyInstantiatorForJavassist$1.invoke(ProxyInstantiatorForJavassist.java:52)
at
com.tellmegen.domain.model.order.coupon.Coupon_$$_jvstc93_5.setCode(Coupon_$$_jvstc93_5.java)
at
com.tellmegen.domain.model.order.coupon.Coupons.createCoupon(Coupons.java:36)
at
com.tellmegen.fixture.model.orders.TwentyPercentForTwoOrdersCoupon.execute(TwentyPercentForTwoOrdersCoupon.java:35)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:549)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildT(FixtureScript.java:528)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildT(FixtureScript.java:498)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:487)
at
com.tellmegen.fixture.TellMeGenDemoFixture.execute(TellMeGenDemoFixture.java:58)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:549)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildT(FixtureScript.java:528)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildT(FixtureScript.java:498)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:487)
at
com.tellmegen.fixture.TellMeGenDemoWithAllRecordsFixture.execute(TellMeGenDemoWithAllRecordsFixture.java:25)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:549)
at
org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.access$0(FixtureScript.java:546)
at
org.apache.isis.applib.fixturescripts.FixtureScript.run(FixtureScript.java:719)
at
org.apache.isis.applib.fixturescripts.FixtureScript.install(FixtureScript.java:814)
at
org.apache.isis.core.runtime.fixtures.FixturesInstallerDelegate.installFixture(FixturesInstallerDelegate.java:205)
at
org.apache.isis.core.runtime.fixtures.FixturesInstallerDelegate.installFixtureInTransaction(FixturesInstallerDelegate.java:171)
at
org.apache.isis.core.runtime.fixtures.FixturesInstallerDelegate.installFixtures(FixturesInstallerDelegate.java:158)
at
org.apache.isis.core.runtime.fixtures.FixturesInstallerDelegate.installFixtures(FixturesInstallerDelegate.java:138)
at
org.apache.isis.core.runtime.fixtures.FixturesInstallerAbstract.installFixtures(FixturesInstallerAbstract.java:42)
at
org.apache.isis.core.runtime.systemusinginstallers.IsisSystemAbstract.installFixturesIfRequired(IsisSystemAbstract.java:85)
at
org.apache.isis.core.runtime.system.IsisSystemFixturesHookAbstract.init(IsisSystemFixturesHookAbstract.java:128)
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:65)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at
com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
at
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
at
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
at
com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
... 21 more
11:06:11,449 [AbstractConnector main INFO ] Started
[email protected]:8080