r1300 - in trunk: . wikitty-api/src/main/java/org/nuiton/wikitty wikitty-api/src/main/java/org/nuiton/wikitty/services wikitty-api/src/test/java/org/nuiton/wikitty/services wikitty-jdbc/src/test/java/org/nuiton/wikitty/services wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr
Author: bpoussin Date: 2012-01-07 21:40:21 +0100 (Sat, 07 Jan 2012) New Revision: 1300 Url: http://nuiton.org/repositories/revision/wikitty/1300 Log: Evolution #1126: Add migration class definition configurable in config file modification du WikittyServiceStorage pour que les commits de transaction soient tous fait dans un finally Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRegistry.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java Modified: trunk/pom.xml trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigration.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemory.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/pom.xml 2012-01-07 20:40:21 UTC (rev 1300) @@ -53,7 +53,7 @@ <!-- common versions used in sub-poms --> <eugeneVersion>2.4.2</eugeneVersion> - <nuitonUtilsVersion>2.4.1</nuitonUtilsVersion> + <nuitonUtilsVersion>2.4.2-SNAPSHOT</nuitonUtilsVersion> <nuitonI18nVersion>2.4.1</nuitonI18nVersion> <processPluginVersion>1.1</processPluginVersion> <jettyVersion>7.4.2.v20110526</jettyVersion> Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -305,6 +305,12 @@ n_("maximum time before send log warn with time consumed"), "3000", Integer.class, false, false), + WIKITTY_MIGRATION_CLASS( + "wikitty.migration.class.", + n_("prefix utilise pour indique les classes a utiliser pour la migration d'extension. Par exemple " + + "wikitty.migration.class.WikittyUser=org.nuiton.wikitty.entities.MigrationUser"), + "", + Class.class, false, false), WIKITTY_SECURITY_TIME_TO_LOG_INFO( "wikitty.security.timeToLog.info", n_("maximum time before send log info with time consumed"), Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigration.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigration.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigration.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -34,6 +34,8 @@ * Interface used to migrate Wikitty data from one WikittyExtension version * to another version * + * Your implementation can have constructor with ApplicationConfig as argument. + * * @author poussin * @version $Revision$ * @@ -42,11 +44,13 @@ */ public interface WikittyExtensionMigration { - // TODO poussin 20090902 permit configuration of migrationRegistry by spring + // TODO poussin 20090902 permit configuration of migrationRegistry /** * use to put migration class for extension. * key: extensionName, value: migration class + * @deprecated use new {@link WikittyExtensionMigrationRegistry} */ + @Deprecated static public Map<String, WikittyExtensionMigration> migrationRegistry = new HashMap<String, WikittyExtensionMigration>(); Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRegistry.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRegistry.java (rev 0) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRegistry.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -0,0 +1,56 @@ +package org.nuiton.wikitty.services; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.wikitty.WikittyConfigOption; +import org.nuiton.wikitty.WikittyException; + +/** + * Permet de gerer les objets permettant les migrations d'extension. Il est + * possible d'ajouter programmatiquement des objects de migration ou bien en + * utilisant la configuration. Si les deux sont utilises l'ajout par programmation + * est toujours preponderant sur l'utilisation du fichier de configuration. + * + * Pour recuperer l'objet WikittyExtensionMigrationRegistry il faut utiliser + * <pre> + * ApplicationConfig config = ...; + * WikittyExtensionMigrationRegistry registry = + * config.getObject(WikittyExtensionMigrationRegistry.class); + * WikittyExtensionMigration migration = registry.get(WikittyUser.EXT_WIKITTYUSER); + * </pre> + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class WikittyExtensionMigrationRegistry { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(WikittyExtensionMigrationRegistry.class); + + protected ApplicationConfig config; + + public WikittyExtensionMigrationRegistry(ApplicationConfig config) { + this.config = config; + } + + public WikittyExtensionMigration get(String extensionName) { + try { + String key = WikittyConfigOption.WIKITTY_MIGRATION_CLASS.getKey() + extensionName; + WikittyExtensionMigration result = + config.getOptionAsSingleton(WikittyExtensionMigration.class, key); + return result; + } catch (Exception eee) { + throw new WikittyException("Can't get migration class in configuration", eee); + } + } + + public void put(String extensionName, WikittyExtensionMigration o) { + String key = WikittyConfigOption.WIKITTY_MIGRATION_CLASS.getKey() + extensionName; + config.putObject(key, o); + } + +} Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemory.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemory.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemory.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -69,7 +69,8 @@ protected File persistenceFile = null; public WikittyServiceInMemory(ApplicationConfig config) { - super(new WikittyExtensionStorageInMemory(), + super(config, + new WikittyExtensionStorageInMemory(), new WikittyStorageInMemory(), null); searchEngine = new WikittySearchEngineInMemory( Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -42,6 +42,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationConfig; import org.nuiton.util.TimeLog; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.entities.FieldType; @@ -80,6 +81,7 @@ protected WikittyExtensionMigration defaultExtensionMigration = new WikittyExtensionMigrationRename(); + protected ApplicationConfig config; protected WikittySearchEngine searchEngine; protected WikittyExtensionStorage extensionStorage; protected WikittyStorage wikittyStorage; @@ -92,12 +94,15 @@ * {@link org.nuiton.wikitty.jdbc.WikittyServiceJPA} * {@link org.nuiton.wikitty.jdbc.WikittyServiceHbase} */ - protected WikittyServiceStorage() { + protected WikittyServiceStorage(ApplicationConfig config) { + this.config = config; } - public WikittyServiceStorage(WikittyExtensionStorage extensionStorage, + public WikittyServiceStorage(ApplicationConfig config, + WikittyExtensionStorage extensionStorage, WikittyStorage wikittyStorage, WikittySearchEngine searchEngine) { + this.config = config; this.extensionStorage = extensionStorage; this.wikittyStorage = wikittyStorage; this.searchEngine = searchEngine; @@ -212,9 +217,6 @@ result.add(extUpdate); result.add(wikUpdate); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -226,6 +228,10 @@ tx.rollback(); } throw new WikittyException("Can't store wikitty", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -241,9 +247,6 @@ List<String> result = getExtensionStorage().getAllExtensionIds(tx); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -255,6 +258,10 @@ tx.rollback(); } throw new WikittyException("Can't retrieve all extension's ids", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -272,9 +279,6 @@ List<String> result = getExtensionStorage() .getAllExtensionsRequires(tx, extensionName); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -287,6 +291,10 @@ } throw new WikittyException(String.format( "Can't retrieve all required extension for %s", extensionName), eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -341,9 +349,6 @@ WikittyEvent result = getExtensionStorage().store(tx, exts); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -355,6 +360,10 @@ tx.rollback(); } throw new WikittyException("Can't store extensions", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -388,9 +397,6 @@ WikittyEvent result = getExtensionStorage().delete(tx, extNames); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -402,6 +408,10 @@ tx.rollback(); } throw new WikittyException("Can't delete extensions", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -422,9 +432,6 @@ WikittyExtension result = getExtensionStorage().restore(tx, name, version); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -436,6 +443,10 @@ tx.rollback(); } throw new WikittyException("Can't restore extensions", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -461,9 +472,6 @@ WikittyExtension result = getExtensionStorage().restore(tx, name, version); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -475,6 +483,10 @@ tx.rollback(); } throw new WikittyException("Can't restore extensions", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -508,9 +520,6 @@ } } - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -522,6 +531,10 @@ tx.rollback(); } throw new WikittyException("Can't restore extensions", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -537,14 +550,15 @@ WikittyTransaction tx = WikittyTransaction.get(); boolean txBeginHere = false; try { + if (id == null) { + return null; + } + if (!tx.isStarted()) { tx.begin(); txBeginHere = true; } - if (id == null) { - return null; - } if (!getWikittyStorage().exists(tx, id)) { // object doesn't exist, we return null return null; @@ -559,9 +573,6 @@ result = upgradeData(securityToken, result); } - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -573,17 +584,21 @@ tx.rollback(); } throw new WikittyException("Can't store extensions", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @Override public List<Wikitty> restore(String securityToken, List<String> ids) { List<Wikitty> result = new ArrayList<Wikitty>(); - WikittyTransaction transaction = WikittyTransaction.get(); + WikittyTransaction tx = WikittyTransaction.get(); boolean txBeginHere = false; try { - if (!transaction.isStarted()) { - transaction.begin(); + if (!tx.isStarted()) { + tx.begin(); txBeginHere = true; } @@ -595,20 +610,21 @@ // avec la demande result.add(w); } - if (txBeginHere) { - transaction.commit(); - } return result; } catch (WikittyException ex) { - if (transaction != null) { - transaction.rollback(); + if (tx != null) { + tx.rollback(); } throw ex; } catch (Exception eee) { - if (transaction != null) { - transaction.rollback(); + if (tx != null) { + tx.rollback(); } throw new WikittyException("Can't restore wikitty", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -642,9 +658,18 @@ log.debug("lastExtensionVersion=" + lastExtensionVersion); } - WikittyExtensionMigration migration = - WikittyExtensionMigration.migrationRegistry.get(extensionName); + + WikittyExtensionMigration migration = null; + + WikittyExtensionMigrationRegistry registry = + config.getObject(WikittyExtensionMigrationRegistry.class); + migration = registry.get(extensionName); + // @deprecated a supprimer lorsque ce sera supprime de l'api if (migration == null) { + migration = WikittyExtensionMigration.migrationRegistry.get(extensionName); + } + + if (migration == null) { migration = defaultExtensionMigration; } @@ -755,9 +780,6 @@ result.add(eventDelete); result.add(eventStore); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -769,6 +791,10 @@ tx.rollback(); } throw new WikittyException("Can't delete wikitty", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -794,9 +820,6 @@ result.add(eventWik); result.add(eventExt); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -808,6 +831,10 @@ tx.rollback(); } throw new WikittyException("Can't clear all data", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -838,9 +865,6 @@ } } - if (txBeginHere) { - tx.commit(); - } if (criteria.size() != result.size()) { log.error(String.format("Criteria input list (%s) has not same size that result list (%s)", criteria.size(), result.size())); @@ -856,6 +880,10 @@ tx.rollback(); } throw new WikittyException("Error during find", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -888,9 +916,6 @@ } } - if (txBeginHere) { - tx.commit(); - } if (criteria.size() != result.size()) { log.error(String.format("Criteria input list (%s) has not same size that result list (%s)", criteria.size(), result.size())); @@ -906,6 +931,10 @@ tx.rollback(); } throw new WikittyException("Error during find", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -936,9 +965,6 @@ } } - if (txBeginHere) { - tx.commit(); - } if (queries.size() != result.size()) { log.error(String.format("Query input list (%s) has not same size that result list (%s)", queries.size(), result.size())); @@ -954,6 +980,10 @@ tx.rollback(); } throw new WikittyException("Error during find", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -985,9 +1015,6 @@ } } - if (txBeginHere) { - tx.commit(); - } if (queries.size() != result.size()) { log.error(String.format("Query input list (%s) has not same size that result list (%s)", queries.size(), result.size())); @@ -1003,6 +1030,10 @@ tx.rollback(); } throw new WikittyException("Error during find", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1020,9 +1051,6 @@ securityToken, thesaurusId); WikittyEvent result = delete(securityToken, allTreeNodeId); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1034,6 +1062,10 @@ tx.rollback(); } throw new WikittyException("Can't delete tree", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1077,9 +1109,6 @@ tx, wikittyId, depth, count, filter); } - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1091,6 +1120,10 @@ tx.rollback(); } throw new WikittyException("Can't restore children", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1112,9 +1145,6 @@ tx, wikittyId, depth, count, filter); } - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1126,6 +1156,10 @@ tx.rollback(); } throw new WikittyException("Can't restore children", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1226,9 +1260,6 @@ // Last wikitties searchEngine.store(tx, wikitties, true); - if (txBeginHere) { - tx.commit(); - } log.info("Reindexation finished"); } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1240,6 +1271,10 @@ tx.rollback(); } throw new WikittyException("Can't sync searchable index with data", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1333,9 +1368,6 @@ delete(securityToken, toRemoveWikitty.keySet()); result.add(eventDeleteWikitty); - if(txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1347,6 +1379,10 @@ tx.rollback(); } throw new WikittyException("Can't replay data", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1363,9 +1399,6 @@ boolean result = getWikittyStorage().exists(tx, wikittyId); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1377,6 +1410,10 @@ tx.rollback(); } throw new WikittyException("Can't test existance", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } @@ -1391,9 +1428,6 @@ } boolean result = getWikittyStorage().isDeleted(tx, wikittyId); - if (txBeginHere) { - tx.commit(); - } return result; } catch (WikittyException ex) { if (tx != null && tx.isStarted()) { @@ -1405,6 +1439,10 @@ tx.rollback(); } throw new WikittyException("Can't test existance", eee); + } finally { + if (txBeginHere && tx != null && tx.isStarted()) { + tx.commit(); + } } } Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java (rev 0) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -0,0 +1,91 @@ +package org.nuiton.wikitty.services; + +import java.util.Date; +import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.wikitty.WikittyClient; +import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyConfigOption; +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.entities.WikittyImpl; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class WikittyExtensionMigrationTest { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(WikittyExtensionMigrationTest.class); + + static protected String extensionName = "Dummy"; + + @Test + public void testMigration() throws Exception { + + WikittyExtension ext1 = new WikittyExtension(extensionName, + "1.0", // version + WikittyUtil.tagValuesToMap(" version=\"1.0\""), // tag/values + (List)null, + WikittyUtil.buildFieldMapExtension( // building field map + "Numeric number", + "String string", + "Date date")); + + WikittyExtension ext2 = new WikittyExtension(extensionName, + "2.0", // version + WikittyUtil.tagValuesToMap(" version=\"1.0\""), // tag/values + (List<String>)null, + WikittyUtil.buildFieldMapExtension( // building field map + "Numeric number", + "String string", + "Date date")); + + ApplicationConfig config = WikittyConfig.getConfig(); + String key = WikittyConfigOption.WIKITTY_MIGRATION_CLASS.getKey() + extensionName; + config.setOption(key, DummyMigration.class.getName()); + WikittyService service = new WikittyServiceInMemory(config); + WikittyClient client = new WikittyClient(config, service); + + WikittyImpl w1 = new WikittyImpl("w1"); + w1.addExtension(ext1); + w1.setField(extensionName, "string", "coucou"); + + client.store(w1); + + client.storeExtension(ext2); + + Wikitty w2 = client.restore(w1.getId()); + Assert.assertEquals("hello", w2.getFieldAsString(extensionName, "string")); + } + + public static class DummyMigration extends WikittyExtensionMigrationRename { + + public Wikitty migrate(WikittyService service, Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt) { + System.out.println(String.format("migrate %s(%s) oldExt %s newExt %s", + wikitty.getId(), wikitty.getExtension(extensionName).getId(), + oldExt.getId(), newExt.getId())); + + Wikitty result = super.migrate(service, wikitty, oldExt, newExt); + result.setField(extensionName, "string", "hello"); + result.setField(extensionName, "date", new Date()); + + System.out.println(String.format("done %s(%s)", + result.getId(), result.getExtension(extensionName).getId())); + + return result; + } + + } +} Modified: trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java =================================================================== --- trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-jdbc/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -51,12 +51,11 @@ static private Log log = LogFactory.getLog(WikittyServiceInMemoryJdbcSolr.class); public WikittyServiceInMemoryJdbcSolr() { - super(null, null, null); + super(WikittyConfig.getConfig(), null, null, null); // we use unique db name (this permit to use simultaneously many // WikittyServiceInMemoryJdbcSolr) String dbName = "wikitty-tx-" + UUID.randomUUID().toString(); - ApplicationConfig config = WikittyConfig.getConfig(); config.setOption(WikittyConfigOption. WIKITTY_STORAGE_JDBC_URL.getKey(), "jdbc:h2:mem:" + dbName); Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -26,7 +26,6 @@ import org.nuiton.wikitty.query.WikittyQueryParser; import org.nuiton.wikitty.query.WikittyQueryResult; import org.nuiton.wikitty.query.conditions.Aggregate; -import org.nuiton.wikitty.query.conditions.Element; import org.nuiton.wikitty.query.conditions.ElementField; /** Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java 2012-01-07 16:50:21 UTC (rev 1299) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java 2012-01-07 20:40:21 UTC (rev 1300) @@ -40,6 +40,7 @@ */ public class WikittyServiceSolr extends WikittyServiceStorage { public WikittyServiceSolr(ApplicationConfig config) { + super(config); extensionStorage = new WikittyExtensionStorageInMemory(); wikittyStorage = new WikittyStorageInMemory(); searchEngine = new WikittySearchEngineSolr(config, extensionStorage);
participants (1)
-
bpoussin@users.nuiton.org