Hi all,
I’m launching tests with have Services with Event Handlers this way:
public class MonitoringSystemInitializer {
…
private static class MonitoringIntegTestBuilder extends
IsisSystemForTest.Builder {
private MonitoringIntegTestBuilder() {
…
this.withServices(new
ExternalSystemsMonitoringInformationEventHandler() ...
...
}
…
}
public class ExternalSystemsMonitoringInformationEventHandler extends
AbstractXMSService {
…
// {{ injected: EventBusService
@Programmatic
@PostConstruct
public void postConstruct() {
this.eventBusService.register(this);
}
@Programmatic
@PreDestroy
public void preDestroy() {
this.eventBusService.unregister(this);
}
@javax.inject.Inject
private EventBusService eventBusService;
// }}
}
When launching the tests the following exception is thrown:
java.lang.IllegalStateException: Event bus has already been created; too late
to register any further (singleton) subscribers
at
org.apache.isis.core.runtime.services.eventbus.EventBusServiceDefault.register(EventBusServiceDefault.java:68)
at
com.xms.framework.risk.domain.model.RiskCategories.setEventBusService(RiskCategories.java:68)
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
org.apache.isis.core.metamodel.services.ServicesInjectorDefault.invokeMethod(ServicesInjectorDefault.java:254)
at
org.apache.isis.core.metamodel.services.ServicesInjectorDefault.invokeInjectorMethod(ServicesInjectorDefault.java:286)
at
org.apache.isis.core.metamodel.services.ServicesInjectorDefault.autowire(ServicesInjectorDefault.java:239)
at
org.apache.isis.core.metamodel.services.ServicesInjectorDefault.autowireViaPrefixedMethods(ServicesInjectorDefault.java:229)
at
org.apache.isis.core.metamodel.services.ServicesInjectorDefault.injectServices(ServicesInjectorDefault.java:182)
at
org.apache.isis.core.metamodel.services.ServicesInjectorDefault.injectServicesInto(ServicesInjectorDefault.java:148)
at
org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault.mapAndInjectServices(AdapterManagerDefault.java:750)
at
org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault.adapterFor(AdapterManagerDefault.java:184)
at
org.apache.isis.core.runtime.system.persistence.PersistenceSession.createServiceAdapters(PersistenceSession.java:208)
at
org.apache.isis.core.runtime.system.persistence.PersistenceSession.initServices(PersistenceSession.java:194)
at
org.apache.isis.core.runtime.system.persistence.PersistenceSession.open(PersistenceSession.java:184)
at
org.apache.isis.core.runtime.system.session.IsisSessionDefault.open(IsisSessionDefault.java:97)
at
org.apache.isis.core.runtime.system.context.IsisContextStatic.openSessionInstance(IsisContextStatic.java:71)
at
org.apache.isis.core.runtime.system.context.IsisContext.openSession(IsisContext.java:271)
at
org.apache.isis.core.integtestsupport.IsisSystemForTest.openSession(IsisSystemForTest.java:405)
at
org.apache.isis.core.integtestsupport.IsisSystemForTest.openSession(IsisSystemForTest.java:400)
at
org.apache.isis.core.integtestsupport.IsisSystemForTest.bounceSystem(IsisSystemForTest.java:395)
at
org.apache.isis.core.integtestsupport.IntegrationTestAbstract$IsisTransactionRule$1.evaluate(IntegrationTestAbstract.java:202)
at
org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2$1.evaluate(JUnitRuleMockery2.java:146)
at
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Ó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.