Author: mfortun Date: 2011-05-16 12:00:20 +0200 (Mon, 16 May 2011) New Revision: 892 Url: http://nuiton.org/repositories/revision/wikitty/892 Log: * continue multicontext implementation Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-16 09:24:13 UTC (rev 891) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-16 10:00:20 UTC (rev 892) @@ -1,5 +1,6 @@ package org.nuiton.wikitty.publication; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -33,9 +34,8 @@ public static String WIKITTY_SERVICE_FALLBACK_URL_KEY; /* - * TODO mfortun-2011-05-13 multicontext the begginning, - * need to think about how invoke method in the different proxy - * properly. + * TODO mfortun-2011-05-13 multicontext the begginning, need to think about + * how invoke method in the different proxy properly. */ /** @@ -119,14 +119,14 @@ public void login(String login, String password) { mainProxy.login(login, password); - if ( isFallbackService()) { + if (isFallbackService()) { fallbackProxy.login(login, password); } } public void logout() { mainProxy.logout(); - if ( isFallbackService()) { + if (isFallbackService()) { fallbackProxy.logout(); } } @@ -137,7 +137,7 @@ public void setSecurityToken(String securityToken) { mainProxy.setSecurityToken(securityToken); - if ( isFallbackService()) { + if (isFallbackService()) { fallbackProxy.setSecurityToken(securityToken); } } @@ -171,7 +171,7 @@ // TODO mfortun-2011-05-13 store in wich one ? // check before if wikitty exist on fall back // and the stock on it if exist and store after on main - + return mainProxy.store(w); } @@ -198,39 +198,46 @@ public Wikitty restore(String id) { Wikitty result = mainProxy.restore(id); - - if ( isFallbackService() && result == null) { + + if (isFallbackService() && result == null) { result = fallbackProxy.restore(id); } - + return result; } public <E extends BusinessEntity> E restore(Class<E> clazz, String id) { E result = mainProxy.restore(clazz, id); - - if ( isFallbackService() && result == null) { + + if (isFallbackService() && result == null) { result = fallbackProxy.restore(clazz, id); } - + return result; } public List<Wikitty> restore(List<String> id) { List<Wikitty> result = mainProxy.restore(id); - + // TODO mfortun-2011-05-13 need to merge the two list - if ( isFallbackService() && result == null) { - result = fallbackProxy.restore( id); + if (isFallbackService() && result == null) { + result = fallbackProxy.restore(id); } - + return result; - + } public <E extends BusinessEntity> List<E> restore(Class<E> clazz, List<String> id, boolean checkExtension) { - return mainProxy.restore(clazz, id, checkExtension); + + List<E> result = mainProxy.restore(clazz, id, checkExtension); + + if (isFallbackService() && result == null) { + result = fallbackProxy.restore(clazz, id, checkExtension); + } + + return result; } public <E extends BusinessEntity> List<E> restore(Class<E> clazz, @@ -240,18 +247,34 @@ public void delete(String id) { mainProxy.delete(id); + if (isFallbackService()){ + fallbackProxy.delete(id); + } + } public <E extends BusinessEntity> void delete(E object) { mainProxy.delete(object); + if (isFallbackService()){ + fallbackProxy.delete(object); + } + } public void delete(Collection<String> ids) { mainProxy.delete(ids); + if (isFallbackService()){ + fallbackProxy.delete(ids); + } + } public <E extends BusinessEntity> void delete(List<E> objets) { mainProxy.delete(objets); + if (isFallbackService()){ + fallbackProxy.delete(objets); + } + } public <E extends BusinessEntityImpl> PagedResult<E> findAllByExample(E e, @@ -342,84 +365,203 @@ public Wikitty[] findByCriteria(Criteria c1, Criteria c2, Criteria... otherCriteria) { + + + + return mainProxy.findByCriteria(c1, c2, otherCriteria); } public TreeNodeResult<Wikitty> findTreeNode(String wikittyId, int depth, boolean count, Criteria filter) { - return mainProxy.findTreeNode(wikittyId, depth, count, filter); + TreeNodeResult<Wikitty> result = mainProxy.findTreeNode(wikittyId, depth, count, filter); + + if (isFallbackService() && result == null) { + result = fallbackProxy.findTreeNode(wikittyId, depth, count, filter); + } + + + return result; } public TreeNodeResult<String> findAllIdTreeNode(String wikittyId, int depth, boolean count, Criteria filter) { - return mainProxy.findAllIdTreeNode(wikittyId, depth, count, filter); + TreeNodeResult<String> result = mainProxy.findAllIdTreeNode(wikittyId, + depth, count, filter); + + if (isFallbackService() && result == null) { + result = fallbackProxy.findAllIdTreeNode(wikittyId, depth, count, + filter); + } + + return result; } public WikittyEvent deleteTree(String treeNodeId) { - return mainProxy.deleteTree(treeNodeId); + + WikittyEvent result = mainProxy.deleteTree(treeNodeId); + + if (isFallbackService()) { + result.add(fallbackProxy.deleteTree(treeNodeId)); + result.setSource(this); + } + + return result; } public Wikitty restoreVersion(String wikittyId, String version) { - return mainProxy.restoreVersion(wikittyId, version); + + Wikitty result = mainProxy.restoreVersion(wikittyId, version); + + if (isFallbackService() && result == null) { + result = fallbackProxy.restoreVersion(wikittyId, version); + } + + return result; } public <E extends BusinessEntity> boolean hasType(Class<E> clazz, String wikittyId) { - return mainProxy.hasType(clazz, wikittyId); + boolean result = mainProxy.hasType(clazz, wikittyId); + + if (isFallbackService()) { + result = result || fallbackProxy.hasType(clazz, wikittyId); + } + + return result; } public WikittyEvent storeExtension(WikittyExtension ext) { - return mainProxy.storeExtension(ext); + + WikittyEvent result = mainProxy.storeExtension(ext); + + if (isFallbackService()) { + result.add(fallbackProxy.storeExtension(ext)); + result.setSource(this); + } + + return result; + } public WikittyEvent storeExtension(Collection<WikittyExtension> exts) { - return mainProxy.storeExtension(exts); + + WikittyEvent result = mainProxy.storeExtension(exts); + + if (isFallbackService()) { + result.add(fallbackProxy.storeExtension(exts)); + result.setSource(this); + } + + return result; } public WikittyExtension restoreExtension(String extensionId) { - return mainProxy.restoreExtension(extensionId); + WikittyExtension result = mainProxy.restoreExtension(extensionId); + + if (isFallbackService() && result == null) { + result = fallbackProxy.restoreExtension(extensionId); + } + + return result; } public WikittyExtension restoreExtensionLastVersion(String extensionName) { - return mainProxy.restoreExtensionLastVersion(extensionName); + WikittyExtension result = mainProxy + .restoreExtensionLastVersion(extensionName); + + if (isFallbackService() && result == null) { + result = fallbackProxy.restoreExtensionLastVersion(extensionName); + } + + return result; } public void deleteExtension(String extName) { mainProxy.deleteExtension(extName); + if (isFallbackService()) { + fallbackProxy.deleteExtension(extName); + } + } public void deleteExtension(Collection<String> extNames) { + mainProxy.deleteExtension(extNames); + if (isFallbackService()) { + fallbackProxy.deleteExtension(extNames); + } } public List<String> getAllExtensionIds() { - return mainProxy.getAllExtensionIds(); + + List<String> result = new ArrayList<String>(); + result.addAll(mainProxy.getAllExtensionIds()); + + if (isFallbackService()) { + result.addAll(fallbackProxy.getAllExtensionIds()); + } + + return result; } public List<String> getAllExtensionsRequires(String extensionName) { - return mainProxy.getAllExtensionsRequires(extensionName); + List<String> result = new ArrayList<String>(); + result.addAll(mainProxy.getAllExtensionsRequires(extensionName)); + + if (isFallbackService()) { + result.addAll(fallbackProxy.getAllExtensionsRequires(extensionName)); + } + + return result; } public WikittyEvent clear() { - return mainProxy.clear(); + WikittyEvent result = mainProxy.clear(); + + // merge wikitty event + if (isFallbackService()) { + WikittyEvent tempEvent = fallbackProxy.clear(); + + result.add(tempEvent); + result.setSource(this); + } + + return result; } public void syncSearchEngine() { mainProxy.syncSearchEngine(); + if (isFallbackService()) { + fallbackProxy.syncSearchEngine(); + } } public Wikitty getWikitty(BusinessEntity entity) { - return mainProxy.getWikitty(entity); + Wikitty result = mainProxy.getWikitty(entity); + + if (isFallbackService() && result == null) { + result = fallbackProxy.getWikitty(entity); + } + + return result; } public boolean isMember(String groupName) { - return mainProxy.isMember(groupName); + boolean result = mainProxy.isMember(groupName); + if (isFallbackService()) { + result = result || fallbackProxy.isMember(groupName); + } + + return result; + } public WikittyUser getLoggedInUser() { - return mainProxy.getLoggedInUser(); + WikittyUser result = mainProxy.getLoggedInUser(); + + // TODO mfortun-2011-05-16 how to merge wikitty user ? + return result; } - - }