Author: bpoussin Date: 2013-09-24 19:54:39 +0200 (Tue, 24 Sep 2013) New Revision: 360 Url: http://chorem.org/projects/bow/repository/revisions/360 Log: fixes #497: migrate to wikitty 3.10 Added: trunk/bow-ui/src/main/java/org/chorem/bow/BowMigrationPreference.java Removed: trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration06To11.java trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration11To12.java trunk/bow-ui/src/main/java/org/chorem/bow/UserMigration.java Modified: trunk/bow-ui/pom.xml trunk/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java trunk/bow-ui/src/main/java/org/chorem/bow/BowConfig.java trunk/bow-ui/src/main/java/org/chorem/bow/BowProxy.java trunk/bow-ui/src/main/java/org/chorem/bow/BowSearchResult.java trunk/bow-ui/src/main/java/org/chorem/bow/BowSession.java trunk/bow-ui/src/main/java/org/chorem/bow/BowUtils.java trunk/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/MigrateDataAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchBaseAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ExportBookmarksAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java trunk/bow-ui/src/main/resources/bow.properties trunk/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties trunk/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties trunk/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp trunk/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp trunk/bow-ui/src/main/webapp/WEB-INF/jsp/permanentXml.jsp trunk/bow-ui/src/main/webapp/WEB-INF/jsp/temporaryXml.jsp trunk/bow-ui/src/main/xmi/bow-model.zargo Modified: trunk/bow-ui/pom.xml =================================================================== --- trunk/bow-ui/pom.xml 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/pom.xml 2013-09-24 17:54:39 UTC (rev 360) @@ -76,8 +76,8 @@ </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> </dependency> <dependency> @@ -171,15 +171,21 @@ </dependency> <dependency> - <groupId>postgresql</groupId> + <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> + <artifactId>httpcore</artifactId> <version>4.3</version> </dependency> + + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>4.3</version> + </dependency> </dependencies> Modified: trunk/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,15 +23,16 @@ */ package org.chorem.bow; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; import java.util.Date; import java.util.Set; +import org.nuiton.wikitty.entities.Element; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; public class BookmarkUtils { @@ -47,21 +48,22 @@ * @param userId * @return */ - public static Search addEqUser(Search search, String userId) { - Search result = search.or(); - result = result.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId); - result = result.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_READER, userId); - result = result.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_WRITER, userId); - result = result.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_ADMIN, userId); + public static WikittyQueryMaker addEqUser(WikittyQueryMaker search, String userId) { + search.or(); + search.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId); + search.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_READER, userId); + search.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_WRITER, userId); + search.eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_ADMIN, userId); + search.close(); return search; } - public static Criteria getBookmarkListCriteriaByUser(BowUser user, + public static WikittyQuery getBookmarkListCriteriaByUser(BowUser user, String tagLine, String fullTextLine, String order, int first) { - Search search = Search.query(); + WikittyQueryMaker search = new WikittyQueryMaker().and(); addEqUser(search, user.getWikittyId()); if (StringUtils.isNotBlank(fullTextLine)) { @@ -70,38 +72,38 @@ if (StringUtils.isNotBlank(tagLine)) { Set<String> tags = BowUtils.getWords(tagLine); - search.eq(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, tags); + search.containsAll(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, tags); } - Criteria criteria = search.criteria(); - criteria.addFacetField(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); + WikittyQuery criteria = search.end(); + criteria.addFacetField(BowBookmark.ELEMENT_FIELD_WIKITTYLABEL_LABELS); // on fixe le nombre de tag max souhaite par l'utilisateur criteria.setFacetLimit(user.getTags()); - criteria.setFirstIndex(first); + criteria.setOffset(first); // on fixe le nombre max d'element a ce qu'a defini l'utilisateur - criteria.setEndIndex(first + user.getBookmarks() - 1); + criteria.setLimit(user.getBookmarks()); boolean sortOrderAscending = StringUtils.startsWith(order, "asc"); - String sortOrderField = null; + Element sortOrderField = null; if (StringUtils.equals(order, "ascName")) { - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_DESCRIPTION; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_DESCRIPTION; } else if (StringUtils.equals(order, "ascDate")) { - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_CREATIONDATE; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_CREATIONDATE; } else if (StringUtils.equals(order, "ascClick")) { - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_CLICK; } else if (StringUtils.equals(order, "descName")) { - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_DESCRIPTION; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_DESCRIPTION; } else if (StringUtils.equals(order, "descDate")) { - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_CREATIONDATE; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_CREATIONDATE; } else if (StringUtils.equals(order, "descClick")) { - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_CLICK; } if (sortOrderField == null) { // default sort order // TODO poussin 20110815 rendre configurable par l'utilisateur l'ordre par defaut qu'il prefere - sortOrderField = BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK; + sortOrderField = BowBookmark.ELEMENT_FIELD_BOWBOOKMARK_CLICK; sortOrderAscending = false; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/BowConfig.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowConfig.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowConfig.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,7 +23,6 @@ */ package org.chorem.bow; -import org.apache.commons.lang.UnhandledException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; @@ -69,7 +68,7 @@ // Parse args config.parse(args); } catch (Exception e) { - throw new UnhandledException(e); + throw new RuntimeException(e); } } } Deleted: trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration06To11.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration06To11.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration06To11.java 2013-09-24 17:54:39 UTC (rev 360) @@ -1,122 +0,0 @@ -/* - * #%L - * BOW UI - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2010 - 2011 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package org.chorem.bow; - - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.entities.WikittyAuthorisationHelper; -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.services.WikittyExtensionMigration; -import org.nuiton.wikitty.services.WikittyExtensionMigrationRename; - -import java.util.List; - -/** - * Migre les données depuis la version 0.6 vers la version 1.1. - * On suppose que les données sont convenablement indexee. - * <p/> - * <li> ajout du champs BowBookmark.authentificationInfo (rien a faire pour la migration) - * <li> suppression de BowBookmark.bowUser - * <li> BowBookmark depend de WikittyAuthorisation - * <p/> - * la valeur de BowBookmark.bowUser est maintenant stockee dans - * WikittyAuthorisation.owner et WikittyAuthorisation.reader - * pour que par defaut seul le owner est les droits de lecture sur l'item - * - * @author poussin - * @version $Revision$ - * <p/> - * Last update: $Date$ - * by : $Author$ - */ -public class BowMigration06To11 extends WikittyExtensionMigrationRename { - - /** to use log facility, just put in your code: log.info(\"...\"); */ - private static final Log log = LogFactory.getLog(BowMigration06To11.class); - - /** nombre d'objet a charger en 1 fois */ - public static final int MAX = 1000; - - /** Point d'entree de la migration. */ - @Override - public Wikitty migrate(WikittyService service, Wikitty wikitty, - WikittyExtension oldExt, WikittyExtension newExt) { - // on laisse l'implantation par defaut migrer tout ce qu'il faut - // nouvelle dependance, ... - Wikitty result = super.migrate(service, wikitty, oldExt, newExt); - - // On met juste a jour les données avec le champs supprimer bowUser - String bookId = wikitty.getId(); - String userId = (String) wikitty.getFqField( - BowBookmark.EXT_BOWBOOKMARK + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "bowUser"); - if (userId == null) { - log.error(String.format("BowBookmark without bowUser info: %s", bookId)); - } else { - WikittyAuthorisationHelper.setOwner(result, userId); - WikittyAuthorisationHelper.addReader(result, userId); - } - - return result; - } - - public static void migrate(WikittyProxy proxy) { - log.info("Migration 0.5 to 0.6 started"); - // on enregistre la classe qui fera la migration des données - WikittyExtensionMigration.migrationRegistry.put( - BowBookmark.EXT_BOWBOOKMARK, new BowMigration06To11()); - - // une simple lecture puis ecrire fera automatiquement la migration - // grace a la classe enregistree pour. - Criteria criteria = - Search.query().exteq(BowBookmark.EXT_BOWBOOKMARK).criteria(); - int i = 0; - int count = 0; - PagedResult<Wikitty> wikitties; - do { - criteria.setFirstIndex(i); - criteria.setEndIndex(i += MAX); - wikitties = proxy.findAllByCriteria(criteria); - List<Wikitty> books = wikitties.getAll(); - proxy.storeWikitty(books); - count += books.size(); - } while (wikitties.size() >= MAX); - log.info(String.format("Migration of %s BowBookmark done", count)); - } - - // only here to simplify test and debug of migration, this permit to migrate - // datas in developpement environnement directly without launch bow web app - public static void main(String... args) { - BowProxy proxy = BowProxy.getInstance(null); - migrate(proxy); - } -} Deleted: trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration11To12.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration11To12.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowMigration11To12.java 2013-09-24 17:54:39 UTC (rev 360) @@ -1,202 +0,0 @@ -/* - * #%L - * BOW UI - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2010 - 2011 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package org.chorem.bow; - - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.entities.WikittyAuthorisationHelper; -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.services.WikittyExtensionMigration; -import org.nuiton.wikitty.services.WikittyExtensionMigrationRename; - -import java.util.List; -import org.apache.commons.lang3.StringUtils; - -/** - * Migre les données depuis la version 0.6 vers la version 1.1. - * On suppose que les données sont convenablement indexee. - * <p/> - * <li> ajout du champs BowBookmark.authentificationInfo (rien a faire pour la migration) - * <li> suppression de BowBookmark.bowUser - * <li> BowBookmark depend de WikittyAuthorisation - * <p/> - * la valeur de BowBookmark.bowUser est maintenant stockee dans - * WikittyAuthorisation.owner et WikittyAuthorisation.reader - * pour que par defaut seul le owner est les droits de lecture sur l'item - * - * @author poussin - * @version $Revision$ - * <p/> - * Last update: $Date$ - * by : $Author$ - */ -public class BowMigration11To12 extends WikittyExtensionMigrationRename { - - /** to use log facility, just put in your code: log.info(\"...\"); */ - private static final Log log = LogFactory.getLog(BowMigration11To12.class); - - /** nombre d'objet a charger en 1 fois */ - public static final int MAX = 1000; - - /** Point d'entree de la migration. */ - @Override - public Wikitty migrate(WikittyService service, Wikitty wikitty, - WikittyExtension oldExt, WikittyExtension newExt) { - - // On met juste a jour les données avec le champs supprimer bowUser - String userId = wikitty.getId(); - - if (userId != null) { - String prefixSeparator = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "prefixSeparator"); - - String defaultAction = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "defaultAction"); - String defaultPrefix = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "defaultPrefix"); - - String tagSearchPrefix = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "tagSearchPrefix"); - String fullTextSearchPrefix = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "fullTextSearchPrefix"); - String webSearchPrefix = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "webSearchPrefix"); - String aliasPrefix = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "aliasPrefix"); - - String searchEngineUrlResults = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "searchEngineUrlResults"); - String searchEngineUrlSuggestions = (String) wikitty.getFqField( - BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR - + "searchEngineUrlSuggestions"); - - BowSearchPrefixImpl pWeb = new BowSearchPrefixImpl(); - pWeb.setBowUser(userId); - pWeb.setPrefix(webSearchPrefix + prefixSeparator); - pWeb.setSearch(searchEngineUrlResults); - pWeb.setSuggestion(searchEngineUrlSuggestions); - - BowSearchPrefixImpl pTag = new BowSearchPrefixImpl(); - pTag.setBowUser(userId); - pTag.setPrefix(tagSearchPrefix + prefixSeparator); - pTag.setSearch("bowTagSearch"); - pTag.setSuggestion("bowTagSuggest"); - - BowSearchPrefixImpl pFullText = new BowSearchPrefixImpl(); - pFullText.setBowUser(userId); - pFullText.setPrefix(fullTextSearchPrefix + prefixSeparator); - pFullText.setSearch("bowFullTextSearch"); - pFullText.setSuggestion("bowFullTextSuggest"); - - BowSearchPrefixImpl pAlias = new BowSearchPrefixImpl(); - pAlias.setBowUser(userId); - pAlias.setPrefix(aliasPrefix + prefixSeparator); - pAlias.setSearch("bowAliasSearch"); - pAlias.setSuggestion("bowAliasSuggest"); - - BowSearchPrefixImpl pDefault = new BowSearchPrefixImpl(); - if (StringUtils.equals(defaultAction, webSearchPrefix)) { - pDefault.getWikitty().replaceWith(pWeb.getWikitty(), true); - } else if (StringUtils.equals(defaultAction, tagSearchPrefix)) { - pDefault.getWikitty().replaceWith(pTag.getWikitty(), true); - } else if (StringUtils.equals(defaultAction, fullTextSearchPrefix)) { - pDefault.getWikitty().replaceWith(pFullText.getWikitty(), true); - } else if (StringUtils.equals(defaultAction, aliasPrefix)) { - pDefault.getWikitty().replaceWith(pAlias.getWikitty(), true); - } - pDefault.setPrefix(""); - - BowSearchPrefixImpl pDefaultPrefix = new BowSearchPrefixImpl(); - if (StringUtils.equals(defaultAction, webSearchPrefix)) { - pDefaultPrefix.getWikitty().replaceWith(pWeb.getWikitty(), true); - } else if (StringUtils.equals(defaultAction, tagSearchPrefix)) { - pDefaultPrefix.getWikitty().replaceWith(pTag.getWikitty(), true); - } else if (StringUtils.equals(defaultAction, fullTextSearchPrefix)) { - pDefaultPrefix.getWikitty().replaceWith(pFullText.getWikitty(), true); - } else if (StringUtils.equals(defaultAction, aliasPrefix)) { - pDefaultPrefix.getWikitty().replaceWith(pAlias.getWikitty(), true); - } - pDefaultPrefix.setPrefix(prefixSeparator); - - - WikittyProxy proxy = new WikittyProxy(service); - proxy.store(pWeb, pTag, pFullText, pAlias, pDefault, pDefaultPrefix); - } - - // on laisse l'implantation par defaut migrer tout ce qu'il faut - // nouvelle dependance, ... - Wikitty result = super.migrate(service, wikitty, oldExt, newExt); - - return result; - } - - public static void migrate(WikittyProxy proxy) { - log.info("Migration 1.1 to 1.2 started"); - // on enregistre la classe qui fera la migration des données - WikittyExtensionMigration.migrationRegistry.put( - BowPreference.EXT_BOWPREFERENCE, new BowMigration11To12()); - - // une simple lecture puis ecrire fera automatiquement la migration - // grace a la classe enregistree pour. - Criteria criteria = - Search.query().exteq(BowPreference.EXT_BOWPREFERENCE).criteria(); - int i = 0; - int count = 0; - PagedResult<Wikitty> wikitties; - do { - criteria.setFirstIndex(i); - criteria.setEndIndex(i += MAX); - wikitties = proxy.findAllByCriteria(criteria); - List<Wikitty> prefs = wikitties.getAll(); - proxy.storeWikitty(prefs); - count += prefs.size(); - } while (wikitties.size() >= MAX); - log.info(String.format("Migration of %s BowBookmark done", count)); - WikittyExtensionMigration.migrationRegistry.remove( - BowPreference.EXT_BOWPREFERENCE); - } - - // only here to simplify test and debug of migration, this permit to migrate - // datas in developpement environnement directly without launch bow web app - public static void main(String... args) { - BowProxy proxy = BowProxy.getInstance(null); - migrate(proxy); - } -} Added: trunk/bow-ui/src/main/java/org/chorem/bow/BowMigrationPreference.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowMigrationPreference.java (rev 0) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowMigrationPreference.java 2013-09-24 17:54:39 UTC (rev 360) @@ -0,0 +1,216 @@ +/* + * #%L + * BOW UI + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2010 - 2011 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.bow; + + +import java.util.ArrayList; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.wikitty.WikittyService; +import org.nuiton.wikitty.WikittyUtil; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.entities.WikittyExtension; +import org.nuiton.wikitty.services.WikittyExtensionMigrationRename; + +import org.apache.commons.lang3.StringUtils; +import org.nuiton.util.VersionUtil; +import org.nuiton.wikitty.services.WikittyServiceEnhanced; + +/** + * Migre les données depuis la version 0.6 vers la version 1.1. + * On suppose que les données sont convenablement indexee. + * <p/> + * <li> ajout du champs BowBookmark.authentificationInfo (rien a faire pour la migration) + * <li> suppression de BowBookmark.bowUser + * <li> BowBookmark depend de WikittyAuthorisation + * <p/> + * la valeur de BowBookmark.bowUser est maintenant stockee dans + * WikittyAuthorisation.owner et WikittyAuthorisation.reader + * pour que par defaut seul le owner est les droits de lecture sur l'item + * + * @author poussin + * @version $Revision$ + * <p/> + * Last update: $Date$ + * by : $Author$ + */ +public class BowMigrationPreference extends WikittyExtensionMigrationRename { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + private static final Log log = LogFactory.getLog(BowMigrationPreference.class); + + /** + * Remplacement des prefix predefini dans BowPreference par une extension + * BowPrefix qui permet d'en creer autant qu'on en souhaite + * + * @param service + * @param oldWikitty + * @param newWikitty + */ + protected void migrateBowPrefix(WikittyService service, Wikitty oldWikitty, Wikitty newWikitty) { + // On met juste a jour les données avec le champs supprimer bowUser + String userId = oldWikitty.getWikittyId(); + + if (userId != null) { + String prefixSeparator = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "prefixSeparator"); + + String defaultAction = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "defaultAction"); + String defaultPrefix = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "defaultPrefix"); + + String tagSearchPrefix = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "tagSearchPrefix"); + String fullTextSearchPrefix = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "fullTextSearchPrefix"); + String webSearchPrefix = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "webSearchPrefix"); + String aliasPrefix = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "aliasPrefix"); + + String searchEngineUrlResults = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "searchEngineUrlResults"); + String searchEngineUrlSuggestions = (String) oldWikitty.getFqField( + BowPreference.EXT_BOWPREFERENCE + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + + "searchEngineUrlSuggestions"); + + BowSearchPrefixImpl pWeb = new BowSearchPrefixImpl(); + pWeb.setBowUser(userId); + pWeb.setPrefix(webSearchPrefix + prefixSeparator); + pWeb.setSearch(searchEngineUrlResults); + pWeb.setSuggestion(searchEngineUrlSuggestions); + + BowSearchPrefixImpl pTag = new BowSearchPrefixImpl(); + pTag.setBowUser(userId); + pTag.setPrefix(tagSearchPrefix + prefixSeparator); + pTag.setSearch("search.tag"); + pTag.setSuggestion("suggestion.tag"); + + BowSearchPrefixImpl pFullText = new BowSearchPrefixImpl(); + pFullText.setBowUser(userId); + pFullText.setPrefix(fullTextSearchPrefix + prefixSeparator); + pFullText.setSearch("search.fulltext"); + pFullText.setSuggestion("suggestion.fulltext"); + + BowSearchPrefixImpl pAlias = new BowSearchPrefixImpl(); + pAlias.setBowUser(userId); + pAlias.setPrefix(aliasPrefix + prefixSeparator); + pAlias.setSearch("search.alias"); + pAlias.setSuggestion("suggestion.alias"); + + BowSearchPrefixImpl pDefault = new BowSearchPrefixImpl(); + if (StringUtils.equals(defaultAction, webSearchPrefix)) { + pDefault.getWikitty().replaceWith(pWeb.getWikitty(), true); + } else if (StringUtils.equals(defaultAction, tagSearchPrefix)) { + pDefault.getWikitty().replaceWith(pTag.getWikitty(), true); + } else if (StringUtils.equals(defaultAction, fullTextSearchPrefix)) { + pDefault.getWikitty().replaceWith(pFullText.getWikitty(), true); + } else if (StringUtils.equals(defaultAction, aliasPrefix)) { + pDefault.getWikitty().replaceWith(pAlias.getWikitty(), true); + } + pDefault.setPrefix(""); + + BowSearchPrefixImpl pDefaultPrefix = new BowSearchPrefixImpl(); + if (StringUtils.equals(defaultPrefix, webSearchPrefix)) { + pDefaultPrefix.getWikitty().replaceWith(pWeb.getWikitty(), true); + } else if (StringUtils.equals(defaultPrefix, tagSearchPrefix)) { + pDefaultPrefix.getWikitty().replaceWith(pTag.getWikitty(), true); + } else if (StringUtils.equals(defaultPrefix, fullTextSearchPrefix)) { + pDefaultPrefix.getWikitty().replaceWith(pFullText.getWikitty(), true); + } else if (StringUtils.equals(defaultPrefix, aliasPrefix)) { + pDefaultPrefix.getWikitty().replaceWith(pAlias.getWikitty(), true); + } + pDefaultPrefix.setPrefix(prefixSeparator); + + ArrayList<Wikitty> toStore = new ArrayList<Wikitty>(); + toStore.add(pWeb.getWikitty()); + toStore.add(pTag.getWikitty()); + toStore.add(pFullText.getWikitty()); + toStore.add(pAlias.getWikitty()); + toStore.add(pDefault.getWikitty()); + toStore.add(pDefaultPrefix.getWikitty()); + + WikittyServiceEnhanced wse = new WikittyServiceEnhanced(service); + service.store(null, toStore, false); + +// WikittyProxy proxy = new WikittyProxy(service); +// proxy.store(pWeb, pTag, pFullText, pAlias, pDefault, pDefaultPrefix); + } + } + + @Override + public Wikitty migrate(WikittyService service, Wikitty oldWikitty, Wikitty newWikitty, + WikittyExtension oldExt, WikittyExtension newExt) { + + // on laisse l'implantation par defaut migrer tout ce qu'il faut + Wikitty result = super.migrate(service, oldWikitty, newWikitty, oldExt, newExt); + + if (BowPreference.EXT_BOWPREFERENCE.equals(newExt.getName())) { + String oldVersion = oldExt.getVersion(); + if (VersionUtil.smallerThan(oldVersion, "5.0")) { + migrateBowPrefix(service, oldWikitty, result); + } + } + + return result; + } +////147e923b-3921-4b17-a88c-43495b477a8a +// public static void migrate(WikittyProxy proxy) { +// log.info("Migration"); +// +// int MAX = 1000; +// +// Criteria criteria = Search.query().rTrue().criteria(); +// +// int i = 0; +// int count = 0; +// PagedResult<Wikitty> wikitties; +// do { +// criteria.setFirstIndex(i); +// criteria.setEndIndex(i += MAX); +// wikitties = proxy.findAllByCriteria(criteria); +// List<Wikitty> ws = wikitties.getAll(); +// proxy.storeWikitty(ws); +// count += ws.size(); +// } while (wikitties.size() >= MAX); +// log.info(String.format("Migration of %s Wikitties done", count)); +// } +// +// // only here to simplify test and debug of migration, this permit to migrate +// // datas in developpement environnement directly without launch bow web app +// public static void main(String... args) { +// BowProxy proxy = BowProxy.getInstance(null); +// proxy.syncSearchEngine(); +// migrate(proxy); +// } +} Property changes on: trunk/bow-ui/src/main/java/org/chorem/bow/BowMigrationPreference.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/bow-ui/src/main/java/org/chorem/bow/BowProxy.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowProxy.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowProxy.java 2013-09-24 17:54:39 UTC (rev 360) @@ -24,13 +24,14 @@ package org.chorem.bow; import org.nuiton.util.ApplicationConfig; -import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.entities.WikittyExtension; import java.util.ArrayList; import java.util.List; +import org.nuiton.wikitty.WikittyClient; +import org.nuiton.wikitty.services.WikittyExtensionMigrationRegistry; /** * Proxy pour utiliser les wikitty convenablement initialise. @@ -41,7 +42,7 @@ * Last update: $Date$ * by : $Author$ */ -public class BowProxy extends WikittyProxy { +public class BowProxy extends WikittyClient { static protected WikittyService ws; @@ -74,9 +75,17 @@ if (ws == null) { synchronized (BowProxy.class) { if (ws == null) { + // on enregistre les classes qui feront la migration des données + // on enregistre la classe qui fera la migration des données + WikittyExtensionMigrationRegistry registry = + config.getObject(WikittyExtensionMigrationRegistry.class); + registry.put(BowPreference.EXT_BOWPREFERENCE, new BowMigrationPreference()); + + // enregistrement des extensions List<WikittyExtension> extensions = new ArrayList<WikittyExtension>(); - extensions.addAll(BowPreferenceImpl.extensions); // inherit BowUSer, WikittyUser - extensions.addAll(BowImportImpl.extensions); // inherit BowBookmark, WikittyLabel + extensions.addAll(BowUserImpl.extensions); // inherit BowPreference, WikittyUser + extensions.addAll(BowImportImpl.extensions); // inherit BowBookmark, WikittyLabel, WikittyAuthorisation + extensions.addAll(BowSearchPrefixImpl.extensions); // inherit BowBookmark, WikittyLabel ws = WikittyServiceFactory.buildWikittyService(config); ws.storeExtension(null, extensions); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/BowSearchResult.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowSearchResult.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowSearchResult.java 2013-09-24 17:54:39 UTC (rev 360) @@ -26,13 +26,13 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.wikitty.search.FacetTopic; -import org.nuiton.wikitty.search.PagedResult; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; +import org.nuiton.wikitty.query.FacetTopic; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * Cette classe permet de stocker le resutlat d'une recherche @@ -66,14 +66,12 @@ * Construit l'objet en passant en parametre tout ce qu'il faut pour faire * la recherche * - * @param session la session de l'utilisateur sur lequel on peut recuperer - * le proxy et les preferences * @param result * @param tagLine (optionel) le liste des tags a rechercher */ - public BowSearchResult(PagedResult<BowBookmark> result, String tagLine) { + public BowSearchResult(WikittyQueryResult<BowBookmark> result, String tagLine) { - bookmarkCount = result.getNumFound(); + bookmarkCount = result.getTotalResult(); if (log.isDebugEnabled()) { log.debug(String.format("Find %s items, used %s", bookmarkCount, result.size())); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/BowSession.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowSession.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowSession.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,9 +23,8 @@ */ package org.chorem.bow; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.ObjectUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -35,10 +34,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.entities.Element; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * Classe utilisee pour stocker les objets utils en session utilisateur @@ -110,11 +109,11 @@ public List<BowSearchPrefix> getSearchPrefix() { BowUser user = getUser(); - Criteria criteria = Search.query() + WikittyQuery criteria = new WikittyQueryMaker().and() .exteq(BowSearchPrefix.EXT_BOWSEARCHPREFIX) - .eq(BowSearchPrefix.FQ_FIELD_BOWSEARCHPREFIX_BOWUSER, user.getWikittyId()).criteria() - .setSortAscending(BowSearchPrefix.FQ_FIELD_BOWSEARCHPREFIX_PREFIX); - PagedResult<BowSearchPrefix> result = getProxy().findAllByCriteria(BowSearchPrefix.class, criteria); + .eq(BowSearchPrefix.FQ_FIELD_BOWSEARCHPREFIX_BOWUSER, user.getWikittyId()).end() + .setSortAscending(BowSearchPrefix.ELEMENT_FIELD_BOWSEARCHPREFIX_PREFIX); + WikittyQueryResult<BowSearchPrefix> result = getProxy().findAllByQuery(BowSearchPrefix.class, criteria); List<BowSearchPrefix> prefix = new ArrayList<BowSearchPrefix>(result.getAll()); log.debug("####################### prefix number ################### " + prefix.size()); if (prefix.isEmpty()) { Modified: trunk/bow-ui/src/main/java/org/chorem/bow/BowUtils.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/BowUtils.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/BowUtils.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,19 +23,18 @@ */ package org.chorem.bow; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.DateFormatUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; import java.util.Arrays; import java.util.Date; import java.util.HashSet; import java.util.Set; import java.util.UUID; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; public class BowUtils { @@ -180,12 +179,12 @@ * @return User the token owner, null if the token doesn't exist */ protected static boolean checkPermanentToken(BowSession session, String token) { - WikittyProxy proxy = session.getProxy(); + BowProxy proxy = session.getProxy(); boolean result = false; if (token != null) { - Criteria criteria = Search.query().eq( - BowUser.FQ_FIELD_BOWUSER_PERMANENTTOKEN, token).criteria(); - BowUser user = proxy.findByCriteria(BowUser.class, criteria); + WikittyQuery criteria = new WikittyQueryMaker().eq( + BowUser.FQ_FIELD_BOWUSER_PERMANENTTOKEN, token).end(); + BowUser user = proxy.findByQuery(BowUser.class, criteria); if (user != null) { session.setUser(user); result = true; Deleted: trunk/bow-ui/src/main/java/org/chorem/bow/UserMigration.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/UserMigration.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/UserMigration.java 2013-09-24 17:54:39 UTC (rev 360) @@ -1,81 +0,0 @@ -/* - * #%L - * bow - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package org.chorem.bow; - -import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.WikittyException; -import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.entities.WikittyExtension; -import org.nuiton.wikitty.entities.WikittyImpl; -import org.nuiton.wikitty.services.WikittyExtensionMigration; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -/** @author sherkhan */ -public class UserMigration implements WikittyExtensionMigration { - - @Override - public Wikitty migrate(WikittyService service, - Wikitty wikitty, - WikittyExtension oldExt, - WikittyExtension newExt) { - - // FIXME poussin 20110211 il y a un probleme, il faut checker la version - // de l'extension old avant de faire le migration. Sinon on va migrer - // des donnees deja migrees :( - - String id = wikitty.getId(); - String version = wikitty.getVersion(); - Wikitty newWikitty = new WikittyImpl(id); - newWikitty.setVersion(version); - - List<WikittyExtension> extensions = - new ArrayList<WikittyExtension>(wikitty.getExtensions()); - if (extensions.contains(oldExt)) { - extensions.remove(oldExt); - extensions.add(newExt); - } - newWikitty.addExtension(extensions); - - Set<String> fieldNames = wikitty.fieldNames(); - for (String fieldName : fieldNames) { - Object obj = wikitty.getFqField(fieldName); - if (fieldName.equals("User.password")) { - String password = (String) obj; - try { - password = StringUtil.encodeMD5(password); - } catch (RuntimeException ex) { - throw new WikittyException("Could not encode password", ex); - } - obj = password; - } - newWikitty.setFqField(fieldName, obj); - } - - return newWikitty; - } -} Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,14 +23,14 @@ */ package org.chorem.bow.action; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowBookmark; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowUser; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * Handles only public aliases. Private aliases are handled by open search. @@ -74,21 +74,23 @@ String result = SUCCESS; try { if (StringUtils.isNotEmpty(alias)) { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); - Criteria criteria = Search.query().eq( - BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, alias).criteria(); + WikittyQuery criteria = new WikittyQueryMaker().or() + .ideq(alias) + .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, alias) + .end(); - BowBookmark bookmark = proxy.findByCriteria(BowBookmark.class, criteria); + BowBookmark bookmark = proxy.findByQuery(BowBookmark.class, criteria); if (bookmark == null) { - // not public alias, looking for private if user is logged + // not id or public alias, looking for private if user is logged BowUser user = getBowSession().getUser(); if (user != null) { - criteria = Search.query() + criteria = new WikittyQueryMaker().and() .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user.getWikittyId()) .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, alias) - .criteria(); - bookmark = proxy.findByCriteria(BowBookmark.class, criteria); + .end(); + bookmark = proxy.findByQuery(BowBookmark.class, criteria); } } if (bookmark != null) { @@ -114,12 +116,12 @@ String result = SUCCESS; try { if (!StringUtils.isEmpty(alias)) { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); - Criteria criteria = Search.query().eq( - BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, alias).criteria(); + WikittyQuery criteria = new WikittyQueryMaker().eq( + BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, alias).end(); - BowBookmark bookmark = proxy.findByCriteria(BowBookmark.class, criteria); + BowBookmark bookmark = proxy.findByQuery(BowBookmark.class, criteria); if (bookmark != null) { addActionError(_("bow.alias.already.exists", alias)); log.error("A bookmark already exists with alias " + alias); @@ -150,7 +152,7 @@ log.debug("delete alias for id " + bookmarkId); String result = SUCCESS; try { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); if (bookmark != null) { Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -45,7 +45,7 @@ private static final long serialVersionUID = 1L; - protected static final Log log = LogFactory.getLog(BowBaseAction.class); + private static final Log log = LogFactory.getLog(BowBaseAction.class); final static protected String CONTEXT_ACTION_KEY = "action"; Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/MigrateDataAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/MigrateDataAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/MigrateDataAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -24,16 +24,18 @@ package org.chorem.bow.action.admin; -import org.apache.commons.lang.StringUtils; +import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.bow.BowMigration06To11; -import org.chorem.bow.BowMigration11To12; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowSession; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.util.VersionUtil; -import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; + /** * Lance la migration des données de la version 0.4 vers 0.5 * @@ -48,43 +50,40 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ private static final Log log = LogFactory.getLog(MigrateDataAction.class); - /** Version must be real version, like 0.4, 0.5 or 0.6 */ - protected String versionFrom; + /** nombre d'objet a migrer pour chaque iteration */ + protected int MAX=1000; - protected String versionTo; - - public void setVersionFrom(String versionFrom) { - this.versionFrom = versionFrom; + public void setMAX(int MAX) { + if (MAX > 0) { + this.MAX = MAX; + } } - public void setVersionTo(String versionTo) { - this.versionTo = versionTo; - } - @Override public String execute() { try { - if (StringUtils.isBlank(versionFrom) || StringUtils.isBlank(versionTo)) { - log.error("Migration action must have to parameter: versionFrom and versionTo"); - } else { - BowSession session = getBowSession(); - if (session.isAdmin()) { //If is admin - WikittyProxy proxy = getBowProxy(); + BowSession session = getBowSession(); + if (session.isAdmin()) { //If is admin + // les classes de migration ont deja ete enregistrees lors + // de la creation de BowProxy + // Il faut donc simplement parcourir tous les objets + BowProxy proxy = getBowProxy(); - if (VersionUtil.equals(versionFrom, "0.6") - && VersionUtil.equals(versionTo, "1.1")) { - BowMigration06To11.migrate(proxy); - addActionMessage(_("bow.admin.dataMigration.success")); - } else if (VersionUtil.equals(versionFrom, "1.1") - && VersionUtil.equals(versionTo, "1.2")) { - BowMigration11To12.migrate(proxy); - addActionMessage(_("bow.admin.dataMigration.success")); - } else { - addActionMessage(String.format( - "No migration found for %s to %s", - versionFrom, versionTo)); - } - } + WikittyQuery criteria = new WikittyQueryMaker().rTrue().end(); + + int i = 0; + int count = 0; + WikittyQueryResult<Wikitty> wikitties; + do { + criteria.setOffset(i); + criteria.setLimit(MAX); + i+=MAX; + wikitties = proxy.findAllByQuery(Wikitty.class, criteria); + List<Wikitty> ws = wikitties.getAll(); + proxy.storeWikitty(ws); + count += ws.size(); + } while (wikitties.size() >= MAX); + log.info(String.format("Migration of %s BowBookmark done", count)); } } catch (Exception eee) { addActionError(_("bow.error.internal")); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,9 +23,11 @@ */ package org.chorem.bow.action.admin; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowSession; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; /** * Lance la reindexation solr @@ -35,15 +37,17 @@ public class ReIndexationAction extends BowBaseAction { private static final long serialVersionUID = 6226574522402739559L; + + private static Log log = LogFactory.getLog(ReIndexationAction.class); @Override public String execute() { try { BowSession session = getBowSession(); if (session.isAdmin()) { //If is admin - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); - proxy.getWikittyService().syncSearchEngine(proxy.getSecurityToken()); + proxy.syncSearchEngine(); addActionMessage(_("bow.admin.reIndexationDone")); } } catch (Exception eee) { @@ -52,4 +56,9 @@ } return SUCCESS; } + + static public void main(String ... args) { + BowProxy proxy = BowProxy.getInstance(null); + proxy.getWikittyService().syncSearchEngine(null); + } } \ No newline at end of file Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,16 +23,18 @@ */ package org.chorem.bow.action.bookmark; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.chorem.bow.BookmarkUtils; import org.chorem.bow.BowBookmark; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowUser; import org.chorem.bow.BowUtils; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * Ajoute ou modifie un bookmark, soit par le formulaire, @@ -44,6 +46,8 @@ private static final long serialVersionUID = 3389170166034184139L; + private static Log log = LogFactory.getLog(AddOrUpdateAction.class); + protected String bookmarkId; protected String link; @@ -135,7 +139,7 @@ public String execute() { String result = SUCCESS; try { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); BowBookmark bookmark = null; BowBookmark bookmarkToModify = null; @@ -153,30 +157,30 @@ // Si l'alias prive souhaite est deja utilise on ne l'accept pas // Si l'alias public souhaite est deja utilise on ne l'accept pas // TODO sletellier 20110416 : return error message when public or private alias is already used - Criteria privateAliasCriteria = null; - Criteria publicAliasCriteria = null; + WikittyQuery privateAliasCriteria = null; + WikittyQuery publicAliasCriteria = null; if (StringUtils.isNotEmpty(privateAlias)) { - privateAliasCriteria = Search.query() + privateAliasCriteria = new WikittyQueryMaker().and() .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, privateAlias) .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) - .criteria().setEndIndex(0); + .end().setLimit(0); } if (StringUtils.isNotEmpty(publicAlias)) { - publicAliasCriteria = Search.query() + publicAliasCriteria = new WikittyQueryMaker() .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, publicAlias) - .criteria().setEndIndex(0); + .end().setLimit(0); } - PagedResult<String>[] aliasResult = proxy.findAllIdByCriteria( + WikittyQueryResult<String>[] aliasResult = proxy.findAllByQuery( privateAliasCriteria, publicAliasCriteria); - if (aliasResult[0] != null && aliasResult[0].getNumFound() > 0) { + if (aliasResult[0] != null && aliasResult[0].getTotalResult() > 0) { if (bookmarkToModify == null) { privateAlias = ""; } else { privateAlias = bookmarkToModify.getPrivateAlias(); } } - if (aliasResult[1] != null && aliasResult[1].getNumFound() > 0) { + if (aliasResult[1] != null && aliasResult[1].getTotalResult() > 0) { if (bookmarkToModify == null) { publicAlias = ""; } else { @@ -203,12 +207,12 @@ // looking for already bookmark with same url, to fusion them String link = bookmark.getLink(); - Criteria criteria = Search.query() + WikittyQuery criteria = new WikittyQueryMaker().and() .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_LINK, link) .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) - .criteria(); + .end(); BowBookmark oldBookmark = - proxy.findByCriteria(BowBookmark.class, criteria); + proxy.findByQuery(BowBookmark.class, criteria); if (oldBookmark != null) { // fusionne les descriptions et les tags // par contre on prend le dernier privateAlias prive choisi par Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,14 +23,16 @@ */ package org.chorem.bow.action.bookmark; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.chorem.bow.BookmarkUtils; import org.chorem.bow.BowUser; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; +import org.nuiton.wikitty.query.WikittyQuery; /** * Supprime des bookmarks qui satisfont le critere de recherche. @@ -41,6 +43,8 @@ private static final long serialVersionUID = -3903724044644625507L; + private static Log log = LogFactory.getLog(DeleteSearchResultsAction.class); + /** Deletes the search results */ public String execute() { try { @@ -52,11 +56,11 @@ // dans ce cas, ne faudrait-il pas seulement ce supprimer des // reader/write/admin ? // FIXME tchemit 20110829 J'ai mis en dernier paramètre 0 car ça ne compilait pô mais je sais pas si c'est le bon!... - Criteria criteria = BookmarkUtils.getBookmarkListCriteriaByUser( + WikittyQuery criteria = BookmarkUtils.getBookmarkListCriteriaByUser( user, tagLine, fullTextLine, null, 0); - WikittyProxy proxy = getBowProxy(); - List<String> ids = proxy.findAllIdByCriteria(criteria).getAll(); + BowProxy proxy = getBowProxy(); + List<String> ids = proxy.findAllByQuery(criteria).getAll(); if (log.isDebugEnabled()) { log.debug("Will delete " + ids.size() + " bookmarks"); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,13 +23,14 @@ */ package org.chorem.bow.action.bookmark; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowBookmark; import org.chorem.bow.BowBookmarkImpl; +import org.chorem.bow.BowProxy; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; -import org.nuiton.wikitty.search.operators.Element; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * Load a bookmark to display it on modification page @@ -37,7 +38,9 @@ * @author sletellier */ public class EditAction extends BowBaseAction { + private static final long serialVersionUID = 1L; + private static Log log = LogFactory.getLog(EditAction.class); protected String id; @@ -64,10 +67,10 @@ return SUCCESS; } try { - WikittyProxy proxy = getBowProxy(); - Criteria criteria = Search.query() - .eq(Element.ELT_ID, id).criteria(); - bookmark = proxy.findByCriteria(BowBookmark.class, criteria); + BowProxy proxy = getBowProxy(); + WikittyQuery criteria = new WikittyQueryMaker() + .ideq(id).end(); + bookmark = proxy.findByQuery(BowBookmark.class, criteria); } catch (Exception eee) { addActionError(_("bow.error.internal")); log.error(eee.getMessage(), eee); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -24,7 +24,7 @@ package org.chorem.bow.action.bookmark; import com.opensymphony.xwork2.ActionContext; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BookmarkUtils; @@ -35,8 +35,8 @@ import org.chorem.bow.BowUser; import org.chorem.bow.action.BowBaseAction; import org.nuiton.util.TimeLog; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * Prepare l'affichage de la page d'accueil @@ -95,10 +95,10 @@ BowUser user = session.getUser(); BowProxy proxy = session.getProxy(); - Criteria criteria = BookmarkUtils.getBookmarkListCriteriaByUser( + WikittyQuery criteria = BookmarkUtils.getBookmarkListCriteriaByUser( user, tagLine, fullTextLine, order, first); - PagedResult<BowBookmark> result = - proxy.findAllByCriteria(BowBookmark.class, criteria); + WikittyQueryResult<BowBookmark> result = + proxy.findAllByQuery(BowBookmark.class, criteria); searchResult = new BowSearchResult(result, tagLine); } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,10 +23,12 @@ */ package org.chorem.bow.action.bookmark; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowUtils; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; /** * Supprime un bookmark @@ -36,6 +38,7 @@ public class RemoveAction extends BowBaseAction { private static final long serialVersionUID = 820566716695285561L; + private static final Log log = LogFactory.getLog(RemoveAction.class); protected String bookmarkId; @@ -61,7 +64,7 @@ public String execute() { if (StringUtils.isNotEmpty(bookmarkId)) { try { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); proxy.delete(bookmarkId); addActionMessage(_("bow.bookmark.remove.successful")); } catch (Exception eee) { Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,18 +23,20 @@ */ package org.chorem.bow.action.login; -import org.apache.commons.lang.RandomStringUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.StringUtils; import org.chorem.bow.BowMail; import org.chorem.bow.BowUser; import org.chorem.bow.action.BowBaseAction; import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; import javax.mail.MessagingException; import javax.mail.internet.AddressException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * Genere un nouveau mot de passe pour l'utilisateur et lui envoie par mail @@ -47,7 +49,9 @@ * @author poussin */ public class ForgotPasswordAction extends BowBaseAction { + private static final long serialVersionUID = -8207951465957204954L; + private static final Log log = LogFactory.getLog(ForgotPasswordAction.class); protected String email; @@ -69,10 +73,10 @@ try { if (StringUtils.isNotBlank(email)) { email = email.trim(); - WikittyProxy proxy = getBowProxy(); - Criteria criteria = Search.query() - .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); - BowUser user = proxy.findByCriteria(BowUser.class, criteria); + BowProxy proxy = getBowProxy(); + WikittyQuery criteria = new WikittyQueryMaker() + .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).end(); + BowUser user = proxy.findByQuery(BowUser.class, criteria); if (user != null) { //If the email address exists String password; Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -24,15 +24,17 @@ package org.chorem.bow.action.login; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowConfig; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowUser; import org.chorem.bow.BowUserImpl; import org.chorem.bow.action.BowBaseAction; import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * authentifie l'utilisateur et place son objet User dans la bow session @@ -42,6 +44,7 @@ public class LoginAction extends BowBaseAction { private static final long serialVersionUID = 6891064800288772246L; + private static Log log = LogFactory.getLog(LoginAction.class); protected String email; @@ -73,10 +76,11 @@ protected BowUser checkLogin(String email, String password) { BowUser result; - WikittyProxy proxy = getBowProxy(); - Criteria criteria = Search.query().eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email). - eq(BowUser.FQ_FIELD_WIKITTYUSER_PASSWORD, password).criteria(); - result = proxy.findByCriteria(BowUser.class, criteria); + BowProxy proxy = getBowProxy(); + WikittyQuery criteria = new WikittyQueryMaker().and() + .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email) + .eq(BowUser.FQ_FIELD_WIKITTYUSER_PASSWORD, password).end(); + result = proxy.findByQuery(BowUser.class, criteria); if (result == null) { // failback: try to authenticate admin with config info Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,19 +23,21 @@ */ package org.chorem.bow.action.login; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.chorem.bow.BowMail; import org.chorem.bow.BowUser; import org.chorem.bow.BowUserImpl; import org.chorem.bow.BowUtils; import org.chorem.bow.action.BowBaseAction; import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; import javax.mail.MessagingException; import javax.mail.internet.AddressException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * Enregistre un nouvel utilisateur @@ -46,6 +48,8 @@ private static final long serialVersionUID = 2204772861770399542L; + private static Log log = LogFactory.getLog(RegisterAction.class); + protected String email; protected String password; @@ -90,12 +94,12 @@ protected boolean alreadyRegistered(String email) { boolean result; - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); //Retrieves user by user name (email) - Criteria criteria = Search.query() - .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); + WikittyQuery criteria = new WikittyQueryMaker() + .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).end(); - result = proxy.findByCriteria(BowUser.class, criteria) != null; + result = proxy.findByQuery(BowUser.class, criteria) != null; //If the user doesn't already exist if (result) { //The email address is already used by someone @@ -120,7 +124,7 @@ //If the email address isn't already used if (!alreadyRegistered(email)) { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); BowUserImpl newUser = new BowUserImpl(); newUser.setPassword(md5); newUser.setLogin(email); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchBaseAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchBaseAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchBaseAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,7 +23,7 @@ */ package org.chorem.bow.action.opensearch; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; @@ -50,14 +50,14 @@ protected String token; /** [in] la ligne de recherche soumise par l'utilisateur */ - protected String search; + protected String q; - public String getSearch() { - return search; + public String getQ() { + return q; } - public void setSearch(String search) { - this.search = search; + public void setQ(String q) { + this.q = q; } /** @return the token */ @@ -74,7 +74,7 @@ @Override public String execute() { - System.out.println("######################### OpenSearchBaseAction enter #################" + search); + System.out.println("######################### OpenSearchBaseAction enter #################" + q); System.out.println("param:" + ServletActionContext.getRequest().getParameterMap()); BowSearchPrefix defaultPrefix = null; @@ -85,7 +85,7 @@ String p = prefix.getPrefix(); if (StringUtils.isBlank(p)) { defaultPrefix = prefix; - } else if (StringUtils.startsWith(search, p)) { + } else if (StringUtils.startsWith(q, p)) { foundPrefix = prefix; break; } @@ -96,9 +96,9 @@ } if (foundPrefix == null) { - query = search; + query = q; } else { - query = StringUtils.substringAfter(search, foundPrefix.getPrefix()); + query = StringUtils.substringAfter(q, foundPrefix.getPrefix()); } System.out.println("######################### OpenSearchBaseAction #################" + query + " - " + foundPrefix); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -34,7 +34,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -7,20 +7,20 @@ import java.util.List; import java.util.Set; import org.apache.commons.io.input.ReaderInputStream; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BookmarkUtils; import org.chorem.bow.BowBookmark; +import org.chorem.bow.BowProxy; import org.chorem.bow.BowUser; import org.chorem.bow.BowUtils; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.FacetTopic; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.query.FacetTopic; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * @@ -34,6 +34,7 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(SuggestionAction.class); + private static final long serialVersionUID = 1L; /** [in] le token d'identification */ protected String token; @@ -78,7 +79,7 @@ if (q != null) { BowUser user = getBowSession().getUser(); - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); // on ajoute * a la fin du dernier tag, car il n'est peut-etre pas fini String searchLineStar = q + "*"; @@ -96,21 +97,20 @@ Set<String> searchLineList = BowUtils.getWords(searchLineStar); - Search search = BookmarkUtils.addEqUser(Search.query(), user.getWikittyId()); + WikittyQueryMaker search = BookmarkUtils.addEqUser(new WikittyQueryMaker().and(), user.getWikittyId()); search.exteq(BowBookmark.EXT_WIKITTYLABEL); - search.contains(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, searchLineList); + search.containsAll(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, searchLineList); - Criteria criteria = search - .criteria() - .setEndIndex(0) // on ne veut aucun resultat, c'est la facet dont on a besoin + WikittyQuery criteria = search.end() + .setLimit(0) // on ne veut aucun resultat, c'est la facet dont on a besoin .setFacetMinCount(1) // on demande meme les labels avec 1 seul item .setFacetLimit(Integer.MAX_VALUE) // ne ne met pas -1 pour qu'il soit trie par ordre de count - .addFacetField(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); + .addFacetField(BowBookmark.ELEMENT_FIELD_WIKITTYLABEL_LABELS); - PagedResult<Wikitty> result = proxy.findAllByCriteria(criteria); + WikittyQueryResult<Wikitty> result = proxy.findAllByQuery(Wikitty.class, criteria); // lorsqu'on demande tout (facetLimit(-1)), les topics sont trie // alphabetiquement pas besoin de les retrier - List<FacetTopic> topics = result.getTopic(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); + List<FacetTopic> topics = result.getTopic(BowBookmark.ELEMENT_FIELD_WIKITTYLABEL_LABELS); if (log.isTraceEnabled()) { log.trace("all topics: %s" + topics); } @@ -175,20 +175,20 @@ if (q != null) { BowUser user = getBowSession().getUser(); - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); // on ajoute * a la fin, car il n'est peut-etre pas fini String privateAliasStar = q + "*"; - Search search = BookmarkUtils.addEqUser(Search.query(), user.getWikittyId()); + WikittyQueryMaker search = BookmarkUtils.addEqUser(new WikittyQueryMaker().and(), user.getWikittyId()); search.or(). eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, privateAliasStar). eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, privateAliasStar); - Criteria criteria = search.criteria() - .setEndIndex(15); // on recupere que les 15 premiers resultats + WikittyQuery criteria = search.end() + .setLimit(15); // on recupere que les 15 premiers resultats - PagedResult<BowBookmark> result = proxy.findAllByCriteria(BowBookmark.class, criteria); + WikittyQueryResult<BowBookmark> result = proxy.findAllByQuery(BowBookmark.class, criteria); for (BowBookmark b : result) { String completion = b.getPrivateAlias(); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,22 +23,22 @@ */ package org.chorem.bow.action.preference; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowBookmark; import org.chorem.bow.BowProxy; import org.chorem.bow.BowUser; import org.nuiton.wikitty.entities.WikittyLabel; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.search.Search; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * @author poussin @@ -51,7 +51,7 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ private static final Log log = LogFactory.getLog(AdminTagAction.class); - + private static final long serialVersionUID = 1L; /** @@ -80,12 +80,12 @@ BowUser user = getBowSession().getUser(); String userId = user.getWikittyId(); - Criteria c = Search.query() - .in(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, selectedLabelsList) + WikittyQuery c = new WikittyQueryMaker().and() + .containsOne(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, selectedLabelsList) .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) - .criteria(); - PagedResult<WikittyLabel> searchResult = - proxy.findAllByCriteria(WikittyLabel.class, c); + .end(); + WikittyQueryResult<WikittyLabel> searchResult = + proxy.findAllByQuery(WikittyLabel.class, c); List<WikittyLabel> toStore = new ArrayList<WikittyLabel>(); for (WikittyLabel label : searchResult) { Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -26,11 +26,13 @@ import org.chorem.bow.BowBookmark; import org.chorem.bow.BowImport; import org.chorem.bow.BowUser; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** @@ -41,6 +43,8 @@ public class DeleteImportAction extends PreferenceBaseAction { private static final long serialVersionUID = 8714394293884265516L; + static private Log log = LogFactory.getLog(DeleteImportAction.class); + protected String date; /** @return the date */ @@ -62,12 +66,12 @@ // que la date verifie le pattern ? // car on pire on ne retrouve rien et donc on ne supprime rien date.matches("[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{1,3}Z")) { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); BowUser user = getBowSession().getUser(); - Criteria criteria = Search.query() + WikittyQuery criteria = new WikittyQueryMaker().and() .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user.getWikittyId()) - .eq(BowImport.FQ_FIELD_BOWIMPORT_IMPORTDATE, date).criteria(); - List<BowImport> bookmarks = proxy.findAllByCriteria(BowImport.class, criteria).getAll(); + .eq(BowImport.FQ_FIELD_BOWIMPORT_IMPORTDATE, date).end(); + List<BowImport> bookmarks = proxy.findAllByQuery(BowImport.class, criteria).getAll(); if (log.isDebugEnabled()) { log.debug("Will delete " + bookmarks.size() + " bookmarks"); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ExportBookmarksAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ExportBookmarksAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ExportBookmarksAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -28,9 +28,6 @@ import org.chorem.bow.BowBookmark; import org.chorem.bow.BowUser; import org.chorem.bow.action.BowBaseAction; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; import java.io.BufferedWriter; import java.io.File; @@ -42,6 +39,11 @@ import java.util.Date; import java.util.List; import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * Export son bookmark au format HTML @@ -51,6 +53,8 @@ public class ExportBookmarksAction extends BowBaseAction { private static final long serialVersionUID = 45880214686011946L; + static private Log log = LogFactory.getLog(ExportBookmarksAction.class); + protected transient InputStream inputStream; public InputStream getInputStream() { @@ -96,15 +100,15 @@ /** Exports the bookmarks in HTML format */ @Override public String execute() { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); // get current user BowUser user = getBowSession().getUser(); // Get all bookmark for user - Criteria criteria = Search.query() - .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user.getWikittyId()).criteria(); - List<BowBookmark> bookmarks = proxy.findAllByCriteria(BowBookmark.class, criteria).getAll(); + WikittyQuery criteria = new WikittyQueryMaker() + .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user.getWikittyId()).end(); + List<BowBookmark> bookmarks = proxy.findAllByQuery(BowBookmark.class, criteria).getAll(); // Export all BufferedWriter out = null; Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,7 +23,7 @@ */ package org.chorem.bow.action.preference; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.chorem.bow.BookmarkUtils; import org.chorem.bow.BowBookmark; import org.chorem.bow.BowImportHelper; @@ -33,7 +33,6 @@ import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; import org.htmlparser.util.SimpleNodeIterator; -import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.entities.Wikitty; import java.io.File; @@ -46,6 +45,9 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowProxy; /** * Import un bookmark HTML @@ -56,6 +58,8 @@ private static final long serialVersionUID = -5962680416570797028L; + private static Log log = LogFactory.getLog(ImportBookmarksAction.class); + protected File upfile; protected String upfileContentType; @@ -186,7 +190,7 @@ // = new // bookmarks BowBookmark bookmark = createBookmarkFromHtml(text, plainText, user); - Wikitty w = getBowProxy().getWikitty(bookmark); + Wikitty w = getBowProxy().castTo(Wikitty.class, bookmark); BowImportHelper.addExtension(w); BowImportHelper.setImportDate(w, date); @@ -215,7 +219,7 @@ // Struts limite to html files, is null if not one if (upfile != null) { - WikittyProxy proxy = getBowProxy(); + BowProxy proxy = getBowProxy(); try { URL url = upfile.toURI().toURL(); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -32,17 +32,19 @@ import org.chorem.bow.action.BowBaseAction; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.FacetTopic; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.search.Search; import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowSearchPrefix; +import org.nuiton.wikitty.query.FacetTopic; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * Change les preferences de l'utilisateur (couleur, password, email, ...) @@ -52,6 +54,7 @@ public class PreferenceBaseAction extends BowBaseAction { private static final long serialVersionUID = -58341106356599721L; + private static final Log log = LogFactory.getLog(PreferenceBaseAction.class); public static PreferenceBaseAction getAction() { Object action = ActionContext.getContext().get(CONTEXT_ACTION_KEY); @@ -320,15 +323,15 @@ BowProxy proxy = session.getProxy(); BowUser user = session.getUser(); - Criteria criteria = Search.query() + WikittyQuery criteria = new WikittyQueryMaker().and() .exteq(BowImport.EXT_BOWIMPORT) - .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user.getWikittyId()).criteria() - .addFacetField(BowImport.FQ_FIELD_BOWIMPORT_IMPORTDATE) - .setFirstIndex(0).setEndIndex(0); + .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user.getWikittyId()).end() + .addFacetField(BowImport.ELEMENT_FIELD_BOWIMPORT_IMPORTDATE) + .setOffset(0).setLimit(0); List<FacetTopic> bookmarksImportDate = - proxy.findAllByCriteria(BowImport.class, criteria) - .getTopic(BowImport.FQ_FIELD_BOWIMPORT_IMPORTDATE); + proxy.findAllByQuery(BowImport.class, criteria) + .getTopic(BowImport.ELEMENT_FIELD_BOWIMPORT_IMPORTDATE); // Extract imports Map<String, Integer> result = new HashMap<String, Integer>(); @@ -352,14 +355,14 @@ BowUser user = session.getUser(); String userId = user.getWikittyId(); - Criteria c = Search.query() + WikittyQuery c = new WikittyQueryMaker().and() .exteq(BowBookmark.EXT_WIKITTYLABEL) .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) - .criteria().setEndIndex(0) // on ne veut aucun resultat, c'est la facet dont on a besoin + .end().setLimit(0) // on ne veut aucun resultat, c'est la facet dont on a besoin .setFacetMinCount(1) // on demande meme les labels avec 1 seul item - .setFacetLimit(-1) // on demande tous les labels - .addFacetField(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); - PagedResult<Wikitty> result = proxy.findAllByCriteria(c); + .setFacetLimit(WikittyQuery.MAX) // on demande tous les labels + .addFacetField(BowBookmark.ELEMENT_FIELD_WIKITTYLABEL_LABELS); + WikittyQueryResult<Wikitty> result = proxy.findAllByQuery(Wikitty.class, c); // lorsqu'on demande tout (facetLimit(-1)), les topics sont trie // alphabetiquement pas besoin de les retrier labels = result.getTopic(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,7 +23,7 @@ */ package org.chorem.bow.action.preference; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowProxy; Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java 2013-09-24 17:54:39 UTC (rev 360) @@ -23,15 +23,15 @@ */ package org.chorem.bow.action.preference; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BowProxy; import org.chorem.bow.BowSession; import org.chorem.bow.BowUser; import org.nuiton.util.StringUtil; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; /** * @author poussin @@ -66,11 +66,12 @@ BowUser user = session.getUser(); if (StringUtils.isNotBlank(email)) { - Criteria criteria = Search.query().eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); + WikittyQuery criteria = new WikittyQueryMaker() + .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).end(); if (log.isDebugEnabled()) { log.debug(String.format("Try to find user with email: '%s'", email)); } - BowUser find = getBowProxy().findByCriteria(BowUser.class, criteria); + BowUser find = getBowProxy().findByQuery(BowUser.class, criteria); //If this email address isn't already used (or if it hasn't changed) if (find == null || find.getLogin().equals(user.getLogin())) { Modified: trunk/bow-ui/src/main/resources/bow.properties =================================================================== --- trunk/bow-ui/src/main/resources/bow.properties 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/resources/bow.properties 2013-09-24 17:54:39 UTC (rev 360) @@ -44,7 +44,8 @@ wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\ org.nuiton.wikitty.services.WikittyServiceNotifier,\ org.nuiton.wikitty.services.WikittyServiceCached,\ -org.nuiton.wikitty.services.WikittyServiceSecurity +org.nuiton.wikitty.services.WikittyServiceAuthentication,\ +org.nuiton.wikitty.services.WikittyServiceAuthorisation wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr Modified: trunk/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties =================================================================== --- trunk/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties 2013-09-24 17:54:39 UTC (rev 360) @@ -4,8 +4,9 @@ bow.admin.dataMigration04to05=Migrate all data from 0.4 to 0.5 bow.admin.dataMigration05to06=Migrate all data from 1.1 to 1.2 bow.admin.dataMigration11to12= -bow.admin.dataReindexation=All data reindexation +bow.admin.dataReindexation=All data reindexation (and migration if needed) bow.admin.forbidden=You don't have admin rights \! +bow.admin.forceMigration= bow.admin.home=Return to the home page bow.admin.panel=Admin panel bow.admin.reIndexationDone=Data reindexed successfully Modified: trunk/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties =================================================================== --- trunk/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties 2013-09-24 17:54:39 UTC (rev 360) @@ -6,9 +6,10 @@ bow.admin.dataMigration11to12= bow.admin.dataReindexation=R\u00E9indexation des donn\u00E9es bow.admin.forbidden=Vous n'\u00EAtes pas administrateur \! +bow.admin.forceMigration= bow.admin.home=Retour sur la page d''accueil bow.admin.panel=Panneau d''administration -bow.admin.reIndexationDone=Les donn\u00E9es ont bien \u00E9t\u00E9 r\u00E9index\u00E9es +bow.admin.reIndexationDone=Les donn\u00E9es ont bien \u00E9t\u00E9 r\u00E9index\u00E9es (et migration si n\u00E9cessaire) bow.alias.already.exists=L''alias {0} existe d\u00E9j\u00E0 bow.alias.bookmarkId.unknown=Il n''y a pas de marque-page correspondant \u00E0 l''identifiant {0} bow.bookmark.add.successful=Marque-page ajout\u00E9 avec succ\u00E8s Modified: trunk/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp =================================================================== --- trunk/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp 2013-09-24 17:54:39 UTC (rev 360) @@ -44,8 +44,6 @@ <s:if test="#session.BowSession.isAdmin()"> <ul id="adminActions"> <li><s:a action="reIndexation"><s:text name="bow.admin.dataReindexation" /></s:a></li> - <li><s:a action="migrateData?versionFrom=0.6&versionTo=1.1"><s:text name="bow.admin.dataMigration05to06" /></s:a></li> - <li><s:a action="migrateData?versionFrom=1.1&versionTo=1.2"><s:text name="bow.admin.dataMigration11to12" /></s:a></li> <li><s:a action="home" id="homePage"><s:text name="bow.admin.home" /></s:a></li> </ul> </s:if> Modified: trunk/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp =================================================================== --- trunk/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp 2013-09-24 17:54:39 UTC (rev 360) @@ -56,7 +56,7 @@ </div> <div class="input"> <s:form action="openSearchResult" theme="simple"> - <s:textfield name="searchLine" labelSeparator="" /> + <s:textfield name="q" labelSeparator="" /> <s:submit key="bow.rightMenu.externSearchEngine" name="submit" /> </s:form> </div> Modified: trunk/bow-ui/src/main/webapp/WEB-INF/jsp/permanentXml.jsp =================================================================== --- trunk/bow-ui/src/main/webapp/WEB-INF/jsp/permanentXml.jsp 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/webapp/WEB-INF/jsp/permanentXml.jsp 2013-09-24 17:54:39 UTC (rev 360) @@ -37,7 +37,7 @@ <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16" type="image/ico"><%=url%>img/bow.gif</Image> <s:set var="token" value="#session.BowSession.getPermanentToken()" /> - <Url type="text/html" method="get" template="<%=url%>openSearchResult.action?token=${token}&search={searchTerms}" /> - <Url type="application/x-suggestions+json" method="get" template="<%=url%>openSearchSuggestion.action?token=${token}&search={searchTerms}" /> + <Url type="text/html" method="get" template="<%=url%>openSearchResult.action?token=${token}&q={searchTerms}" /> + <Url type="application/x-suggestions+json" method="get" template="<%=url%>openSearchSuggestion.action?token=${token}&q={searchTerms}" /> <moz:SearchForm><%=url%></moz:SearchForm> </OpenSearchDescription> Modified: trunk/bow-ui/src/main/webapp/WEB-INF/jsp/temporaryXml.jsp =================================================================== --- trunk/bow-ui/src/main/webapp/WEB-INF/jsp/temporaryXml.jsp 2013-09-24 17:27:30 UTC (rev 359) +++ trunk/bow-ui/src/main/webapp/WEB-INF/jsp/temporaryXml.jsp 2013-09-24 17:54:39 UTC (rev 360) @@ -36,7 +36,7 @@ <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16" type="image/ico"><%=url%>img/bow.gif</Image> <s:set var="token" value="%{#session.BowSession.getTemporaryToken()}" /> - <Url type="text/html" method="get" template="<%=url%>openSearchResult.action?token=${token}&search={searchTerms}" /> - <Url type="application/x-suggestions+json" method="get" template="<%=url%>openSearchSuggestion.action?token=${token}&search={searchTerms}" /> + <Url type="text/html" method="get" template="<%=url%>openSearchResult.action?token=${token}&q={searchTerms}" /> + <Url type="application/x-suggestions+json" method="get" template="<%=url%>openSearchSuggestion.action?token=${token}&q={searchTerms}" /> <moz:SearchForm><%=url%></moz:SearchForm> </OpenSearchDescription> Modified: trunk/bow-ui/src/main/xmi/bow-model.zargo =================================================================== (Binary files differ)