You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com> on 2015/05/10 21:31:33 UTC

Re: Fixture Scripts - Invoking WrapperFactory.wrap() in actions

Hi Dan.

I’m not sure how to use the SudoService inside a FixtureScript.

I have the following:


public class DemoWithAllRecordsFixture extends FixtureScript {

    public DemoWithAllRecordsFixture() {
        this.withDiscoverability(Discoverability.DISCOVERABLE);
    }

    @Override
    protected void execute(
            final ExecutionContext executionContext) {

        executionContext.executeChild(this, new ExcelInheritedConditionsSNPGenotypeFixture());
        executionContext.executeChild(this, new ExcelDrugsSNPGenotypeFixture());
        executionContext.executeChild(this, new ExcelTraitsSNPGenotypeFixture());

    }

The ExcelInheritedConditionsSNPGenotypeFixture contains many wrapped action invocations, so the following exception is thrown:

Caused by: org.apache.isis.applib.services.wrapper.HiddenException: Reason: Could not locate application user for initialisation. Identifier: com.tellmegen.domain.model.inheritedconditions.InheritedCondition#upsertSNPGenotype(java.lang.Integer,com.tellmegen.domain.model.AppliesToSex,java.lang.String,java.lang.String,com.tellmegen.domain.model.inheritedconditions.InheritedConditionHeredity,com.tellmegen.domain.model.inheritedconditions.InheritedConditionPhenotype,com.tellmegen.domain.model.inheritedconditions.InheritedConditionStatus,java.lang.String,java.lang.String)
	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:732)
	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:700)
	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.checkVisibility(DomainObjectInvocationHandler.java:682)
	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.handleActionMethod(DomainObjectInvocationHandler.java:607)
	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:263)
	at org.apache.isis.core.wrapper.proxy.ProxyInstantiatorForJavassist$1.invoke(ProxyInstantiatorForJavassist.java:72)
	at com.tellmegen.domain.model.inheritedconditions.InheritedCondition_$$_jvstcc_7.upsertSNPGenotype(InheritedCondition_$$_jvstcc_7.java)
	at com.tellmegen.domain.model.importing.ImportInheritedConditionSNPGenotype.saveToDatabase(ImportInheritedConditionSNPGenotype.java:244)
	at com.tellmegen.domain.model.importing.ImportInheritedConditionsSNPGenotypeService.importInheritedConditionsSNPGenotypes(ImportInheritedConditionsSNPGenotypeService.java:38)
	at com.tellmegen.fixture.model.inheritedconditionsnpgenotype.ExcelInheritedConditionsSNPGenotypeFixture.execute(ExcelInheritedConditionsSNPGenotypeFixture.java:24)
	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:34)
	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)


If try to use them inside a SudoService.sudo(…) call I don’t have access to the “executionContext” (it’s private).

So basically, I would need to make the “executionContext” field of FixtureScript “public”, or being able to use SudoService to override the User globally, without needing to use a “Callable” construct.

Do you agree?

Thanks,

Oscar





> El 18/4/2015, a las 12:35, GESCONSULTOR <o....@gesconsultor.com> escribió:
> 
> 
> 
> Many thanks, Dan.
> 
> I'll try it!
> 
>> El 18/4/2015, a las 12:26, Dan Haywood <da...@haywood-associates.co.uk> escribió:
>> 
>> Hi Oscar,
>> 
>> I hit this same issue a couple of weeks ago while refactoring our example
>> todoapp, which led me to inventing the "SudoService".
>> 
>> Not yet documented, but you can see its usage here [1]
>> 
>> HTH
>> Dan
>> 
>> [1]
>> https://github.com/isisaddons/isis-app-todoapp/blob/master/fixture/src/main/java/todoapp/fixture/module/todoitem/ToDoItemCreate.java#L134
>> 
>>> On 18 April 2015 at 10:17, QUALITEC - Óscar Bou <ob...@qualitec.es> wrote:
>>> 
>>> 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
>>> SelectChannelConnector@0.0.0.0:8080


Óscar Bou Bou
Responsable de Producto
Auditor Jefe de Certificación ISO 27001 en BSI
CISA, CRISC, APMG ISO 20000, ITIL-F

   902 900 231 / 620 267 520
   http://www.twitter.com/oscarbou <http://www.twitter.com/oscarbou>

   http://es.linkedin.com/in/oscarbou <http://es.linkedin.com/in/oscarbou>

   http://www.GesConsultor.com <http://www.gesconsultor.com/> 




Este mensaje y los ficheros anexos son confidenciales. Los mismos contienen información reservada que no puede ser difundida. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y avisar al remitente mediante reenvío a su dirección electrónica; no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
Su dirección de correo electrónico junto a sus datos personales constan en un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la de mantener el contacto con Ud. Si quiere saber de qué información disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153 bajo - 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015 (Valencia). Asimismo, es su responsabilidad comprobar que este mensaje o sus archivos adjuntos no contengan virus informáticos, y en caso que los tuvieran eliminarlos.






Re: Fixture Scripts - Invoking WrapperFactory.wrap() in actions

Posted by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>.
Just to keep it documented, I’ve used the following work-arround to override the user:
- Inject the “DomainObjectContainerDefault” service.
- Invoke "this.domainObjectContainerDefault.overrideUser(TgbAdminUser.ACCOUNT_NAME)” right before executing the fixtures with wrapped calls.

Despite the “overrideUser” method is properly marked as not being part of the API …



So basically it’s now:

public class DemoWithAllRecordsFixture extends FixtureScript {

    public DemoWithAllRecordsFixture() {
        this.withDiscoverability(Discoverability.DISCOVERABLE);
    }

    @Override
    protected void execute(
            final ExecutionContext executionContext) {

	this.domainObjectContainerDefault.overrideUser(TgbAdminUser.ACCOUNT_NAME);

        executionContext.executeChild(this, new ExcelInheritedConditionsSNPGenotypeFixture());
        executionContext.executeChild(this, new ExcelDrugsSNPGenotypeFixture());
        executionContext.executeChild(this, new ExcelTraitsSNPGenotypeFixture());

    }

    @Inject
    DomainObjectContainerDefault domainObjectContainerDefault;

}


HTH,

Oscar





> El 10/5/2015, a las 21:31, GESCONSULTOR - Óscar Bou <o....@gesconsultor.com> escribió:
> 
> Hi Dan.
> 
> I’m not sure how to use the SudoService inside a FixtureScript.
> 
> I have the following:
> 
> 
> public class DemoWithAllRecordsFixture extends FixtureScript {
> 
>     public DemoWithAllRecordsFixture() {
>         this.withDiscoverability(Discoverability.DISCOVERABLE);
>     }
> 
>     @Override
>     protected void execute(
>             final ExecutionContext executionContext) {
> 
>         executionContext.executeChild(this, new ExcelInheritedConditionsSNPGenotypeFixture());
>         executionContext.executeChild(this, new ExcelDrugsSNPGenotypeFixture());
>         executionContext.executeChild(this, new ExcelTraitsSNPGenotypeFixture());
> 
>     }
> 
> The ExcelInheritedConditionsSNPGenotypeFixture contains many wrapped action invocations, so the following exception is thrown:
> 
> Caused by: org.apache.isis.applib.services.wrapper.HiddenException: Reason: Could not locate application user for initialisation. Identifier: com.tellmegen.domain.model.inheritedconditions.InheritedCondition#upsertSNPGenotype(java.lang.Integer,com.tellmegen.domain.model.AppliesToSex,java.lang.String,java.lang.String,com.tellmegen.domain.model.inheritedconditions.InheritedConditionHeredity,com.tellmegen.domain.model.inheritedconditions.InheritedConditionPhenotype,com.tellmegen.domain.model.inheritedconditions.InheritedConditionStatus,java.lang.String,java.lang.String)
> 	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:732)
> 	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:700)
> 	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.checkVisibility(DomainObjectInvocationHandler.java:682)
> 	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.handleActionMethod(DomainObjectInvocationHandler.java:607)
> 	at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:263)
> 	at org.apache.isis.core.wrapper.proxy.ProxyInstantiatorForJavassist$1.invoke(ProxyInstantiatorForJavassist.java:72)
> 	at com.tellmegen.domain.model.inheritedconditions.InheritedCondition_$$_jvstcc_7.upsertSNPGenotype(InheritedCondition_$$_jvstcc_7.java)
> 	at com.tellmegen.domain.model.importing.ImportInheritedConditionSNPGenotype.saveToDatabase(ImportInheritedConditionSNPGenotype.java:244)
> 	at com.tellmegen.domain.model.importing.ImportInheritedConditionsSNPGenotypeService.importInheritedConditionsSNPGenotypes(ImportInheritedConditionsSNPGenotypeService.java:38)
> 	at com.tellmegen.fixture.model.inheritedconditionsnpgenotype.ExcelInheritedConditionsSNPGenotypeFixture.execute(ExcelInheritedConditionsSNPGenotypeFixture.java:24)
> 	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:34)
> 	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)
> 
> 
> If try to use them inside a SudoService.sudo(…) call I don’t have access to the “executionContext” (it’s private).
> 
> So basically, I would need to make the “executionContext” field of FixtureScript “public”, or being able to use SudoService to override the User globally, without needing to use a “Callable” construct.
> 
> Do you agree?
> 
> Thanks,
> 
> Oscar
> 
> 
> 
> 
> 
>> El 18/4/2015, a las 12:35, GESCONSULTOR <o.bou@gesconsultor.com <ma...@gesconsultor.com>> escribió:
>> 
>> 
>> 
>> Many thanks, Dan.
>> 
>> I'll try it!
>> 
>>> El 18/4/2015, a las 12:26, Dan Haywood <dan@haywood-associates.co.uk <ma...@haywood-associates.co.uk>> escribió:
>>> 
>>> Hi Oscar,
>>> 
>>> I hit this same issue a couple of weeks ago while refactoring our example
>>> todoapp, which led me to inventing the "SudoService".
>>> 
>>> Not yet documented, but you can see its usage here [1]
>>> 
>>> HTH
>>> Dan
>>> 
>>> [1]
>>> https://github.com/isisaddons/isis-app-todoapp/blob/master/fixture/src/main/java/todoapp/fixture/module/todoitem/ToDoItemCreate.java#L134 <https://github.com/isisaddons/isis-app-todoapp/blob/master/fixture/src/main/java/todoapp/fixture/module/todoitem/ToDoItemCreate.java#L134>
>>> 
>>>> On 18 April 2015 at 10:17, QUALITEC - Óscar Bou <ob...@qualitec.es> wrote:
>>>> 
>>>> 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
>>>> SelectChannelConnector@0.0.0.0:8080
> 
> 
> Óscar Bou Bou
> Responsable de Producto
> Auditor Jefe de Certificación ISO 27001 en BSI
> CISA, CRISC, APMG ISO 20000, ITIL-F
> 
> <contactenos.html.gif>   902 900 231 / 620 267 520
> <Pasted Graphic 1.tiff>   http://www.twitter.com/oscarbou <http://www.twitter.com/oscarbou>
> 
> <gesdatos-software.gif>   http://es.linkedin.com/in/oscarbou <http://es.linkedin.com/in/oscarbou>
> 
> <blog.png>   http://www.GesConsultor.com <http://www.gesconsultor.com/> 
> 
> <gesconsultor_logo_blue_email.png>
> 
> 
> Este mensaje y los ficheros anexos son confidenciales. Los mismos contienen información reservada que no puede ser difundida. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y avisar al remitente mediante reenvío a su dirección electrónica; no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
> Su dirección de correo electrónico junto a sus datos personales constan en un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la de mantener el contacto con Ud. Si quiere saber de qué información disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153 bajo - 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015 (Valencia). Asimismo, es su responsabilidad comprobar que este mensaje o sus archivos adjuntos no contengan virus informáticos, y en caso que los tuvieran eliminarlos.
> 
> 
> 
> 
> 


Óscar Bou Bou
Responsable de Producto
Auditor Jefe de Certificación ISO 27001 en BSI
CISA, CRISC, APMG ISO 20000, ITIL-F

   902 900 231 / 620 267 520
   http://www.twitter.com/oscarbou <http://www.twitter.com/oscarbou>

   http://es.linkedin.com/in/oscarbou <http://es.linkedin.com/in/oscarbou>

   http://www.GesConsultor.com <http://www.gesconsultor.com/> 




Este mensaje y los ficheros anexos son confidenciales. Los mismos contienen información reservada que no puede ser difundida. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y avisar al remitente mediante reenvío a su dirección electrónica; no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
Su dirección de correo electrónico junto a sus datos personales constan en un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la de mantener el contacto con Ud. Si quiere saber de qué información disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153 bajo - 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015 (Valencia). Asimismo, es su responsabilidad comprobar que este mensaje o sus archivos adjuntos no contengan virus informáticos, y en caso que los tuvieran eliminarlos.