/** * delete objets in cache * @param ids */ @Override public WikittyEvent delete(String securityToken, Collection<String> ids) { WikittyEvent result = getDelegate().delete(securityToken, ids); processEvent(result); return result; }
@Override public WikittyExtension restoreExtension(String securityToken, String id) { WikittyExtension result = getDelegate().restoreExtension(securityToken, id); cachePutExtension(result); return result; }
protected void cachePutWikitty(Collection<Wikitty> wikitties) { for (Wikitty w : wikitties) { cachePutWikitty(w); } } protected void cachePutExtension(Collection<WikittyExtension> wikitties) {
for (String id : ids) { Wikitty w = cacheGetWikitty(id); List<Wikitty> missingInCache = getDelegate().restore(securityToken, notInCache); cachePutWikitty(missingInCache); w = wrapWikitty(w); fromCache.put(w.getWikittyId(), w); statAdd(ids.size(), notInCache.size());
|| e.getType().contains( WikittyEvent.WikittyEventType.CLEAR_EXTENSION)) { cacheClearWikitty(); cacheClearExtension(); } else { if (e.getType().contains(WikittyEvent.WikittyEventType.PUT_WIKITTY)) { cachePutWikitty(e.getWikitties().values()); cacheRemoveWikitty(e.getRemoveDate().keySet()); cachePutExtension(e.getExtensions().values()); cacheRemoveExtension(e.getDeletedExtensions());
/** * just wrap service method * * @return */ @Override public List<String> getAllExtensionIds(String securityToken) { // NOTE poussin 20101219: si on veut utiliser le cache il faut une // methode specifique return getDelegate().getAllExtensionIds(securityToken); }
/** * Override to method in sub tests to change wikitty client implementation. * * @return wikitty client implementation to use in current test case instance */ @Override protected WikittyClient getWikittyClient() { wikittyConfig.setOption(WikittyConfigOption .JCS_DEFAULT_CACHEATTRIBUTES_MAXOBJECTS.getKey(), "10"); WikittyService wikittyService = new WikittyServiceInMemory(wikittyConfig); wikittyService = new WikittyServiceCached(wikittyConfig, wikittyService, new WikittyCacheJCS(wikittyConfig)); WikittyClient client = new WikittyClient(wikittyConfig, wikittyService); return client; }
protected void cacheRemoveWikitty(Collection<String> ids) { for (String id : ids) { cacheRemoveWikitty(id); } }
protected void cacheRemoveExtension(Collection<String> extIds) { for (String extId : extIds) { cacheRemoveExtension(extId); } }
protected void cachePutExtension(Collection<WikittyExtension> wikitties) { for (WikittyExtension w : wikitties) { cachePutExtension(w); } } protected void cacheRemoveWikitty(String id) {
addWikittyServiceListener( remoteWikittyListener, ServiceListenerType.REMOTE); } catch(UnsupportedOperationException eee) {
/** * just wrap service method * * @param extensionName * @return */ @Override public List<String> getAllExtensionsRequires( String securityToken, String extensionName) { // TODO poussin 20100412: perhaps use cache for extension ? return getDelegate().getAllExtensionsRequires(securityToken, extensionName); }
/** * Override to method in sub tests to change wikitty client implementation. * * @return wikitty client implementation to use in current test case instance */ @Override protected WikittyClient getWikittyClient() { wikittyConfig.setOption( WikittyConfigOption.WIKITTY_CACHE_RESTORE_COPIES.getKey(), "true"); WikittyService wikittyService = new WikittyServiceInMemory(wikittyConfig); wikittyService = new WikittyServiceCached(wikittyConfig, wikittyService, new WikittyCacheJCS(wikittyConfig)); WikittyClient client = new WikittyClient(wikittyConfig, wikittyService); return client; }
/** * just wrap service method * * @param wikittyId * @return */ @Override public WikittyEvent deleteTree(String securityToken, String wikittyId) { WikittyEvent result = getDelegate().deleteTree(securityToken, wikittyId); processEvent(result); return result; }
@Override public Wikitty restoreVersion( String securityToken, String wikittyId, String version) { // not put it in cache ? cache doesn't support more than one version of wikitty return getDelegate().restoreVersion(securityToken, wikittyId, version); }
/** * just wrap service method * * @param name * @return */ @Override public WikittyExtension restoreExtensionLastVersion( String securityToken, String name) { // NOTE poussin 20100412: comment faire pour utiliser le cache ? on ne // peut que stocker le resultat sinon il faudrait etre sur d'avoir toutes // les extensions dans le cache. // Sinon il faudrait mettre des methodes specifiques dans le cache pour // cette methode, mise en cache lors du 1er appel, et restitution du // meme resultat pour les appels suivants tant que pas de modification // de l'extension (ou de clear/remove) WikittyExtension result = getDelegate().restoreExtensionLastVersion(securityToken, name); cachePutExtension(result); return result; }
@Override public WikittyEvent deleteExtension( String securityToken, Collection<String> extNames) { WikittyEvent result = getDelegate().deleteExtension(securityToken, extNames); processEvent(result); return result; }
@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()); }
@Override public WikittyEvent clear(String securityToken) { WikittyEvent result = getDelegate().clear(securityToken); processEvent(result); return result; }
@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()); } }