@Override public WikittyEvent deleteExtension( String securityToken, Collection<String> extNames) { WikittyEvent result = getDelegate().deleteExtension(securityToken, extNames); fireEvent(result); return result; }
@Override protected void finalize() throws Throwable { getEventThread().askStop(); super.finalize(); }
/** * Test si les events sont bien lever et bien recu * @throws Exception */ @Test public void testEvent() throws Exception { WikittyServiceNotifier wsn = new WikittyServiceNotifier(null, null, null); Listener l = new Listener(); // test d'envoi et de bonne reception wsn.addWikittyServiceListener(l, ServiceListenerType.ALL); sendEvent(wsn, true); // si on enleve le listener, plus aucun event ne doit arriver wsn.removeWikittyServiceListener(l, ServiceListenerType.ALL); sendEvent(wsn, false); // donc au total seulement 5 events on du etre envoye Assert.assertEquals(6, nbEvent); }
wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals( wsn.processRemoteEvent(event); wsn.getEventThread().waitFor(event.getTime()); if (hasListener) { Assert.assertEquals(
@Test public void testBuild() throws Exception { ApplicationConfig config = WikittyConfig.getConfig(); config.setOption(WikittyConfigOption.WIKITTY_WIKITTYSERVICE_COMPONENTS.getKey(), WikittyServiceInMemory.class.getName() + "," + WikittyServiceNotifier.class.getName() + "," + WikittyServiceCached.class.getName()); WikittyService ws = WikittyServiceFactory.buildWikittyService(config); Assert.assertEquals(WikittyServiceCached.class, ws.getClass()); ws = ((WikittyServiceCached)ws).getDelegate(); Assert.assertEquals(WikittyServiceNotifier.class, ws.getClass()); ws = ((WikittyServiceNotifier)ws).getDelegate(); Assert.assertEquals(WikittyServiceInMemory.class, ws.getClass()); }
/** * used for MUC message * @param packet */ @Override public void processPacket(Packet packet) { // Dont listen own events String name = room + "/" + pseudo; if (!name.equals(packet.getFrom())) { Object event = packet.getProperty(PROPERTY_EVENT_NAME); if (log.isDebugEnabled()) { log.debug("Receive message : " + event); } if (event instanceof WikittyEvent) { ws.processRemoteEvent((WikittyEvent)event); } } }
this.addWikittyServiceListener(notifier, WikittyService.ServiceListenerType.LOCAL); // weak reference
/** * fire event passed in argument. Before fire, change source to current * WikittyServiceNotifier and set remote event to true. */ public void processRemoteEvent(WikittyEvent event) { //source is transient, add it here : event.setSource(this); event.setRemote(true); // received event became remote fireEvent(event); }
WikittyServiceNotifier wsn = new WikittyServiceNotifier(config, null, transporteur); WikittyEvent event = new WikittyEvent("test"); event.addRemoveDate("theId", new Date());
@Test public void testSampleConfig() throws Exception { { ApplicationConfig config = WikittyConfig.getConfig( "wikitty-config-sample-inmemory.properties"); // surcharge certain option qui ont besoin d'autre module que api config.setOption(WikittyConfigOption.WIKITTY_WIKITTYSERVICESTORAGE_COMPONENTS.getKey(), WikittyStorageInMemory.class.getName() + "," + WikittyExtensionStorageInMemory.class.getName() + "," + WikittySearchEngineInMemory.class.getName()); WikittyService ws = WikittyServiceFactory.buildWikittyService(config); Assert.assertEquals(WikittyServiceAuthorisation.class, ws.getClass()); ws = ((WikittyServiceAuthorisation) ws).getDelegate(); Assert.assertEquals(WikittyServiceAuthentication.class, ws.getClass()); ws = ((WikittyServiceAuthentication) ws).getDelegate(); Assert.assertEquals(WikittyServiceCached.class, ws.getClass()); ws = ((WikittyServiceCached) ws).getDelegate(); Assert.assertEquals(WikittyServiceNotifier.class, ws.getClass()); ws = ((WikittyServiceNotifier) ws).getDelegate(); Assert.assertEquals(WikittyServiceStorage.class, ws.getClass()); } }
@Override public WikittyEvent deleteTree(String securityToken, String wikittyId) { WikittyEvent result = getDelegate().deleteTree(securityToken, wikittyId); fireEvent(result); return result; }
/** * 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(); } } }
@Override public WikittyEvent store(String securityToken, Collection<Wikitty> wikitties, boolean force) { WikittyEvent result = getDelegate().store(securityToken, wikitties, force); // notify listeners fireEvent(result); return result; }
@Override public WikittyEvent delete(String securityToken, Collection<String> ids) { WikittyEvent result = getDelegate().delete(securityToken, ids); // notify listeners fireEvent(result); return result; }
@Override public WikittyEvent clear(String securityToken) { WikittyEvent result = getDelegate().clear(securityToken); fireEvent(result); return result; }
@Override public WikittyEvent storeExtension(String securityToken, Collection<WikittyExtension> exts) { WikittyEvent result = getDelegate().storeExtension(securityToken, exts); fireEvent(result); return result; }
@Override public WikittyEvent replay( String securityToken, List<WikittyEvent> events, boolean force) { WikittyEvent result = getDelegate().replay(securityToken, events, force); // notify listeners fireEvent(result); return result; }