@Override protected void finalize() throws Throwable { getEventThread().askStop(); super.finalize(); }
/** * Fire event to all registred listener. * * Take care about {@link WikittyEvent#isRemote()} for fire. * * @param event event to fire */ protected void fireEvent(final WikittyEvent event) { // ajout d'un thread, car si les listeners doivent // ouvrir une transaction WikittyTransaction // alors que celui qui lance l'event en a une ouverte // cela cause une exception JTA EventThread thread = getEventThread(); // si le thread de notification est en cours d'arret on leve une exception if (thread.stopAsked()) { throw new WikittyException( "Event thread dispatcher is stopped, no more event can be send"); } else { eventToSend.offer(event); if (!thread.isAlive()) { // on demarre le thread que lorsqu'il y a le premier event d'arrive thread.start(); } } }
event.addType(WikittyEvent.WikittyEventType.PUT_WIKITTY); wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( event.addType(WikittyEvent.WikittyEventType.REMOVE_WIKITTY); wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( event.addType(WikittyEvent.WikittyEventType.CLEAR_WIKITTY); wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( event.addType(WikittyEvent.WikittyEventType.PUT_EXTENSION); wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( event.addType(WikittyEvent.WikittyEventType.REMOVE_EXTENSION); wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals(