Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
May 2011
- 5 participants
- 78 discussions
r921 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 25 May '11
by mfortun@users.nuiton.org 25 May '11
25 May '11
Author: mfortun
Date: 2011-05-25 14:36:15 +0200 (Wed, 25 May 2011)
New Revision: 921
Url: http://nuiton.org/repositories/revision/wikitty/921
Log:
* remove unused static attribute
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-25 09:27:37 UTC (rev 920)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-25 12:36:15 UTC (rev 921)
@@ -16,8 +16,6 @@
*/
public class WikittyPublicationProxy extends WikittyProxy {
- public static String WIKITTY_SERVICE_FALLBACK_COMPONNENT_KEY;
- public static String WIKITTY_SERVICE_FALLBACK_URL_KEY;
/**
*
1
0
r920 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 25 May '11
by mfortun@users.nuiton.org 25 May '11
25 May '11
Author: mfortun
Date: 2011-05-25 11:27:37 +0200 (Wed, 25 May 2011)
New Revision: 920
Url: http://nuiton.org/repositories/revision/wikitty/920
Log:
* fallback feature implemented with a wikitty service
* remove fallback feature from proxy
* remove fallback config from publication config
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java 2011-05-24 15:52:09 UTC (rev 919)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java 2011-05-25 09:27:37 UTC (rev 920)
@@ -1,56 +1,34 @@
package org.nuiton.wikitty.publication;
-
import java.util.Properties;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.ArgumentsParserException;
-import org.nuiton.wikitty.publication.synchro.PropertiesExtended;
import static org.nuiton.i18n.I18n._;
public class WikittyPublicationConfig {
-
-
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(WikittyPublicationConfig.class);
static protected ApplicationConfig instance = null;
-
+
private WikittyPublicationConfig() {
}
-
-
- static public ApplicationConfig getFallBackConfig(){
- //TODO mfortun-2011-05-13 temporary import/load properties for fallback service
- ApplicationConfig conf = new ApplicationConfig(
- OptionFallBack.class, null, null, null);
-
- try {
- conf.parse(null);
- } catch (ArgumentsParserException eee) {
- if (log.isErrorEnabled()) {
- log.error("Can't load Wikitty Publication configuration", eee);
- }
- }
- return conf;
-
- }
+
static public ApplicationConfig getConfig() {
- return getConfig(null,null );
+ return getConfig(null, null);
}
-
- static public ApplicationConfig getConfig(
- Properties props, String configFilename, String ... args) {
-
-
- ApplicationConfig conf = new ApplicationConfig(
- Option.class, null, props, configFilename);
-
+
+ static public ApplicationConfig getConfig(Properties props,
+ String configFilename, String... args) {
+
+ ApplicationConfig conf = new ApplicationConfig(Option.class, null,
+ props, configFilename);
+
try {
conf.parse(args);
} catch (ArgumentsParserException eee) {
@@ -59,12 +37,11 @@
}
}
return conf;
- }
-
+ }
public static ApplicationConfig getInstance() {
if (instance == null) {
- synchronized(WikittyPublicationConfig.class) {
+ synchronized (WikittyPublicationConfig.class) {
if (instance == null) {
instance = WikittyPublicationConfig.getConfig();
}
@@ -72,82 +49,15 @@
}
return instance;
}
-
-
-
-
- public enum OptionFallBack implements ApplicationConfig.OptionDef {
- CONFIG_FILE(
- ApplicationConfig.CONFIG_FILE_NAME,
- _("wikitty-publication.config.configFileName.description"),
- "wikitty-publication-ws-lightfallback.properties", String.class, false, false);
-
-
-
- public final String key;
- public final String description;
- public String defaultValue;
- public final Class<?> type;
- public boolean isTransient;
- public boolean isFinal;
- OptionFallBack(String key, String description, String defaultValue,
- Class<?> type, boolean isTransient, boolean isFinal) {
- this.key = key;
- this.description = description;
- this.defaultValue = defaultValue;
- this.type = type;
- this.isFinal = isFinal;
- this.isTransient = isTransient;
- }
-
- public String getKey() {
- return key;
- }
-
- public Class<?> getType() {
- return type;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getDefaultValue() {
- return defaultValue;
- }
-
- public boolean isTransient() {
- return isTransient;
- }
-
- public boolean isFinal() {
- return isFinal;
- }
-
- public void setDefaultValue(String defaultValue) {
- this.defaultValue = defaultValue;
- }
-
- public void setTransient(boolean isTransient) {
- this.isTransient = isTransient;
- }
-
- public void setFinal(boolean isFinal) {
- this.isFinal = isFinal;
- }
- }
-
-
-
+
public enum Option implements ApplicationConfig.OptionDef {
- CONFIG_FILE(
- ApplicationConfig.CONFIG_FILE_NAME,
+ CONFIG_FILE(ApplicationConfig.CONFIG_FILE_NAME,
_("wikitty-publication.config.configFileName.description"),
- "wikitty-publication-ws-light.properties", String.class, false, false);
- // "wikitty-publication-ws-default.properties", String.class, false, false);
-
-
+ "wikitty-publication-ws-default.properties", String.class, false,
+ false);
+
+
public final String key;
public final String description;
public String defaultValue;
@@ -174,7 +84,7 @@
}
public String getDescription() {
- return description;
+ return description;
}
public String getDefaultValue() {
@@ -201,6 +111,5 @@
this.isFinal = isFinal;
}
}
-
-
+
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java 2011-05-24 15:52:09 UTC (rev 919)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java 2011-05-25 09:27:37 UTC (rev 920)
@@ -1,6 +1,8 @@
package org.nuiton.wikitty.publication;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.LinkedList;
import java.util.List;
import org.nuiton.util.ApplicationConfig;
@@ -10,6 +12,7 @@
import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.Search;
import org.nuiton.wikitty.search.TreeNodeResult;
import org.nuiton.wikitty.services.WikittyEvent;
import org.nuiton.wikitty.services.WikittyListener;
@@ -81,15 +84,31 @@
}
public boolean exists(String securityToken, String wikittyId) {
- return mainService.exists(securityToken, wikittyId);
+ boolean result = mainService.exists(securityToken, wikittyId);
+
+ if (isFallBack()) {
+ result = result || fallbackService.exists(securityToken, wikittyId);
+ }
+
+ return result;
}
public boolean isDeleted(String securityToken, String wikittyId) {
- return mainService.isDeleted(securityToken, wikittyId);
+ boolean result = mainService.isDeleted(securityToken, wikittyId);
+
+ if (isFallBack()) {
+ result = result
+ || fallbackService.isDeleted(securityToken, wikittyId);
+ }
+
+ return result;
}
public WikittyEvent replay(String securityToken, List<WikittyEvent> events,
boolean force) {
+
+ // TODO mfortun-2011-05-25 do something here with fallback service
+
return mainService.replay(securityToken, events, force);
}
@@ -99,13 +118,39 @@
}
public List<String> getAllExtensionIds(String securityToken) {
- return mainService.getAllExtensionIds(securityToken);
+
+ List<String> result = new LinkedList<String>();
+ result.addAll(mainService.getAllExtensionIds(securityToken));
+
+ // TODO mfortun-2011-05-25 do again this with set ?
+ if (isFallBack()) {
+ List<String> temp = fallbackService
+ .getAllExtensionIds(securityToken);
+ // assert that not have duplicate entry
+ result.removeAll(temp);
+ result.addAll(temp);
+ }
+
+ return result;
}
public List<String> getAllExtensionsRequires(String securityToken,
String extensionName) {
- return mainService.getAllExtensionsRequires(securityToken,
- extensionName);
+
+ List<String> result = new LinkedList<String>();
+ result.addAll(mainService.getAllExtensionsRequires(securityToken,
+ extensionName));
+
+ // TODO mfortun-2011-05-25 do again this with set ?
+ if (isFallBack()) {
+ List<String> temp = fallbackService.getAllExtensionsRequires(
+ securityToken, extensionName);
+ // assert that not have duplicate entry
+ result.removeAll(temp);
+ result.addAll(temp);
+ }
+
+ return result;
}
public WikittyEvent storeExtension(String securityToken,
@@ -120,16 +165,50 @@
public WikittyExtension restoreExtension(String securityToken,
String extensionId) {
- return mainService.restoreExtension(securityToken, extensionId);
+
+ WikittyExtension result = mainService.restoreExtension(securityToken,
+ extensionId);
+ if (isFallBack() && result == null) {
+ result = fallbackService.restoreExtension(securityToken,
+ extensionId);
+ }
+ return result;
}
public WikittyExtension restoreExtensionLastVersion(String securityToken,
String name) {
- return mainService.restoreExtensionLastVersion(securityToken, name);
+
+ WikittyExtension result = mainService.restoreExtensionLastVersion(
+ securityToken, name);
+ if (isFallBack() && result == null) {
+ result = fallbackService.restoreExtensionLastVersion(securityToken,
+ name);
+ }
+ return result;
}
public List<Wikitty> restore(String securityToken, List<String> id) {
- return mainService.restore(securityToken, id);
+
+ List<Wikitty> result = new LinkedList<Wikitty>();
+
+ result.addAll(mainService.restore(securityToken, id));
+ // can't trust result's size because result can contain null
+ if (isFallBack()) {
+ // prepare a list with wikitty id that have not been retrieve by the
+ // first proxy
+ List<String> unusedId = new LinkedList<String>();
+ unusedId.addAll(id);
+
+ for (Wikitty wikitty : result) {
+ if (wikitty != null) {
+ unusedId.remove(wikitty.getId());
+ }
+ }
+
+ result.addAll(fallbackService.restore(securityToken, unusedId));
+ }
+
+ return result;
}
public WikittyEvent delete(String securityToken, Collection<String> ids) {
@@ -138,12 +217,133 @@
public List<PagedResult<String>> findAllByCriteria(String securityToken,
List<Criteria> criteria) {
- return mainService.findAllByCriteria(securityToken, criteria);
+
+ List<PagedResult<String>> result = mainService.findAllByCriteria(
+ securityToken, criteria);
+
+ if (isFallBack()) {
+
+ for (int i = 0; i < result.size(); i++) {
+
+ /*
+ * get the curent criteria and corresponding result to check if
+ * the expected number of result is match
+ */
+ Criteria currentCrit = criteria.get(i);
+ PagedResult<String> currentResult = result.get(i);
+
+ int resultSizeExpected = currentCrit.getEndIndex()
+ - currentCrit.getFirstIndex();
+ if (currentResult.size() < resultSizeExpected) {
+ /*
+ * if result empty, just put the result of the fallback's
+ * requestresult
+ */
+
+ /*
+ * rebuild the criteria to search properly on the second
+ * service we search for wikitty not in the same position,
+ * but in the beginning
+ */
+ Criteria critFallback = Search.query(currentCrit)
+ .criteria();
+ critFallback.setFirstIndex(0);
+ critFallback.setEndIndex(currentCrit.getEndIndex()
+ - currentCrit.getFirstIndex());
+
+ if (result.size() == 0) {
+
+ List<Criteria> tempCritFallBack = new ArrayList<Criteria>();
+ tempCritFallBack.add(critFallback);
+
+ PagedResult<String> tempPagedResult = fallbackService
+ .findAllByCriteria(securityToken,
+ tempCritFallBack).get(0);
+
+ // rebuild the result to match the expected criteria
+ tempPagedResult = new PagedResult<String>(
+ currentCrit.getFirstIndex(),
+ tempPagedResult.getNumFound(),
+ currentCrit.toString(),
+ tempPagedResult.getFacets(),
+ tempPagedResult.getAll());
+
+ result.set(i, tempPagedResult);
+ } else {
+
+ /*
+ * we will search to complete the result with id from
+ * the fallback service so we reduce the number of
+ * element requested on the fallback service and we add
+ * a restriction on wikitty id to exclude id already in
+ * the first part of the result
+ *
+ * it not assume that wikitty id found does not exist on
+ * the first part of a criteria, for example if first
+ * index where 12, nothing assure that we found wikitty
+ * in the fall back that aren't in the 11 first wikitty
+ * of the main service
+ */
+ Criteria excluding = idNotInCriteriaConstructor(
+ critFallback, currentResult.getAll());
+
+ excluding.setEndIndex(resultSizeExpected
+ - result.size());
+
+ List<Criteria> tempExcludingCriteriaList = new ArrayList<Criteria>();
+ tempExcludingCriteriaList.add(excluding);
+
+ PagedResult<String> resultFallback = fallbackService
+ .findAllByCriteria(securityToken,
+ tempExcludingCriteriaList).get(0);
+
+ List<String> allresult = new LinkedList<String>();
+ allresult.addAll(currentResult.getAll());
+ allresult.addAll(resultFallback.getAll());
+ int number = currentResult.getNumFound()
+ + resultFallback.getNumFound();
+
+ // rebuilt the result
+ PagedResult<String> tempPagedResult = new PagedResult<String>(
+ currentCrit.getFirstIndex(), number,
+ currentCrit.toString(),
+ currentResult.getFacets(), allresult);
+ // re set the result in the list
+ result.set(i, tempPagedResult);
+ }
+ }
+
+ }
+ }
+
+ return result;
+
}
public List<String> findByCriteria(String securityToken,
List<Criteria> criteria) {
- return mainService.findByCriteria(securityToken, criteria);
+
+ List<String> result = new LinkedList<String>();
+ result.addAll(mainService.findByCriteria(securityToken, criteria));
+
+ if (isFallBack()) {
+
+ if (result.size() == 0) {
+ result.addAll(fallbackService.findByCriteria(securityToken,
+ criteria));
+ } else {
+ // merge list
+ List<String> resultFallback = new LinkedList<String>();
+
+ resultFallback.addAll(findByCriteria(securityToken, criteria));
+ // this allow to element from main to prevail
+
+ resultFallback.removeAll(result);
+ result.addAll(resultFallback);
+ }
+ }
+
+ return result;
}
public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
@@ -152,17 +352,56 @@
public TreeNodeResult<String> findTreeNode(String securityToken,
String wikittyId, int depth, boolean count, Criteria filter) {
- return mainService.findTreeNode(securityToken, wikittyId, depth, count,
- filter);
+ TreeNodeResult<String> result = mainService.findTreeNode(securityToken,
+ wikittyId, depth, count, filter);
+
+ if (isFallBack() && result == null) {
+ result = fallbackService.findTreeNode(securityToken, wikittyId,
+ depth, count, filter);
+ }
+
+ return result;
}
public Wikitty restoreVersion(String securityToken, String wikittyId,
String version) {
- return mainService.restoreVersion(securityToken, wikittyId, version);
+ Wikitty result = mainService.restoreVersion(securityToken, wikittyId,
+ version);
+
+ if (isFallBack() && result == null) {
+ result = fallbackService.restoreVersion(securityToken, wikittyId,
+ version);
+ }
+ return result;
}
public void syncSearchEngine(String securityToken) {
mainService.syncSearchEngine(securityToken);
}
+
+ /**
+ * Create a criteria to exclude a list of if from a criteria
+ *
+ * @param origin
+ * the criteria from whom exclude id
+ * @param toExclude
+ * list of id to exlude
+ * @return the criteria excluding ids
+ */
+ protected Criteria idNotInCriteriaConstructor(Criteria origin,
+ List<String> toExclude) {
+ Criteria result = null;
+
+ Search search = Search.query(origin);
+
+ for (String id : toExclude) {
+ search.idneq(id);
+ }
+
+ result = search.criteria();
+
+ return result;
+ }
+
}
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-24 15:52:09 UTC (rev 919)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-25 09:27:37 UTC (rev 920)
@@ -1,34 +1,15 @@
package org.nuiton.wikitty.publication;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.CollectionUtil;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.WikittyServiceFactory;
-import org.nuiton.wikitty.entities.BusinessEntity;
-import org.nuiton.wikitty.entities.BusinessEntityImpl;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.entities.WikittyImpl;
-import org.nuiton.wikitty.entities.WikittyLabel;
-import org.nuiton.wikitty.entities.WikittyLabelImpl;
-import org.nuiton.wikitty.entities.WikittyUser;
-import org.nuiton.wikitty.entities.WikittyUserHelper;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.PagedResult;
-import org.nuiton.wikitty.search.Search;
-import org.nuiton.wikitty.search.TreeNodeResult;
-import org.nuiton.wikitty.services.WikittyEvent;
-import com.arjuna.ats.internal.jdbc.drivers.modifiers.list;
+
/**
- * Proxy use by action in wikitty publication it encapsulate two wikitty proxy
- * because we can have two distinct service use to store wikitty used by
- * publication structure
+ * Proxy implementation for wikitty publication, that handle instance of the
+ * wikitty service
*
* @author mfortun
*
@@ -43,43 +24,15 @@
*/
private static final long serialVersionUID = -568462410130999972L;
static protected WikittyService service = null;
- static protected WikittyService serviceFallback = null;
- protected WikittyProxy fallbackProxy = null;
- protected WikittyProxy mainProxy = null;
- protected WikittyPublicationProxy(ApplicationConfig config,
+ private WikittyPublicationProxy(ApplicationConfig config,
WikittyService ws) {
- mainProxy = new WikittyProxy(config, ws);
+ super (config, ws);
}
- protected WikittyPublicationProxy(ApplicationConfig config,
- WikittyService ws, ApplicationConfig configFallBack,
- WikittyService serviceback) {
- this(config, ws);
- fallbackProxy = new WikittyProxy(configFallBack, serviceback);
- }
- /*
- *
- */
-
- static public WikittyPublicationProxy getInstanceWithFallback(String token) {
- ApplicationConfig config = WikittyPublicationConfig.getInstance();
- WikittyService ws = getWikittyService(config);
-
- ApplicationConfig configFallBack = WikittyPublicationConfig
- .getFallBackConfig();
- WikittyService fallservice = getWikittyServiceFallBack(configFallBack);
-
- WikittyPublicationProxy result = new WikittyPublicationProxy(config,
- ws, configFallBack, fallservice);
- result.setSecurityToken(token);
-
- return result;
- }
-
static public WikittyPublicationProxy getInstance(String token) {
ApplicationConfig config = WikittyPublicationConfig.getInstance();
WikittyService ws = getWikittyService(config);
@@ -100,1440 +53,8 @@
return service;
}
- static protected WikittyService getWikittyServiceFallBack(
- ApplicationConfig config) {
- if (serviceFallback == null) {
- synchronized (WikittyPublicationProxy.class) {
- if (serviceFallback == null) {
- serviceFallback = WikittyServiceFactory
- .buildWikittyService(config);
- }
- }
- }
- return serviceFallback;
- }
+
- public boolean isFallbackService() {
- return fallbackProxy != null;
- }
- public WikittyProxy getFallbackProxy() {
- return fallbackProxy;
- }
-
- public void setFallbackProxy(WikittyProxy fallbackProxy) {
- this.fallbackProxy = fallbackProxy;
- }
-
- public WikittyProxy getMainProxy() {
- return mainProxy;
- }
-
- public void setMainProxy(WikittyProxy mainProxy) {
- this.mainProxy = mainProxy;
- }
-
- public void setFallbackWikittyService(WikittyService service) {
- fallbackProxy.setWikittyService(service);
- }
-
- public WikittyService getFallbackWikittyService() {
- return fallbackProxy.getWikittyService();
- }
-
- public String getFallbackSecurityToken() {
- String result = "";
- if (isFallbackService()) {
- result = fallbackProxy.getSecurityToken();
- }
- return result;
- }
-
- public void setFallbackSecurityToken(String securityToken) {
- if (isFallbackService()) {
- fallbackProxy.setSecurityToken(securityToken);
- }
- }
-
- /*
- * Beginning of redefinition method that take care of merge between result
- * of the proxy and fallback proxy if any
- */
-
- public void login(String login, String password) {
- mainProxy.login(login, password);
- if (isFallbackService()) {
- fallbackProxy.login(login, password);
- }
- }
-
- public void logout() {
- mainProxy.logout();
- if (isFallbackService()) {
- fallbackProxy.logout();
- }
- }
-
- public String getSecurityToken() {
- String result = mainProxy.getSecurityToken();
- return result;
- }
-
- public void setSecurityToken(String securityToken) {
- mainProxy.setSecurityToken(securityToken);
- }
-
- public WikittyUser getUser() {
- WikittyUser result = mainProxy.getUser();
-
- // TODO mfortun-2011-05-16 do something on fallback ?
-
- return result;
- }
-
- public <E extends BusinessEntity> E getUser(Class<E> clazz) {
-
- E result = mainProxy.getUser(clazz);
-
- // TODO mfortun-2011-05-16 do something on fallback ?
-
- return result;
- }
-
- public WikittyService getWikittyService() {
- return mainProxy.getWikittyService();
- }
-
- public void setWikittyService(WikittyService wikittyService) {
- mainProxy.setWikittyService(wikittyService);
- }
-
- public <E extends BusinessEntity> E cast(BusinessEntity source,
- Class<E> target) {
-
- E result = mainProxy.cast(source, target);
-
- // TODO mfortun-2011-05-16 do something on fallback ?
-
- return result;
- }
-
- public <E extends BusinessEntity> E store(E e) {
-
- E result = null;
-
- /*
- * if a user store in both
- */
- if (isFallbackService()
- && e.getExtensionNames().contains(WikittyUser.EXT_WIKITTYUSER)) {
-
- // save the version to restore it after to allow storage of the
- // wikitty on the two service
- String version = e.getWikittyVersion();
- fallbackProxy.store(e);
- e.setWikittyVersion(version);
- mainProxy.store(e);
-
- return e;
- }
-
- // if there a fallback proxy and e exist on it, we try to store it again
- // on fallbackproxy
- if (isFallbackService()
- && fallbackProxy.restore(e.getWikittyId()) != null) {
- result = fallbackProxy.store(e);
- } else {
- result = mainProxy.store(e);
- }
-
- return result;
- }
-
- public Wikitty store(Wikitty w) {
- Wikitty result = null;
-
- /*
- * if a user store in both
- */
- if (isFallbackService() && w.hasExtension(WikittyUser.EXT_WIKITTYUSER)) {
- fallbackProxy.store(w);
- return mainProxy.store(w);
- }
-
- // if there a fallback proxy and e exist on it, we try to store it again
- // on fallbackproxy
- if ((isFallbackService() && fallbackProxy.restore(w.getId()) != null)) {
- result = fallbackProxy.store(w);
- } else {
- result = mainProxy.store(w);
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> List<E> store(E e1, E e2, E... eN) {
-
- List<E> result = new ArrayList<E>();
- result.add(e1);
- result.add(e2);
- CollectionUtil.addAll(result, eN);
-
- // delegate to store list, the easiest to handle store in two
- // proxy
- return this.store(result);
- }
-
- public Wikitty[] store(Wikitty w1, Wikitty w2, Wikitty... wN) {
-
- List<Wikitty> result = new ArrayList<Wikitty>();
- result.add(w1);
- result.add(w2);
- CollectionUtil.addAll(result, wN);
-
- // delegate to store wikittylist, the easiest to handle store in two
- // proxy
- return (Wikitty[]) (this.storeWikitty(result).toArray());
- }
-
- public <E extends BusinessEntity> List<E> store(List<E> objets) {
-
- List<E> result = new ArrayList<E>();
-
- List<E> tempObject = new ArrayList<E>();
- tempObject.addAll(objets);
-
- if (isFallbackService()) {
-
- List<String> ids = new ArrayList<String>();
-
- // retrieve string id
- for (E e : objets) {
- ids.add(e.getWikittyId());
- }
-
- List<Criteria> criterias = idInIdsCriteriaConstructor(ids);
-
- // retrieve wikitty's id that exist on fallbackservice
- List<String> containedFallId = fallbackProxy
- .findIdByCriteria(criterias);
-
- List<E> toStoreOnFall = new ArrayList<E>();
- // order wikitty that have to be save on fall back
- for (E e : objets) {
- if (containedFallId.contains(e.getWikittyId())) {
- toStoreOnFall.add(e);
- tempObject.remove(e);
- }
- }
- // save wikitty on fall back
- result.addAll(fallbackProxy.store(toStoreOnFall));
-
- }
-
- result.addAll(mainProxy.store(tempObject));
- return result;
- }
-
- public List<Wikitty> storeWikitty(List<Wikitty> wikitties) {
-
- List<Wikitty> result = new ArrayList<Wikitty>();
-
- List<Wikitty> tempObject = new ArrayList<Wikitty>();
- tempObject.addAll(wikitties);
-
- if (isFallbackService()) {
-
- List<String> ids = new ArrayList<String>();
-
- // retrieve string id
- for (Wikitty w : wikitties) {
- ids.add(w.getId());
- }
-
- List<Criteria> criterias = idInIdsCriteriaConstructor(ids);
-
- // retrieve wikitty's id that exist on fallbackservice
- List<String> containedFallId = fallbackProxy
- .findIdByCriteria(criterias);
-
- List<Wikitty> toStoreOnFall = new ArrayList<Wikitty>();
- // order wikitty that have to be save on fall back
- for (Wikitty w : wikitties) {
- if (containedFallId.contains(w.getId())) {
- toStoreOnFall.add(w);
- tempObject.remove(w);
- }
- }
- // save wikitty on fall back
- result.addAll(fallbackProxy.storeWikitty(toStoreOnFall));
-
- }
-
- result.addAll(mainProxy.storeWikitty(tempObject));
- return result;
- }
-
- public <E extends BusinessEntity> E restore(Class<E> clazz, String id,
- boolean checkExtension) {
- E result = mainProxy.restore(clazz, id, checkExtension);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.restore(clazz, id, checkExtension);
- }
-
- return result;
- }
-
- public Wikitty restore(String id) {
- Wikitty result = mainProxy.restore(id);
-
- 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) {
- result = fallbackProxy.restore(clazz, id);
- }
-
- return result;
- }
-
- public List<Wikitty> restore(List<String> id) {
-
- List<Wikitty> result = new ArrayList<Wikitty>();
-
- result.addAll(mainProxy.restore(id));
-
- if (isFallbackService()) {
- // prepare a list with wikitty id that have not been retrieve by the
- // first proxy
- List<String> unusedId = new ArrayList<String>();
- unusedId.addAll(id);
-
- for (Wikitty wikitty : result) {
- unusedId.remove(wikitty.getId());
- }
-
- result.addAll(fallbackProxy.restore(unusedId));
- }
-
- return result;
-
- }
-
- public <E extends BusinessEntity> List<E> restore(Class<E> clazz,
- List<String> id, boolean checkExtension) {
-
- List<E> result = new ArrayList<E>();
-
- result.addAll(mainProxy.restore(clazz, id, checkExtension));
-
- if (isFallbackService()) {
-
- // prepare a list with wikitty id that have not been retrieve by the
- // first proxy
- List<String> unusedId = new ArrayList<String>();
- unusedId.addAll(id);
-
- for (E wikitty : result) {
- unusedId.remove(wikitty.getWikittyId());
- }
-
- result.addAll(fallbackProxy
- .restore(clazz, unusedId, checkExtension));
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> List<E> restore(Class<E> clazz,
- List<String> id) {
-
- List<E> result = new ArrayList<E>();
-
- result.addAll(mainProxy.restore(clazz, id));
-
- if (isFallbackService()) {
-
- // prepare a list with wikitty id that have not been retrieve by the
- // first proxy
- List<String> unusedId = new ArrayList<String>();
- unusedId.addAll(id);
-
- for (E wikitty : result) {
- unusedId.remove(wikitty.getWikittyId());
- }
-
- result.addAll(fallbackProxy.restore(clazz, unusedId));
- }
-
- return result;
- }
-
- 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,
- int firstIndex, int endIndex, String... fieldFacet) {
-
- PagedResult<E> result = mainProxy.findAllByExample(e, firstIndex,
- endIndex, fieldFacet);
-
- int resultSizeExpected = endIndex - firstIndex;
- if (isFallbackService() && result.size() < resultSizeExpected) {
-
- if (result.size() == 0) {
- String oldRequest = result.getQueryString();
-
- /*
- * change the param because we search on the beginning of the
- * content of the otherLike they were the same collection
- */
- result = fallbackProxy.findAllByExample(e, 0,
- resultSizeExpected, fieldFacet);
-
- // reform the result
- PagedResult<E> reformResult = new PagedResult<E>(firstIndex,
- result.getNumFound(), oldRequest, result.getFacets(),
- result.getAll());
- result = reformResult;
- } else {
-
- /*
- * Calculate the number of missing element and search then on
- * the fallback wikitty service, and then add this result to the
- * final result;
- */
- int missingNumber = resultSizeExpected - result.size();
-
- PagedResult<E> resultTempFromFall = fallbackProxy
- .findAllByExample(e, 0, missingNumber, fieldFacet);
-
- List<E> completedResultList = new ArrayList<E>();
-
- completedResultList.addAll(result.getAll());
- completedResultList.addAll(resultTempFromFall.getAll());
-
- int totalNumberofFound = result.getNumFound()
- + resultTempFromFall.getNumFound();
-
- PagedResult<E> reformResult = new PagedResult<E>(firstIndex,
- totalNumberofFound, result.getQueryString(),
- result.getFacets(), completedResultList);
- result = reformResult;
- }
- }
-
- return result;
- }
-
- public <E extends BusinessEntityImpl> E findByExample(E e) {
- E result = mainProxy.findByExample(e);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.findByExample(e);
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> List<PagedResult<E>> findAllByCriteria(
- Class<E> clazz, List<Criteria> criterias) {
-
- List<PagedResult<E>> result = new ArrayList<PagedResult<E>>();
-
- result.addAll(mainProxy.findAllByCriteria(clazz, criterias));
-
- if (isFallbackService()) {
-
- for (int i = 0; i < result.size(); i++) {
-
- /*
- * get the curent criteria and corresponding result to check if
- * the expected number of result is match
- */
- Criteria currentCrit = criterias.get(i);
- PagedResult<E> currentResult = result.get(i);
-
- int resultSizeExpected = currentCrit.getEndIndex()
- - currentCrit.getFirstIndex();
- if (currentResult.size() < resultSizeExpected) {
- /*
- * if result empty, just put the result of the fallback's
- * requestresult
- */
-
- /*
- * rebuild the criteria to search properly on the second
- * service we search for wikitty not in the same position,
- * but in the beginning
- */
- Criteria critFallback = Search.query(currentCrit)
- .criteria();
- critFallback.setFirstIndex(0);
- critFallback.setEndIndex(currentCrit.getEndIndex()
- - currentCrit.getFirstIndex());
-
- if (result.size() == 0) {
-
- PagedResult<E> tempPagedResult = fallbackProxy
- .findAllByCriteria(clazz, critFallback);
-
- // rebuild the result to match the expected criteria
- tempPagedResult = new PagedResult<E>(
- currentCrit.getFirstIndex(),
- tempPagedResult.getNumFound(),
- currentCrit.toString(),
- tempPagedResult.getFacets(),
- tempPagedResult.getAll());
-
- result.set(i, tempPagedResult);
- } else {
-
- /*
- * we will search to complete the result with id from
- * the fallback service so we reduce the number of
- * element requested on the fallback service and we add
- * a restriction on wikitty id to exclude id already in
- * the first part of the result
- *
- * it not assume that wikitty id found does not exist on
- * the first part of a criteria, for example if first
- * index where 12, nothing assure that we found wikitty
- * in the fall back that aren't in the 11 first wikitty
- * of the main service
- */
- PagedResult<String> idFromMain = mainProxy
- .findAllIdByCriteria(currentCrit);
-
- Criteria excluding = idNotInCriteriaConstructor(
- critFallback, idFromMain.getAll());
-
- excluding.setEndIndex(resultSizeExpected
- - result.size());
-
- PagedResult<E> resultFallback = fallbackProxy
- .findAllByCriteria(clazz, excluding);
-
- List<E> allresult = new ArrayList<E>();
- allresult.addAll(currentResult.getAll());
- allresult.addAll(resultFallback.getAll());
-
- int number = currentResult.getNumFound()
- + resultFallback.getNumFound();
-
- // rebuilt the result
- PagedResult<E> tempPagedResult = new PagedResult<E>(
- currentCrit.getFirstIndex(), number,
- currentCrit.toString(),
- currentResult.getFacets(), allresult);
- // re set the result in the list
- result.set(i, tempPagedResult);
- }
- }
-
- }
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> PagedResult<E> findAllByCriteria(
- Class<E> clazz, Criteria criteria) {
-
- PagedResult<E> result = mainProxy.findAllByCriteria(clazz, criteria);
-
- // PagedResult<String> result = mainProxy.findAllIdByCriteria(criteria);
-
- int resultSizeExpected = criteria.getEndIndex()
- - criteria.getFirstIndex();
- if (isFallbackService() && result.size() < resultSizeExpected) {
- // if result empty, just put the result of the fallback's request
- // result
-
- /*
- * rebuild the criteria to search properly on the second service we
- * search for wikitty not in the same position, but in the beginning
- */
- Criteria critFallback = Search.query(criteria).criteria();
- critFallback.setFirstIndex(0);
- critFallback.setEndIndex(criteria.getEndIndex()
- - criteria.getFirstIndex());
-
- if (result.size() == 0) {
-
- result = fallbackProxy.findAllByCriteria(clazz, critFallback);
- // rebuild the result to match the expected criteria
- result = new PagedResult<E>(criteria.getFirstIndex(),
- result.getNumFound(), criteria.toString(),
- result.getFacets(), result.getAll());
- } else {
-
- PagedResult<String> idFromMain = mainProxy
- .findAllIdByCriteria(criteria);
-
- /*
- * we will search to complete the result with id from the
- * fallback service so we reduce the number of element requested
- * on the fallback service and we add a restriction on wikitty
- * id to exclude id already in the first part of the result
- *
- * it not assume that wikitty id found does not exist on the
- * first part of a criteria, for example if first index where
- * 12, nothing assure that we found wikitty in the fall back
- * that aren't in the 11 first wikitty of the main service
- */
- Criteria excluding = idNotInCriteriaConstructor(critFallback,
- idFromMain.getAll());
-
- excluding.setEndIndex(resultSizeExpected - result.size());
-
- PagedResult<E> resultFallback = fallbackProxy
- .findAllByCriteria(clazz, excluding);
-
- List<E> allresult = new ArrayList<E>();
- allresult.addAll(result.getAll());
- allresult.addAll(resultFallback.getAll());
- int number = result.getNumFound()
- + resultFallback.getNumFound();
-
- result = new PagedResult<E>(criteria.getFirstIndex(), number,
- criteria.toString(), result.getFacets(), allresult);
- }
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> PagedResult<E>[] findAllByCriteria(
- Class<E> clazz, Criteria c1, Criteria c2, Criteria... otherCriteria) {
-
- List<Criteria> criterias = new ArrayList<Criteria>();
- criterias.add(c1);
- criterias.add(c2);
- CollectionUtil.addAll(criterias, otherCriteria);
-
- // deleguate to easily handle multicontext
- return (PagedResult<E>[]) this.findAllByCriteria(clazz, criterias)
- .toArray();
- }
-
- public List<PagedResult<Wikitty>> findAllByCriteria(List<Criteria> criteria) {
-
- List<PagedResult<Wikitty>> result = mainProxy
- .findAllByCriteria(criteria);
-
- if (isFallbackService()) {
-
- for (int i = 0; i < result.size(); i++) {
-
- /*
- * get the curent criteria and corresponding result to check if
- * the expected number of result is match
- */
- Criteria currentCrit = criteria.get(i);
- PagedResult<Wikitty> currentResult = result.get(i);
-
- int resultSizeExpected = currentCrit.getEndIndex()
- - currentCrit.getFirstIndex();
- if (currentResult.size() < resultSizeExpected) {
- /*
- * if result empty, just put the result of the fallback's
- * requestresult
- */
-
- /*
- * rebuild the criteria to search properly on the second
- * service we search for wikitty not in the same position,
- * but in the beginning
- */
- Criteria critFallback = Search.query(currentCrit)
- .criteria();
- critFallback.setFirstIndex(0);
- critFallback.setEndIndex(currentCrit.getEndIndex()
- - currentCrit.getFirstIndex());
-
- if (result.size() == 0) {
-
- PagedResult<Wikitty> tempPagedResult = fallbackProxy
- .findAllByCriteria(critFallback);
-
- // rebuild the result to match the expected criteria
- tempPagedResult = new PagedResult<Wikitty>(
- currentCrit.getFirstIndex(),
- tempPagedResult.getNumFound(),
- currentCrit.toString(),
- tempPagedResult.getFacets(),
- tempPagedResult.getAll());
-
- result.set(i, tempPagedResult);
- } else {
-
- /*
- * we will search to complete the result with id from
- * the fallback service so we reduce the number of
- * element requested on the fallback service and we add
- * a restriction on wikitty id to exclude id already in
- * the first part of the result
- *
- * it not assume that wikitty id found does not exist on
- * the first part of a criteria, for example if first
- * index where 12, nothing assure that we found wikitty
- * in the fall back that aren't in the 11 first wikitty
- * of the main service
- */
- PagedResult<String> idFromMain = mainProxy
- .findAllIdByCriteria(currentCrit);
-
- Criteria excluding = idNotInCriteriaConstructor(
- critFallback, idFromMain.getAll());
-
- excluding.setEndIndex(resultSizeExpected
- - result.size());
-
- PagedResult<Wikitty> resultFallback = fallbackProxy
- .findAllByCriteria(excluding);
-
- List<Wikitty> allresult = new ArrayList<Wikitty>();
- allresult.addAll(currentResult.getAll());
- allresult.addAll(resultFallback.getAll());
- int number = currentResult.getNumFound()
- + resultFallback.getNumFound();
-
- // rebuilt the result
- PagedResult<Wikitty> tempPagedResult = new PagedResult<Wikitty>(
- currentCrit.getFirstIndex(), number,
- currentCrit.toString(),
- currentResult.getFacets(), allresult);
- // re set the result in the list
- result.set(i, tempPagedResult);
- }
- }
-
- }
- }
-
- return result;
-
- }
-
- public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) {
-
- PagedResult<Wikitty> result = mainProxy.findAllByCriteria(criteria);
-
- // PagedResult<String> result = mainProxy.findAllIdByCriteria(criteria);
-
- int resultSizeExpected = criteria.getEndIndex()
- - criteria.getFirstIndex();
- if (isFallbackService() && result.size() < resultSizeExpected) {
- // if result empty, just put the result of the fallback's request
- // result
-
- /*
- * rebuild the criteria to search properly on the second service we
- * search for wikitty not in the same position, but in the beginning
- */
- Criteria critFallback = Search.query(criteria).criteria();
- critFallback.setFirstIndex(0);
- critFallback.setEndIndex(criteria.getEndIndex()
- - criteria.getFirstIndex());
-
- if (result.size() == 0) {
-
- result = fallbackProxy.findAllByCriteria(critFallback);
- // rebuild the result to match the expected criteria
- result = new PagedResult<Wikitty>(criteria.getFirstIndex(),
- result.getNumFound(), criteria.toString(),
- result.getFacets(), result.getAll());
- } else {
-
- PagedResult<String> idFromMain = mainProxy
- .findAllIdByCriteria(criteria);
-
- /*
- * we will search to complete the result with id from the
- * fallback service so we reduce the number of element requested
- * on the fallback service and we add a restriction on wikitty
- * id to exclude id already in the first part of the result
- *
- * it not assume that wikitty id found does not exist on the
- * first part of a criteria, for example if first index where
- * 12, nothing assure that we found wikitty in the fall back
- * that aren't in the 11 first wikitty of the main service
- */
- Criteria excluding = idNotInCriteriaConstructor(critFallback,
- idFromMain.getAll());
-
- excluding.setEndIndex(resultSizeExpected - result.size());
-
- PagedResult<Wikitty> resultFallback = fallbackProxy
- .findAllByCriteria(excluding);
-
- List<Wikitty> allresult = new ArrayList<Wikitty>();
- allresult.addAll(result.getAll());
-
- allresult.addAll(resultFallback.getAll());
- int number = result.getNumFound()
- + resultFallback.getNumFound();
-
- result = new PagedResult<Wikitty>(criteria.getFirstIndex(),
- number, criteria.toString(), result.getFacets(),
- allresult);
- }
- }
-
- return result;
-
- }
-
- public PagedResult<Wikitty>[] findAllByCriteria(Criteria c1, Criteria c2,
- Criteria... otherCriteria) {
-
- List<Criteria> criterias = new ArrayList<Criteria>();
- criterias.add(c1);
- criterias.add(c2);
- CollectionUtil.addAll(criterias, otherCriteria);
-
- // deleguate to easily handle multicontext
- return (PagedResult<Wikitty>[]) this.findAllByCriteria(criterias)
- .toArray();
- }
-
- public List<PagedResult<String>> findAllIdByCriteria(List<Criteria> criteria) {
-
- List<PagedResult<String>> result = mainProxy
- .findAllIdByCriteria(criteria);
-
- if (isFallbackService()) {
-
- for (int i = 0; i < result.size(); i++) {
-
- /*
- * get the curent criteria and corresponding result to check if
- * the expected number of result is match
- */
- Criteria currentCrit = criteria.get(i);
- PagedResult<String> currentResult = result.get(i);
-
- int resultSizeExpected = currentCrit.getEndIndex()
- - currentCrit.getFirstIndex();
- if (currentResult.size() < resultSizeExpected) {
- /*
- * if result empty, just put the result of the fallback's
- * requestresult
- */
-
- /*
- * rebuild the criteria to search properly on the second
- * service we search for wikitty not in the same position,
- * but in the beginning
- */
- Criteria critFallback = Search.query(currentCrit)
- .criteria();
- critFallback.setFirstIndex(0);
- critFallback.setEndIndex(currentCrit.getEndIndex()
- - currentCrit.getFirstIndex());
-
- if (result.size() == 0) {
-
- PagedResult<String> tempPagedResult = fallbackProxy
- .findAllIdByCriteria(critFallback);
-
- // rebuild the result to match the expected criteria
- tempPagedResult = new PagedResult<String>(
- currentCrit.getFirstIndex(),
- tempPagedResult.getNumFound(),
- currentCrit.toString(),
- tempPagedResult.getFacets(),
- tempPagedResult.getAll());
-
- result.set(i, tempPagedResult);
- } else {
-
- /*
- * we will search to complete the result with id from
- * the fallback service so we reduce the number of
- * element requested on the fallback service and we add
- * a restriction on wikitty id to exclude id already in
- * the first part of the result
- *
- * it not assume that wikitty id found does not exist on
- * the first part of a criteria, for example if first
- * index where 12, nothing assure that we found wikitty
- * in the fall back that aren't in the 11 first wikitty
- * of the main service
- */
- Criteria excluding = idNotInCriteriaConstructor(
- critFallback, currentResult.getAll());
-
- excluding.setEndIndex(resultSizeExpected
- - result.size());
-
- PagedResult<String> resultFallback = fallbackProxy
- .findAllIdByCriteria(excluding);
-
- List<String> allresult = new ArrayList<String>();
- allresult.addAll(currentResult.getAll());
- allresult.addAll(resultFallback.getAll());
- int number = currentResult.getNumFound()
- + resultFallback.getNumFound();
-
- // rebuilt the result
- PagedResult<String> tempPagedResult = new PagedResult<String>(
- currentCrit.getFirstIndex(), number,
- currentCrit.toString(),
- currentResult.getFacets(), allresult);
- // re set the result in the list
- result.set(i, tempPagedResult);
- }
- }
-
- }
- }
-
- return result;
-
- }
-
- public PagedResult<String> findAllIdByCriteria(Criteria criteria) {
-
- PagedResult<String> result = mainProxy.findAllIdByCriteria(criteria);
-
- int resultSizeExpected = criteria.getEndIndex()
- - criteria.getFirstIndex();
- if (isFallbackService() && result.size() < resultSizeExpected) {
- // if result empty, just put the result of the fallback's request
- // result
-
- /*
- * rebuild the criteria to search properly on the second service we
- * search for wikitty not in the same position, but in the beginning
- */
- Criteria critFallback = Search.query(criteria).criteria();
- critFallback.setFirstIndex(0);
- critFallback.setEndIndex(criteria.getEndIndex()
- - criteria.getFirstIndex());
-
- if (result.size() == 0) {
-
- result = fallbackProxy.findAllIdByCriteria(critFallback);
- // rebuild the result to match the expected criteria
- result = new PagedResult<String>(criteria.getFirstIndex(),
- result.getNumFound(), criteria.toString(),
- result.getFacets(), result.getAll());
- } else {
-
- /*
- * we will search to complete the result with id from the
- * fallback service so we reduce the number of element requested
- * on the fallback service and we add a restriction on wikitty
- * id to exclude id already in the first part of the result
- *
- * it not assume that wikitty id found does not exist on the
- * first part of a criteria, for example if first index where
- * 12, nothing assure that we found wikitty in the fall back
- * that aren't in the 11 first wikitty of the main service
- */
- Criteria excluding = idNotInCriteriaConstructor(critFallback,
- result.getAll());
-
- excluding.setEndIndex(resultSizeExpected - result.size());
-
- PagedResult<String> resultFallback = fallbackProxy
- .findAllIdByCriteria(excluding);
-
- List<String> allresult = new ArrayList<String>();
- allresult.addAll(result.getAll());
- allresult.addAll(resultFallback.getAll());
- int number = result.getNumFound()
- + resultFallback.getNumFound();
-
- result = new PagedResult<String>(criteria.getFirstIndex(),
- number, criteria.toString(), result.getFacets(),
- allresult);
- }
- }
-
- return result;
- }
-
- public PagedResult<String>[] findAllIdByCriteria(Criteria c1, Criteria c2,
- Criteria... otherCriteria) {
-
- List<Criteria> criterias = new ArrayList<Criteria>();
- criterias.add(c1);
- criterias.add(c2);
- CollectionUtil.addAll(criterias, otherCriteria);
-
- // deleguate to easily handle multicontext
- return (PagedResult<String>[]) this.findAllIdByCriteria(criterias)
- .toArray();
- }
-
- public List<String> findIdByCriteria(List<Criteria> criteria) {
-
- List<String> result = new ArrayList<String>();
- result.addAll(mainProxy.findIdByCriteria(criteria));
-
- if (isFallbackService()) {
-
- if (result.size() == 0) {
- result.addAll(fallbackProxy.findIdByCriteria(criteria));
- } else {
- // merge list
- List<String> resultFallback = new ArrayList<String>();
-
- resultFallback.addAll(fallbackProxy.findIdByCriteria(criteria));
- // this allow to element from main to prevail
-
- resultFallback.removeAll(result);
- result.addAll(resultFallback);
- }
- }
-
- return result;
-
- }
-
- public String findIdByCriteria(Criteria criteria) {
-
- String result = mainProxy.findIdByCriteria(criteria);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.findIdByCriteria(criteria);
- }
-
- return result;
- }
-
- public String[] findIdByCriteria(Criteria c1, Criteria c2,
- Criteria... otherCriteria) {
-
- String[] result = mainProxy.findIdByCriteria(c1, c2, otherCriteria);
-
- if (isFallbackService()) {
- if (result == null) {
- result = fallbackProxy.findIdByCriteria(c1, c2, otherCriteria);
- } else {
- // merge list
- List<String> resultFallback = new ArrayList<String>();
- CollectionUtil.addAll(resultFallback,
- fallbackProxy.findIdByCriteria(c1, c2, otherCriteria));
-
- List<String> resultMain = new ArrayList<String>();
- CollectionUtil.addAll(resultMain, result);
-
- // this allow to element from main to prevail
- resultFallback.removeAll(resultMain);
- resultMain.addAll(resultFallback);
-
- result = (String[]) resultMain.toArray();
- }
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> List<E> findByCriteria(Class<E> clazz,
- List<Criteria> criterias) {
-
- List<E> result = new ArrayList<E>();
- result.addAll(mainProxy.findByCriteria(clazz, criterias));
-
- if (isFallbackService()) {
- if (result.size() == 0) {
- result.addAll(fallbackProxy.findByCriteria(clazz, criterias));
- } else {
- // merge list
- List<E> resultFallback = fallbackProxy.findByCriteria(clazz,
- criterias);
- // this allow to element from main to prevail
- resultFallback.removeAll(result);
- result.addAll(resultFallback);
- }
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> E findByCriteria(Class<E> clazz,
- Criteria criteria) {
-
- E result = mainProxy.findByCriteria(clazz, criteria);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.findByCriteria(clazz, criteria);
- }
-
- return result;
- }
-
- public <E extends BusinessEntity> E[] findByCriteria(Class<E> clazz,
- Criteria c1, Criteria c2, Criteria... otherCriteria) {
-
- E[] result = mainProxy.findByCriteria(clazz, c1, c2, otherCriteria);
-
- if (isFallbackService()) {
- if (result == null) {
- result = fallbackProxy.findByCriteria(clazz, c1, c2,
- otherCriteria);
- } else {
- // merge list
- List<E> resultFallback = new ArrayList<E>();
- CollectionUtil.addAll(resultFallback, fallbackProxy
- .findByCriteria(clazz, c1, c2, otherCriteria));
-
- List<E> resultMain = new ArrayList<E>();
- CollectionUtil.addAll(resultMain, result);
-
- // this allow to element from main to prevail
- resultFallback.removeAll(resultMain);
- resultMain.addAll(resultFallback);
-
- result = (E[]) resultMain.toArray();
- }
- }
-
- return result;
- }
-
- public List<Wikitty> findByCriteria(List<Criteria> criteria) {
-
- List<Wikitty> result = new ArrayList<Wikitty>();
-
- result.addAll(mainProxy.findByCriteria(criteria));
-
- if (isFallbackService()) {
- if (result.size() == 0l) {
- result.addAll(fallbackProxy.findByCriteria(criteria));
- } else {
- // merge list
- List<Wikitty> resultFallback = fallbackProxy
- .findByCriteria(criteria);
- // this allow to element from main to prevail
- resultFallback.removeAll(result);
- result.addAll(resultFallback);
- }
- }
-
- return result;
- }
-
- public Wikitty findByCriteria(Criteria criteria) {
-
- Wikitty result = mainProxy.findByCriteria(criteria);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.findByCriteria(criteria);
- }
-
- return result;
- }
-
- public Wikitty[] findByCriteria(Criteria c1, Criteria c2,
- Criteria... otherCriteria) {
-
- Wikitty[] result = mainProxy.findByCriteria(c1, c2, otherCriteria);
-
- if (isFallbackService()) {
- if (result == null) {
- result = fallbackProxy.findByCriteria(c1, c2, otherCriteria);
- } else {
- // merge list
- List<Wikitty> resultFallback = new ArrayList<Wikitty>();
- CollectionUtil.addAll(resultFallback,
- fallbackProxy.findByCriteria(c1, c2, otherCriteria));
-
- List<Wikitty> resultMain = new ArrayList<Wikitty>();
- CollectionUtil.addAll(resultMain, result);
-
- // this allow to element from main to prevail
- resultFallback.removeAll(resultMain);
- resultMain.addAll(resultFallback);
-
- result = (Wikitty[]) resultMain.toArray();
- }
- }
-
- return result;
- }
-
- public TreeNodeResult<Wikitty> findTreeNode(String wikittyId, int depth,
- boolean count, Criteria 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) {
- 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) {
-
- WikittyEvent result = mainProxy.deleteTree(treeNodeId);
-
- if (isFallbackService()) {
- result.add(fallbackProxy.deleteTree(treeNodeId));
- result.setSource(this);
- }
-
- return result;
- }
-
- public Wikitty restoreVersion(String wikittyId, String 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) {
- boolean result = mainProxy.hasType(clazz, wikittyId);
-
- if (isFallbackService()) {
- result = result || fallbackProxy.hasType(clazz, wikittyId);
- }
-
- return result;
- }
-
- public WikittyEvent storeExtension(WikittyExtension ext) {
-
- WikittyEvent result = mainProxy.storeExtension(ext);
-
- if (isFallbackService()) {
- result.add(fallbackProxy.storeExtension(ext));
- result.setSource(this);
- }
-
- return result;
-
- }
-
- public WikittyEvent storeExtension(Collection<WikittyExtension> exts) {
-
- WikittyEvent result = mainProxy.storeExtension(exts);
-
- if (isFallbackService()) {
- result.add(fallbackProxy.storeExtension(exts));
- result.setSource(this);
- }
-
- return result;
- }
-
- public WikittyExtension restoreExtension(String extensionId) {
- WikittyExtension result = mainProxy.restoreExtension(extensionId);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.restoreExtension(extensionId);
- }
-
- return result;
- }
-
- public WikittyExtension restoreExtensionLastVersion(String 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() {
-
- List<String> result = new ArrayList<String>();
- result.addAll(mainProxy.getAllExtensionIds());
-
- if (isFallbackService()) {
-
- List<String> temp = fallbackProxy.getAllExtensionIds();
-
- // assert that not have duplicate entry
- result.removeAll(temp);
- result.addAll(temp);
-
- }
-
- return result;
- }
-
- public List<String> getAllExtensionsRequires(String extensionName) {
- List<String> result = new ArrayList<String>();
- result.addAll(mainProxy.getAllExtensionsRequires(extensionName));
-
- if (isFallbackService()) {
- List<String> temp = fallbackProxy
- .getAllExtensionsRequires(extensionName);
-
- // assert that not have duplicate entry
- result.removeAll(temp);
- result.addAll(temp);
- }
-
- return result;
- }
-
- public WikittyEvent 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) {
- Wikitty result = mainProxy.getWikitty(entity);
-
- if (isFallbackService() && result == null) {
- result = fallbackProxy.getWikitty(entity);
- }
-
- return result;
- }
-
- public boolean isMember(String groupName) {
- boolean result = mainProxy.isMember(groupName);
- if (isFallbackService()) {
- result = result || fallbackProxy.isMember(groupName);
- }
-
- return result;
-
- }
-
- public WikittyUser getLoggedInUser() {
- WikittyUser result = mainProxy.getLoggedInUser();
-
- // TODO mfortun-2011-05-16 how to merge wikitty user ?
- return result;
- }
-
- /**
- * construct list criteria on wikitty id: used to search wikittyid in
- * wikittyIDCollection. used to check if an id exist on a wikitty service
- *
- * @param ids
- * @return criterias on id
- */
- protected List<Criteria> idInIdsCriteriaConstructor(List<String> ids) {
-
- List<Criteria> result = new ArrayList<Criteria>();
-
- for (String id : ids) {
- result.add(Search.query().ideq(id).criteria());
- }
- return result;
- }
-
- /**
- * Create a criteria to exclude a list of if from a criteria
- *
- * @param origin
- * the criteria from whom exclude id
- * @param toExclude
- * list of id to exlude
- * @return the criteria excluding ids
- */
- protected Criteria idNotInCriteriaConstructor(Criteria origin,
- List<String> toExclude) {
- Criteria result = null;
-
- Search search = Search.query(origin);
-
- for (String id : toExclude) {
- search.idneq(id);
- }
-
- result = search.criteria();
-
- return result;
- }
-
}
1
0
r919 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 24 May '11
by mfortun@users.nuiton.org 24 May '11
24 May '11
Author: mfortun
Date: 2011-05-24 17:52:09 +0200 (Tue, 24 May 2011)
New Revision: 919
Url: http://nuiton.org/repositories/revision/wikitty/919
Log:
* rename wikitty service multicontext with a proper name
* correct constructor to handle fallback service's instantiation with a mechanism of prefix inside property file
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java
Removed:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationMultiService.java
Copied: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java (from rev 916, trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationMultiService.java)
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java 2011-05-24 15:52:09 UTC (rev 919)
@@ -0,0 +1,168 @@
+package org.nuiton.wikitty.publication;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyServiceFactory;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.TreeNodeResult;
+import org.nuiton.wikitty.services.WikittyEvent;
+import org.nuiton.wikitty.services.WikittyListener;
+
+/**
+ * class meant to handle multicontext for wikitty publication.
+ *
+ * @author mfortun
+ *
+ */
+public class WikittyPublicationFallbackService implements WikittyService {
+
+ static public String WIKITTY_FALLBACK_PREFIX_KEY = "wikitty.fallback.prefix";
+
+ protected WikittyService mainService;
+ protected WikittyService fallbackService;
+
+ public WikittyPublicationFallbackService(WikittyService serv,
+ ApplicationConfig config) {
+ this.mainService = serv;
+ fallbackService = WikittyServiceFactory.buildWikittyService(config,
+ "wikitty." + config.getOption(WIKITTY_FALLBACK_PREFIX_KEY));
+ }
+
+ public boolean isFallBack() {
+ return fallbackService != null;
+ }
+
+ /*
+ * TODO mfortun-2011-05-20 see if allow a special mode to enable login on
+ * both wikitty service, see if fallback service has to be construct with a
+ * special stack of component in the application config under specific
+ * properties name, or if the fallback service is already construct and pass
+ * threw this constructor
+ */
+
+ public void addWikittyServiceListener(WikittyListener listener,
+ ServiceListenerType type) {
+ mainService.addWikittyServiceListener(listener, type);
+ }
+
+ public void removeWikittyServiceListener(WikittyListener listener,
+ ServiceListenerType type) {
+ mainService.removeWikittyServiceListener(listener, type);
+ }
+
+ public String login(String login, String password) {
+ return mainService.login(login, password);
+ }
+
+ public void logout(String securityToken) {
+ mainService.logout(securityToken);
+ }
+
+ public WikittyEvent clear(String securityToken) {
+ return mainService.clear(securityToken);
+ }
+
+ public boolean canWrite(String securityToken, Wikitty wikitty) {
+ return mainService.canWrite(securityToken, wikitty);
+ }
+
+ public boolean canDelete(String securityToken, String wikittyId) {
+ return mainService.canDelete(securityToken, wikittyId);
+ }
+
+ public boolean canRead(String securityToken, String wikittyId) {
+ return mainService.canRead(securityToken, wikittyId);
+ }
+
+ public boolean exists(String securityToken, String wikittyId) {
+ return mainService.exists(securityToken, wikittyId);
+ }
+
+ public boolean isDeleted(String securityToken, String wikittyId) {
+ return mainService.isDeleted(securityToken, wikittyId);
+ }
+
+ public WikittyEvent replay(String securityToken, List<WikittyEvent> events,
+ boolean force) {
+ return mainService.replay(securityToken, events, force);
+ }
+
+ public WikittyEvent store(String securityToken,
+ Collection<Wikitty> wikitties, boolean force) {
+ return mainService.store(securityToken, wikitties, force);
+ }
+
+ public List<String> getAllExtensionIds(String securityToken) {
+ return mainService.getAllExtensionIds(securityToken);
+ }
+
+ public List<String> getAllExtensionsRequires(String securityToken,
+ String extensionName) {
+ return mainService.getAllExtensionsRequires(securityToken,
+ extensionName);
+ }
+
+ public WikittyEvent storeExtension(String securityToken,
+ Collection<WikittyExtension> exts) {
+ return mainService.storeExtension(securityToken, exts);
+ }
+
+ public WikittyEvent deleteExtension(String securityToken,
+ Collection<String> extNames) {
+ return mainService.deleteExtension(securityToken, extNames);
+ }
+
+ public WikittyExtension restoreExtension(String securityToken,
+ String extensionId) {
+ return mainService.restoreExtension(securityToken, extensionId);
+ }
+
+ public WikittyExtension restoreExtensionLastVersion(String securityToken,
+ String name) {
+ return mainService.restoreExtensionLastVersion(securityToken, name);
+ }
+
+ public List<Wikitty> restore(String securityToken, List<String> id) {
+ return mainService.restore(securityToken, id);
+ }
+
+ public WikittyEvent delete(String securityToken, Collection<String> ids) {
+ return mainService.delete(securityToken, ids);
+ }
+
+ public List<PagedResult<String>> findAllByCriteria(String securityToken,
+ List<Criteria> criteria) {
+ return mainService.findAllByCriteria(securityToken, criteria);
+ }
+
+ public List<String> findByCriteria(String securityToken,
+ List<Criteria> criteria) {
+ return mainService.findByCriteria(securityToken, criteria);
+ }
+
+ public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
+ return mainService.deleteTree(securityToken, treeNodeId);
+ }
+
+ public TreeNodeResult<String> findTreeNode(String securityToken,
+ String wikittyId, int depth, boolean count, Criteria filter) {
+ return mainService.findTreeNode(securityToken, wikittyId, depth, count,
+ filter);
+ }
+
+ public Wikitty restoreVersion(String securityToken, String wikittyId,
+ String version) {
+ return mainService.restoreVersion(securityToken, wikittyId, version);
+ }
+
+ public void syncSearchEngine(String securityToken) {
+ mainService.syncSearchEngine(securityToken);
+ }
+
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationMultiService.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationMultiService.java 2011-05-24 15:46:53 UTC (rev 918)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationMultiService.java 2011-05-24 15:52:09 UTC (rev 919)
@@ -1,163 +0,0 @@
-package org.nuiton.wikitty.publication;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.PagedResult;
-import org.nuiton.wikitty.search.TreeNodeResult;
-import org.nuiton.wikitty.services.WikittyEvent;
-import org.nuiton.wikitty.services.WikittyListener;
-
-/**
- * class meant to handle multicontext for wikitty publication.
- * @author mfortun
- *
- */
-public class WikittyPublicationMultiService implements WikittyService {
-
- protected WikittyService mainService;
- protected WikittyService fallbackService;
-
- public WikittyPublicationMultiService(WikittyService serv,
- ApplicationConfig config) {
- this.mainService = serv;
-
- }
-
- public boolean isFallBack() {
- return fallbackService != null;
- }
-
- /*
- * TODO mfortun-2011-05-20 see if allow a special mode to enable login on
- * both wikitty service, see if fallback service has to be construct with a
- * special stack of component in the application config under specific
- * properties name, or if the fallback service is already construct and pass
- * threw this constructor
- */
-
- public void addWikittyServiceListener(WikittyListener listener,
- ServiceListenerType type) {
- mainService.addWikittyServiceListener(listener, type);
- }
-
- public void removeWikittyServiceListener(WikittyListener listener,
- ServiceListenerType type) {
- mainService.removeWikittyServiceListener(listener, type);
- }
-
- public String login(String login, String password) {
- return mainService.login(login, password);
- }
-
- public void logout(String securityToken) {
- mainService.logout(securityToken);
- }
-
- public WikittyEvent clear(String securityToken) {
- return mainService.clear(securityToken);
- }
-
- public boolean canWrite(String securityToken, Wikitty wikitty) {
- return mainService.canWrite(securityToken, wikitty);
- }
-
- public boolean canDelete(String securityToken, String wikittyId) {
- return mainService.canDelete(securityToken, wikittyId);
- }
-
- public boolean canRead(String securityToken, String wikittyId) {
- return mainService.canRead(securityToken, wikittyId);
- }
-
- public boolean exists(String securityToken, String wikittyId) {
- return mainService.exists(securityToken, wikittyId);
- }
-
- public boolean isDeleted(String securityToken, String wikittyId) {
- return mainService.isDeleted(securityToken, wikittyId);
- }
-
- public WikittyEvent replay(String securityToken, List<WikittyEvent> events,
- boolean force) {
- return mainService.replay(securityToken, events, force);
- }
-
- public WikittyEvent store(String securityToken,
- Collection<Wikitty> wikitties, boolean force) {
- return mainService.store(securityToken, wikitties, force);
- }
-
- public List<String> getAllExtensionIds(String securityToken) {
- return mainService.getAllExtensionIds(securityToken);
- }
-
- public List<String> getAllExtensionsRequires(String securityToken,
- String extensionName) {
- return mainService.getAllExtensionsRequires(securityToken,
- extensionName);
- }
-
- public WikittyEvent storeExtension(String securityToken,
- Collection<WikittyExtension> exts) {
- return mainService.storeExtension(securityToken, exts);
- }
-
- public WikittyEvent deleteExtension(String securityToken,
- Collection<String> extNames) {
- return mainService.deleteExtension(securityToken, extNames);
- }
-
- public WikittyExtension restoreExtension(String securityToken,
- String extensionId) {
- return mainService.restoreExtension(securityToken, extensionId);
- }
-
- public WikittyExtension restoreExtensionLastVersion(String securityToken,
- String name) {
- return mainService.restoreExtensionLastVersion(securityToken, name);
- }
-
- public List<Wikitty> restore(String securityToken, List<String> id) {
- return mainService.restore(securityToken, id);
- }
-
- public WikittyEvent delete(String securityToken, Collection<String> ids) {
- return mainService.delete(securityToken, ids);
- }
-
- public List<PagedResult<String>> findAllByCriteria(String securityToken,
- List<Criteria> criteria) {
- return mainService.findAllByCriteria(securityToken, criteria);
- }
-
- public List<String> findByCriteria(String securityToken,
- List<Criteria> criteria) {
- return mainService.findByCriteria(securityToken, criteria);
- }
-
- public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
- return mainService.deleteTree(securityToken, treeNodeId);
- }
-
- public TreeNodeResult<String> findTreeNode(String securityToken,
- String wikittyId, int depth, boolean count, Criteria filter) {
- return mainService.findTreeNode(securityToken, wikittyId, depth, count,
- filter);
- }
-
- public Wikitty restoreVersion(String securityToken, String wikittyId,
- String version) {
- return mainService.restoreVersion(securityToken, wikittyId, version);
- }
-
- public void syncSearchEngine(String securityToken) {
- mainService.syncSearchEngine(securityToken);
- }
-
-}
1
0
r918 - in trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication: . action
by mfortun@users.nuiton.org 24 May '11
by mfortun@users.nuiton.org 24 May '11
24 May '11
Author: mfortun
Date: 2011-05-24 17:46:53 +0200 (Tue, 24 May 2011)
New Revision: 918
Url: http://nuiton.org/repositories/revision/wikitty/918
Log:
* change session storage/login mechanism
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java 2011-05-24 15:43:26 UTC (rev 917)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java 2011-05-24 15:46:53 UTC (rev 918)
@@ -21,17 +21,17 @@
static final private String WIKITTY_PUBLICATION_SESSION_KEY = WikittyPublicationSession.class
.getSimpleName();
- protected WikittyPublicationProxy proxy;
- protected WikittyUser user;
+ protected String securityToken = null;
+ transient protected WikittyUser user;
+ transient protected WikittyPublicationProxy proxy = null;
public WikittyPublicationSession() {
- //proxy = WikittyPublicationProxy.getInstance(null);
- proxy = WikittyPublicationProxy.getInstanceWithFallback(null);
-
+ proxy = WikittyPublicationProxy.getInstance(null);
}
/**
* remove wikittypublicationSession from the httpsession
+ *
* @param session
*/
static public void invalidate(Map<String, Object> session) {
@@ -67,10 +67,23 @@
return result;
}
+ public void login(String login, String password) {
+
+ getProxy().login(login, password);
+ securityToken = getProxy().getSecurityToken();
+ user = getProxy().getUser();
+
+ }
+
public WikittyPublicationProxy getProxy() {
+ if (proxy == null) {
+ proxy = WikittyPublicationProxy.getInstance(securityToken);
+ }
return proxy;
+
}
+
public WikittyUser getUser() {
return user;
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-24 15:43:26 UTC (rev 917)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-24 15:46:53 UTC (rev 918)
@@ -25,9 +25,8 @@
package org.nuiton.wikitty.publication.action;
import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.entities.WikittyUser;
-import org.nuiton.wikitty.publication.WikittyPublicationProxy;
+
/**
* Class used as an action login, call the login method on the proxy with
* login/password pass threw the login form
@@ -93,21 +92,11 @@
try {
- WikittyPublicationProxy proxy = getWikittyPublicationSession()
- .getProxy();
+ getWikittyPublicationSession().login(login, md5);
+ result = SUCCESS;
- // Try to log a wikitty user
- proxy.login(login, md5);
-
- WikittyUser user = proxy.getLoggedInUser();
- // check if a user is logged
- if (user != null) {
- getWikittyPublicationSession().setUser(user);
- result = SUCCESS;
- }
} catch (Exception e) {
// TODO mfortun-2011-05-12 handle exception due to wrong
- // login/password
e.printStackTrace();
}
}
1
0
r917 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action
by mfortun@users.nuiton.org 24 May '11
by mfortun@users.nuiton.org 24 May '11
24 May '11
Author: mfortun
Date: 2011-05-24 17:43:26 +0200 (Tue, 24 May 2011)
New Revision: 917
Url: http://nuiton.org/repositories/revision/wikitty/917
Log:
* correct a bug, a method never called but necessary to handle edit requests.
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 15:01:48 UTC (rev 916)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 15:43:26 UTC (rev 917)
@@ -65,6 +65,8 @@
+ doAction();
+
putIdArgs(wikitty.getId());
return SUCCESS;
1
0
r916 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action webapp/WEB-INF/jsp
by mfortun@users.nuiton.org 24 May '11
by mfortun@users.nuiton.org 24 May '11
24 May '11
Author: mfortun
Date: 2011-05-24 17:01:48 +0200 (Tue, 24 May 2011)
New Revision: 916
Url: http://nuiton.org/repositories/revision/wikitty/916
Log:
* correct edit page struts migration finished #1500
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 09:43:17 UTC (rev 915)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 15:01:48 UTC (rev 916)
@@ -32,14 +32,19 @@
*/
private static final long serialVersionUID = -590087371230933701L;
- protected String newExtension;
-
protected Wikitty wikitty;
private HashMap<String, Object> wikittyFieldMap;
- protected File upload;// The actual file
+ protected WikittyProxy proxy;
+ protected boolean isDelete = false;
+ protected boolean isStore = false;
+ protected String wikittyId = "";
+ protected String version = "";
+
+ protected File uploadedFile;
+
static public PublicationActionEdit getAction() {
return (PublicationActionEdit) ActionContext.getContext().get(
CONTEXT_ACTION_KEY);
@@ -48,28 +53,36 @@
@Override
public String execute() throws Exception {
- doAction();
+ proxy = getWikittyPublicationProxy();
+ Map<String, Object> param = ActionContext.getContext().getParameters();
+ this.formatArgs(param);
- return SUCCESS;
- }
+ isDelete = param.containsKey("delete");
+ isStore = param.containsKey("store");
- public void doAction() {
+ wikittyId = getArgument("id", "");
+ version = getArgument("version", "");
- WikittyProxy proxy = getWikittyPublicationProxy();
+
- Object context;
+ putIdArgs(wikitty.getId());
- Map<String, Object> param = ActionContext.getContext().getParameters();
+ return SUCCESS;
+ }
- if (param.containsKey("delete")) {
+ public void doAction() {
+
+ if (isDelete) {
// on nous demande supprimer le wikitty, on l'efface et on
// affichera un wikitty vide
- String id = getArgument("id", "");
+ String id = this.wikittyId;
proxy.delete(id);
// apres un effacement on reprend l'edition d'un tout nouveau
// wikitty
wikitty = new WikittyImpl();
+
} else {
+
List<String> argsString = new ArrayList<String>();
String args = ActionContext.getContext().getParameters()
.get(ARGS_KEY).toString();
@@ -81,26 +94,20 @@
// recherche du Wikitty a editer ou creation d'un nouveau si
// necessaire
Criteria criteria = searchCriteria(argsString);
+
if (criteria == null) {
wikitty = new WikittyImpl();
- ActionContext.getContext().getParameters()
- .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
-
} else {
wikitty = proxy.findByCriteria(criteria);
}
// si on ne retrouve pas le wikitty, mais qu'il vient d'etre cree
// pour l'edition, on recree un wikitty avec ce meme identifiant
- if (wikitty == null && "0.0".equals(getArgument("version", ""))) {
+ if (wikitty == null && "0.0".equals(version)) {
// c'est un nouvel objet, il n'a pas encore ete sauve, mais on
// veut le faire
- String id = getArgument("id", "");
- ;
+ String id = this.wikittyId;
wikitty = new WikittyImpl(id);
- ActionContext.getContext().getParameters()
- .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
-
}
if (wikitty == null) {
@@ -108,21 +115,20 @@
// cela signifie qu'on ne retrouve pas le wikitty a editer
// on creer un nouveau wikitty vide que l'on editera
wikitty = new WikittyImpl();
- ActionContext.getContext().getParameters()
- .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
-
} else {
// on met a jour le wikitty avec les infos trouvees dans les
// arguments
// ajout des extensions deja existante si necessaire
String extensions = getArgument("extensions", null);
+
if (extensions != null) {
String[] exts = StringUtil.split(extensions
.replace("[", "").replace("]", ""), ",");
for (String extName : exts) {
+
WikittyExtension ext = proxy
- .restoreExtensionLastVersion(extName);
+ .restoreExtensionLastVersion(extName.trim());
if (ext != null) {
wikitty.addExtension(ext);
}
@@ -139,9 +145,8 @@
}
}
- Map<String, Object> args1 = new HashMap<String, Object>();
- args1.putAll(getFieldArguments());
- for (Map.Entry<String, Object> field : args1.entrySet()) {
+ for (Map.Entry<String, Object> field : wikittyFieldMap
+ .entrySet()) {
String key = field.getKey();
Object value = null;
if (key.contains(WikittyUtil.FQ_FIELD_NAME_SEPARATOR)) {
@@ -158,6 +163,7 @@
FieldType extFieldType = wikitty.getExtension(ext)
.getFieldType(fieldName);
+ // allow collection string to be parse and save
if (extFieldType.isCollection()
&& extFieldType.getType() == TYPE.STRING
&& value != null) {
@@ -181,6 +187,7 @@
} else {
wikitty.setField(ext, fieldName, value);
}
+
// si w est un WikittyPubData on essai de mettre a
// jour si besoin les champs mimetype et name
if (ext.equals(WikittyPubData.EXT_WIKITTYPUBDATA)
@@ -188,43 +195,38 @@
.equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) {
if (null == WikittyPubDataHelper
.getName(wikitty)) {
- WikittyPubDataHelper.setName(
- wikitty,
- String.valueOf(args1.get(key
- + "-filename")));
+ WikittyPubDataHelper.setName(wikitty,
+ String.valueOf(wikittyFieldMap
+ .get(key + "-filename")));
}
if (null == WikittyPubDataHelper
.getMimeType(wikitty)) {
- WikittyPubDataHelper.setMimeType(
- wikitty,
- String.valueOf(args1.get(key
- + "-contentType")));
+ WikittyPubDataHelper
+ .setMimeType(
+ wikitty,
+ String.valueOf(wikittyFieldMap
+ .get(key
+ + "-contentType")));
}
}
}
}
}
- if (param.containsKey("store")) {
+ if (isStore) {
// on nous demande la sauvegarde
proxy.store(wikitty);
}
}
}
- }
- public File getUpload() {
- return upload;
}
+
public void setFile(File upload) {
- this.upload = upload;
+ this.uploadedFile = upload;
}
- public void setUpload(File upload) {
- this.upload = upload;
- }
-
public Wikitty getWikitty() {
return wikitty;
}
@@ -233,35 +235,14 @@
this.wikitty = wikitty;
}
- public List<String> getWikittyExtentionAviable() {
- List<String> result = new ArrayList<String>();
- result.add("ponay");
- result.add("machin");
-
- return result;
- }
-
- public String getNewExtension() {
- return newExtension;
- }
-
- /*
- * <s:combobox list="wikittyExtentionAviable" label="test"
- * name="newExtension" />
- */
- public void setNewExtension(String newExtension) {
- this.newExtension = newExtension;
- }
-
public String getPostUrl() {
return this.getArgument(ARGS_KEY, "") + ".action";
}
- protected Map<String, Object> getFieldArguments() {
+ protected Map<String, Object> formatArgs(Map<String, Object> args) {
wikittyFieldMap = new HashMap<String, Object>();
- for (Entry<String, Object> en : ActionContext.getContext()
- .getParameters().entrySet()) {
+ for (Entry<String, Object> en : args.entrySet()) {
if (en.getKey().startsWith("Wikitty")) {
@@ -275,11 +256,11 @@
value = String.valueOf(en.getValue());
}
- if ("BINARY".equals(value) && upload != null) {
+ if ("BINARY".equals(value) && uploadedFile != null) {
try {
wikittyFieldMap.put(en.getKey(),
- FileUtil.fileToByte(upload));
- upload.deleteOnExit();
+ FileUtil.fileToByte(uploadedFile));
+ uploadedFile.deleteOnExit();
} catch (IOException e) {
// TODO mfortun-2011-05-24 really handle exception
e.printStackTrace();
@@ -293,4 +274,10 @@
}
return wikittyFieldMap;
}
+
+ protected void putIdArgs(String id) {
+ ActionContext.getContext().getParameters()
+ .put(ARGS_KEY, Element.ELT_ID + ":" + id);
+ }
+
}
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-24 09:43:17 UTC (rev 915)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-24 15:01:48 UTC (rev 916)
@@ -98,8 +98,8 @@
case BINARY:
%>
- <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="BINARY" />
- <input type="file" name="File" label ="File"/>
+ <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="BINARY" />
+ <input type="file" name="File" label ="File"/>
<%
1
0
r915 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action webapp/WEB-INF/jsp
by mfortun@users.nuiton.org 24 May '11
by mfortun@users.nuiton.org 24 May '11
24 May '11
Author: mfortun
Date: 2011-05-24 11:43:17 +0200 (Tue, 24 May 2011)
New Revision: 915
Url: http://nuiton.org/repositories/revision/wikitty/915
Log:
* upload rework
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 00:12:31 UTC (rev 914)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 09:43:17 UTC (rev 915)
@@ -1,6 +1,7 @@
package org.nuiton.wikitty.publication.action;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -8,6 +9,7 @@
import java.util.Map;
import java.util.Map.Entry;
+import org.nuiton.util.FileUtil;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyUtil;
@@ -21,11 +23,9 @@
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.operators.Element;
-
-
import com.opensymphony.xwork2.ActionContext;
-public class PublicationActionEdit extends PublicationBaseAction{
+public class PublicationActionEdit extends PublicationBaseAction {
/**
*
@@ -33,44 +33,34 @@
private static final long serialVersionUID = -590087371230933701L;
protected String newExtension;
-
+
protected Wikitty wikitty;
private HashMap<String, Object> wikittyFieldMap;
-
-
- protected File upload;//The actual file
-
-
+ protected File upload;// The actual file
+
static public PublicationActionEdit getAction() {
return (PublicationActionEdit) ActionContext.getContext().get(
CONTEXT_ACTION_KEY);
}
-
+
@Override
public String execute() throws Exception {
- System.out.println(upload);
- doAction();
-
-
-
+ doAction();
+
return SUCCESS;
}
-
-
-
-
- public void doAction(){
-
+
+ public void doAction() {
+
WikittyProxy proxy = getWikittyPublicationProxy();
Object context;
-
+
Map<String, Object> param = ActionContext.getContext().getParameters();
-
-
+
if (param.containsKey("delete")) {
// on nous demande supprimer le wikitty, on l'efface et on
// affichera un wikitty vide
@@ -81,8 +71,8 @@
wikitty = new WikittyImpl();
} else {
List<String> argsString = new ArrayList<String>();
- String args = ActionContext.getContext().getParameters().get(ARGS_KEY)
- .toString();
+ String args = ActionContext.getContext().getParameters()
+ .get(ARGS_KEY).toString();
String[] argsTab = StringUtil.split(args, SEPARATOR);
for (String arg : argsTab) {
@@ -94,7 +84,7 @@
if (criteria == null) {
wikitty = new WikittyImpl();
ActionContext.getContext().getParameters()
- .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
+ .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
} else {
wikitty = proxy.findByCriteria(criteria);
@@ -102,14 +92,14 @@
// si on ne retrouve pas le wikitty, mais qu'il vient d'etre cree
// pour l'edition, on recree un wikitty avec ce meme identifiant
- if (wikitty == null
- && "0.0".equals( getArgument("version", ""))) {
+ if (wikitty == null && "0.0".equals(getArgument("version", ""))) {
// c'est un nouvel objet, il n'a pas encore ete sauve, mais on
// veut le faire
- String id = getArgument("id", "");;
+ String id = getArgument("id", "");
+ ;
wikitty = new WikittyImpl(id);
ActionContext.getContext().getParameters()
- .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
+ .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
}
@@ -119,7 +109,7 @@
// on creer un nouveau wikitty vide que l'on editera
wikitty = new WikittyImpl();
ActionContext.getContext().getParameters()
- .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
+ .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
} else {
// on met a jour le wikitty avec les infos trouvees dans les
@@ -160,8 +150,8 @@
.extractFieldName(key);
if (wikitty.hasField(ext, fieldName)) {
- if (!"true".equals(getArgument("isNull-"
- + key, "false"))) {
+ if (!"true".equals(getArgument("isNull-" + key,
+ "false"))) {
value = field.getValue();
}
@@ -196,13 +186,15 @@
if (ext.equals(WikittyPubData.EXT_WIKITTYPUBDATA)
&& fieldName
.equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) {
- if (null == WikittyPubDataHelper.getName(wikitty)) {
+ if (null == WikittyPubDataHelper
+ .getName(wikitty)) {
WikittyPubDataHelper.setName(
wikitty,
String.valueOf(args1.get(key
+ "-filename")));
}
- if (null == WikittyPubDataHelper.getMimeType(wikitty)) {
+ if (null == WikittyPubDataHelper
+ .getMimeType(wikitty)) {
WikittyPubDataHelper.setMimeType(
wikitty,
String.valueOf(args1.get(key
@@ -220,23 +212,18 @@
}
}
}
-
-
-
-
- public File getUpload() {
+
+ public File getUpload() {
return upload;
- }
-
- public void setFile(File upload){
- this.upload = upload;
- }
-
- public void setUpload(File upload) {
+ }
+
+ public void setFile(File upload) {
this.upload = upload;
- }
+ }
-
+ public void setUpload(File upload) {
+ this.upload = upload;
+ }
public Wikitty getWikitty() {
return wikitty;
@@ -245,13 +232,12 @@
public void setWikitty(Wikitty wikitty) {
this.wikitty = wikitty;
}
-
-
- public List<String> getWikittyExtentionAviable(){
+
+ public List<String> getWikittyExtentionAviable() {
List<String> result = new ArrayList<String>();
result.add("ponay");
result.add("machin");
-
+
return result;
}
@@ -260,42 +246,51 @@
}
/*
- * <s:combobox list="wikittyExtentionAviable" label="test" name="newExtension" />
+ * <s:combobox list="wikittyExtentionAviable" label="test"
+ * name="newExtension" />
*/
public void setNewExtension(String newExtension) {
this.newExtension = newExtension;
}
-
-
- public String getPostUrl(){
-
+
+ public String getPostUrl() {
+
return this.getArgument(ARGS_KEY, "") + ".action";
}
-
-
+
protected Map<String, Object> getFieldArguments() {
- wikittyFieldMap = new HashMap<String, Object>();
- for (Entry<String, Object> en : ActionContext.getContext()
- .getParameters().entrySet()) {
+ wikittyFieldMap = new HashMap<String, Object>();
+ for (Entry<String, Object> en : ActionContext.getContext()
+ .getParameters().entrySet()) {
- if (en.getKey().startsWith("Wikitty")) {
+ if (en.getKey().startsWith("Wikitty")) {
- String value = "";
+ String value = "";
- if (en.getValue() instanceof String[]) {
- for (String occu : (String[]) en.getValue()) {
- value += occu;
- }
- } else {
- value = String.valueOf(en.getValue());
- }
+ if (en.getValue() instanceof String[]) {
+ for (String occu : (String[]) en.getValue()) {
+ value += occu;
+ }
+ } else {
+ value = String.valueOf(en.getValue());
+ }
- wikittyFieldMap.put(en.getKey(), value);
- }
+ if ("BINARY".equals(value) && upload != null) {
+ try {
+ wikittyFieldMap.put(en.getKey(),
+ FileUtil.fileToByte(upload));
+ upload.deleteOnExit();
+ } catch (IOException e) {
+ // TODO mfortun-2011-05-24 really handle exception
+ e.printStackTrace();
+ }
+ } else {
+ wikittyFieldMap.put(en.getKey(), value);
+ }
- }
- return wikittyFieldMap;
-}
-}
+ }
-
+ }
+ return wikittyFieldMap;
+ }
+}
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-24 00:12:31 UTC (rev 914)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-24 09:43:17 UTC (rev 915)
@@ -48,9 +48,8 @@
<h1>Edit <%=wikitty.getId()%></h1>
<pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre>
-<s:set var="urlPost"><%=action.getPostUrl()%></s:set>
-<s:form action="%{#urlPost}" method="POST" enctype="multipart/form-data">
-<!-- <form class="edit" action="" method="post" enctype="multipart/form-data" > -->
+
+ <form class="edit" action="<%=action.getPostUrl()%>" method="post" enctype="multipart/form-data" >
<input type="hidden" name="id" value="<%=wikitty.getId()%>" />
<input type="hidden" name="version" value="<%=wikitty.getVersion()%>" />
<input type="hidden" name="extensions" value="<%=wikitty.getExtensionNames()%>"/>
@@ -99,9 +98,9 @@
case BINARY:
%>
- <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="file" />
+ <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="BINARY" />
<input type="file" name="File" label ="File"/>
- <!-- <s:file name="file" label="File"/> -->
+
<%
break;
@@ -148,5 +147,5 @@
%>
<input type="submit" name="store" value="Store" />
<input type="submit" name="delete" value="Delete" />
- </s:form>
-<!-- </form> -->
\ No newline at end of file
+
+ </form>
\ No newline at end of file
1
0
r914 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities
by bpoussin@users.nuiton.org 24 May '11
by bpoussin@users.nuiton.org 24 May '11
24 May '11
Author: bpoussin
Date: 2011-05-24 02:12:31 +0200 (Tue, 24 May 2011)
New Revision: 914
Url: http://nuiton.org/repositories/revision/wikitty/914
Log:
- hasField never throw exception but return false
- add getFieldValue method on Wikitty to return unmodifable Map of field value
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2011-05-23 16:16:03 UTC (rev 913)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2011-05-24 00:12:31 UTC (rev 914)
@@ -30,6 +30,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.Map;
import java.util.Set;
public interface Wikitty extends Cloneable, Serializable {
@@ -206,6 +207,12 @@
Set<String> fieldNames();
/**
+ * All field value in unmodifiable map
+ * @return
+ */
+ Map<String, Object> getFieldValue();
+
+ /**
* Return all fieldName available in all extension
* @return
*
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2011-05-23 16:16:03 UTC (rev 913)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2011-05-24 00:12:31 UTC (rev 914)
@@ -29,6 +29,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
@@ -350,6 +351,11 @@
}
@Override
+ public Map<String, Object> getFieldValue() {
+ return target.getFieldValue();
+ }
+
+ @Override
public Set<String> getAllFieldNames() {
return target.getAllFieldNames();
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2011-05-23 16:16:03 UTC (rev 913)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2011-05-24 00:12:31 UTC (rev 914)
@@ -32,6 +32,7 @@
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@@ -367,10 +368,15 @@
@Override
public boolean hasField(String fqfieldName) {
- String extName = WikittyExtension.extractExtensionName(fqfieldName);
- String fieldName = WikittyExtension.extractFieldName(fqfieldName);
+ boolean result = false;
+ try {
+ String extName = WikittyExtension.extractExtensionName(fqfieldName);
+ String fieldName = WikittyExtension.extractFieldName(fqfieldName);
- boolean result = hasField(extName, fieldName);
+ result = hasField(extName, fieldName);
+ } catch (Exception eee) {
+ log.trace("Invalide field name is never field", eee);
+ }
return result;
}
@@ -861,6 +867,11 @@
}
@Override
+ public Map<String, Object> getFieldValue() {
+ return Collections.unmodifiableMap(fieldValue);
+ }
+
+ @Override
public Set<String> getAllFieldNames() {
Set<String> result = new HashSet<String>();
for (WikittyExtension ext : getExtensions()) {
1
0
r913 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action resources webapp/WEB-INF/jsp
by mfortun@users.nuiton.org 23 May '11
by mfortun@users.nuiton.org 23 May '11
23 May '11
Author: mfortun
Date: 2011-05-23 18:16:03 +0200 (Mon, 23 May 2011)
New Revision: 913
Url: http://nuiton.org/repositories/revision/wikitty/913
Log:
* file are uploaded but not store inside wikittyPubData
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
trunk/wikitty-publication/src/main/resources/struts.xml
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-23 09:31:33 UTC (rev 912)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-23 16:16:03 UTC (rev 913)
@@ -1,5 +1,6 @@
package org.nuiton.wikitty.publication.action;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -38,7 +39,10 @@
private HashMap<String, Object> wikittyFieldMap;
+ protected File upload;//The actual file
+
+
static public PublicationActionEdit getAction() {
return (PublicationActionEdit) ActionContext.getContext().get(
CONTEXT_ACTION_KEY);
@@ -46,7 +50,8 @@
@Override
public String execute() throws Exception {
-
+ System.out.println(upload);
+
doAction();
@@ -218,6 +223,19 @@
+
+ public File getUpload() {
+ return upload;
+ }
+
+ public void setFile(File upload){
+ this.upload = upload;
+ }
+
+ public void setUpload(File upload) {
+ this.upload = upload;
+ }
+
public Wikitty getWikitty() {
Modified: trunk/wikitty-publication/src/main/resources/struts.xml
===================================================================
--- trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-23 09:31:33 UTC (rev 912)
+++ trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-23 16:16:03 UTC (rev 913)
@@ -15,7 +15,7 @@
<interceptors>
<interceptor-stack name="publicAreaStack">
<interceptor-ref name="defaultStack">
-
+ <param name="fileUpload.maximumSize">104857600</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-23 09:31:33 UTC (rev 912)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-23 16:16:03 UTC (rev 913)
@@ -36,30 +36,21 @@
<%@page import="org.nuiton.wikitty.WikittyService"%>
<%@page import="org.nuiton.wikitty.entities.WikittyExtension"%>
<%@page import="org.nuiton.wikitty.entities.Wikitty"%>
+<%@ taglib prefix="s" uri="/struts-tags" %>
-
<%
PublicationActionEdit action = PublicationActionEdit.getAction();
Wikitty wikitty = action.getWikitty();
-
-/*
-WikittyPublicationContext context = (WikittyPublicationContext)
- request.getAttribute(ActionEval.CONTEXT_VAR);
-Wikitty wikitty = (Wikitty)request.getAttribute(ActionEval.WIKITTY_VAR);
-ActionEdit action = context.getAction(ActionEdit.class);
-String url = action.makeUrl(context, wikitty);
-
-*/
-
%>
<h1>Edit <%=wikitty.getId()%></h1>
<pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre>
-
-<form class="edit" action="<%=action.getPostUrl()%>" method="post" >
+<s:set var="urlPost"><%=action.getPostUrl()%></s:set>
+<s:form action="%{#urlPost}" method="POST" enctype="multipart/form-data">
+<!-- <form class="edit" action="" method="post" enctype="multipart/form-data" > -->
<input type="hidden" name="id" value="<%=wikitty.getId()%>" />
<input type="hidden" name="version" value="<%=wikitty.getVersion()%>" />
<input type="hidden" name="extensions" value="<%=wikitty.getExtensionNames()%>"/>
@@ -107,7 +98,11 @@
switch(fieldType.getType()) {
case BINARY:
%>
- <input type="file" name="<%=extName%>.<%=fieldName%>"/>
+
+ <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="file" />
+ <input type="file" name="File" label ="File"/>
+ <!-- <s:file name="file" label="File"/> -->
+
<%
break;
case BOOLEAN:
@@ -153,4 +148,5 @@
%>
<input type="submit" name="store" value="Store" />
<input type="submit" name="delete" value="Delete" />
-</form>
+ </s:form>
+<!-- </form> -->
\ No newline at end of file
1
0
Author: mfortun
Date: 2011-05-23 11:31:33 +0200 (Mon, 23 May 2011)
New Revision: 912
Url: http://nuiton.org/repositories/revision/wikitty/912
Log:
* correct default login error redirect to ensure that redirect on the same action with all parameters preserved
Modified:
trunk/wikitty-publication/src/main/webapp/login.jsp
Modified: trunk/wikitty-publication/src/main/webapp/login.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/login.jsp 2011-05-21 11:36:45 UTC (rev 911)
+++ trunk/wikitty-publication/src/main/webapp/login.jsp 2011-05-23 09:31:33 UTC (rev 912)
@@ -17,7 +17,8 @@
//TODO mfortun-2011-05-13 find how to have default value configured by struts
if (errorValue == null || errorValue == "") {
- errorValue = PublicationActionLogin.DEFAULT_ERROR;
+ errorValue = "login_input.action" + "?success="
+ + request.getParameter("success");
}
%>
1
0