Author: sletellier Date: 2011-04-27 18:09:14 +0200 (Wed, 27 Apr 2011) New Revision: 8 Url: http://chorem.org/repositories/revision/vradi/8 Log: - Up to nuiton-utils 2.1.2 - VradiConfig become a factory - Up to wikitty 3.1 - Remove lucene dependency Modified: trunk/pom.xml trunk/vradi-services/pom.xml trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceAction.java trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceMain.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/FileServiceImpl.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceFactory.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestAbstract.java trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestConfiguration.java trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiAction.java trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfigHelper.java trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiContext.java trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java trunk/vradi-swing/src/main/java/org/chorem/vradi/services/VradiService.java trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/ChangeLogHandler.java trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUI.jaxx trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUIHandler.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/pom.xml 2011-04-27 16:09:14 UTC (rev 8) @@ -111,11 +111,11 @@ <!-- libraries version --> <jaxxVersion>2.4</jaxxVersion> - <nuitonUtilsVersion>2.1.1</nuitonUtilsVersion> + <nuitonUtilsVersion>2.1.2</nuitonUtilsVersion> <nuitonI18nVersion>2.3.2</nuitonI18nVersion> <nuitonWidgetVersion>1.1</nuitonWidgetVersion> <generatorPluginVersion>2.3.3</generatorPluginVersion> - <wikittyVersion>3.0.5</wikittyVersion> + <wikittyVersion>3.1</wikittyVersion> <oooVersion>3.2.1</oooVersion> <javamailVersion>1.4.3</javamailVersion> <slf4jVersion>1.6.1</slf4jVersion> @@ -249,12 +249,12 @@ </dependency> <dependency> <groupId>org.nuiton.wikitty</groupId> - <artifactId>wikitty-jdbc-impl</artifactId> + <artifactId>wikitty-jdbc</artifactId> <version>${wikittyVersion}</version> </dependency> <dependency> <groupId>org.nuiton.wikitty</groupId> - <artifactId>wikitty-solr-impl</artifactId> + <artifactId>wikitty-solr</artifactId> <version>${wikittyVersion}</version> </dependency> <dependency> @@ -264,13 +264,6 @@ </dependency> <dependency> - <groupId>org.apache.lucene</groupId> - <artifactId>lucene-core</artifactId> - <version>2.9.3</version> - <scope>compile</scope> - </dependency> - - <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-core</artifactId> <version>0.8</version> Modified: trunk/vradi-services/pom.xml =================================================================== --- trunk/vradi-services/pom.xml 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/pom.xml 2011-04-27 16:09:14 UTC (rev 8) @@ -77,21 +77,16 @@ <dependency> <groupId>org.nuiton.wikitty</groupId> - <artifactId>wikitty-jdbc-impl</artifactId> + <artifactId>wikitty-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.nuiton.wikitty</groupId> - <artifactId>wikitty-solr-impl</artifactId> + <artifactId>wikitty-solr</artifactId> </dependency> <dependency> - <groupId>org.apache.lucene</groupId> - <artifactId>lucene-core</artifactId> - </dependency> - - <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceAction.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceAction.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceAction.java 2011-04-27 16:09:14 UTC (rev 8) @@ -216,7 +216,7 @@ System.exit(0); } - /** Import files contains in {@link VradiServiceConfigurationHelper#getImportCSVDir} with name end by .csv */ + /** Import files contains in {@link VradiServiceConfigurationHelper#getImportCSVDir(org.nuiton.util.ApplicationConfig)} with name end by .csv */ public static void importFiles() { log.info("Starting import files"); @@ -329,6 +329,6 @@ } protected static ApplicationConfig getConfig() { - return VradiServiceConfiguration.getInstance(); + return VradiServiceConfiguration.getConfig(); } } Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java 2011-04-27 16:09:14 UTC (rev 8) @@ -25,14 +25,15 @@ package org.chorem.vradi; -import org.apache.commons.lang.UnhandledException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; -import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.util.ArgumentsParserException; +import org.nuiton.wikitty.WikittyConfigOption; import java.io.File; import java.util.Locale; +import java.util.Properties; import static org.nuiton.i18n.I18n._; @@ -43,7 +44,7 @@ * @version $Revision$ $Date$ * @since 26 mars 2010 21:18:08 */ -public class VradiServiceConfiguration extends ApplicationConfig { +public class VradiServiceConfiguration { /** log. */ private static final Log log = LogFactory.getLog(VradiServiceConfiguration.class); @@ -52,7 +53,7 @@ public static final int STEP_AFTER_INIT = 0; /** Singleton instance. */ - protected static VradiServiceConfiguration instance = null; + protected static ApplicationConfig config = null; public static final String DATA_DEFAULT_DIR = "${user.home}" + File.separator + ".vradi" + File.separator + "vradi-${application.version}"; @@ -79,61 +80,82 @@ public static final String WEB_HARVERT_SCRIPT_PREVIEW_DEFAULT_DIR_NAME = "WebHarvestPreview"; - protected VradiServiceConfiguration() { - // Load defaults wikitty options - loadDefaultOptions(WikittyConfig.WikittyOption.class); + private VradiServiceConfiguration() { + } - // Load defaults vradi options - loadDefaultOptions(VradiServiceOption.class); - - // Load actions - loadActions(VradiServiceActionDef.class); + public static ApplicationConfig getConfig(String ... args) { + return getConfig(null, args); } - /** - * Set {@code solr} and {@code jms} system configuration. - * <p/> - * This is the "only" way to configure embedded solr. - */ - protected void setSystemDefaultProps() { - String[] datadirs = new String[]{"solr.data.dir", "wikitty.searchengine.solr.directory.data", "vradi.objectStore.dir"}; + public static ApplicationConfig getConfig(Properties defaults, String ... args) { - for (String datadir : datadirs) { - String value = System.getProperty(datadir, null); - if (value == null) { - value = getOption(datadir); - if (log.isInfoEnabled()) { - log.info("Setting system property " + datadir + " : " + value); - } - if (value != null) { - System.setProperty(datadir, value); - env.put(datadir, value); - } - } - } - } + if (config == null) { + config = new ApplicationConfig(null, null, defaults, VradiServiceOption.CONFIG_FILE.getDefaultValue()); - public static synchronized VradiServiceConfiguration getInstance(String... args) { - if (instance == null) { + // Load wikitty options + config.loadDefaultOptions(WikittyConfigOption.class); + + // Load vradi service option + config.loadDefaultOptions(VradiServiceOption.class); + + // Load vradi service action + config.loadActions(VradiServiceActionDef.class); try { - instance = new VradiServiceConfiguration(); - instance.parse(args); - instance.setSystemDefaultProps(); - } catch (Exception ex) { + // Parse args + config.parse(args); + } catch (ArgumentsParserException eee) { if (log.isErrorEnabled()) { - log.error("Can't intitialize configuration", ex); + log.error("Can't load vradi configuration", eee); } - throw new UnhandledException(ex); } } - return instance; + return config; } + /** + * Set {@code solr} and {@code jms} system configuration. + * <p/> + * This is the "only" way to configure embedded solr. + */ +// protected void setSystemDefaultProps() { +// String[] datadirs = new String[]{"solr.data.dir", "wikitty.searchengine.solr.directory.data", "vradi.objectStore.dir"}; +// +// for (String datadir : datadirs) { +// String value = System.getProperty(datadir, null); +// if (value == null) { +// value = getOption(datadir); +// if (log.isInfoEnabled()) { +// log.info("Setting system property " + datadir + " : " + value); +// } +// if (value != null) { +// System.setProperty(datadir, value); +// env.put(datadir, value); +// } +// } +// } +// } + +// public static synchronized VradiServiceConfiguration getInstance(String... args) { +// if (instance == null) { +// try { +// instance = new VradiServiceConfiguration(); +// instance.parse(args); +// instance.setSystemDefaultProps(); +// } catch (Exception ex) { +// if (log.isErrorEnabled()) { +// log.error("Can't intitialize configuration", ex); +// } +// throw new UnhandledException(ex); +// } +// } +// return instance; +// } + /** Vradi option definition. */ - public static enum VradiServiceOption implements OptionDef { + public static enum VradiServiceOption implements ApplicationConfig.OptionDef { CONFIG_FILE( - CONFIG_FILE_NAME, + ApplicationConfig.CONFIG_FILE_NAME, _("vradi.service.config.configFileName.description"), "vradi-services.properties", String.class, true, true), @@ -374,7 +396,7 @@ * * @author sletellier <letellier@codelutin.com> */ - public enum VradiServiceActionDef implements ActionDef { + public enum VradiServiceActionDef implements ApplicationConfig.ActionDef { HELP( VradiServiceAction.class.getName() + "#help", Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java 2011-04-27 16:09:14 UTC (rev 8) @@ -27,6 +27,7 @@ import org.nuiton.util.ApplicationConfig; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyConfigOption; import java.io.File; import java.util.ArrayList; @@ -221,18 +222,18 @@ * TODO sletellier 22/11/10 : Move this in wikitty */ public static void setWikittyEventPropagate(ApplicationConfig config, boolean b) { - config.setOption(WikittyConfig.WikittyOption.WIKITTY_EVENT_PROPAGATE.key, String.valueOf(b)); + config.setOption(WikittyConfigOption.WIKITTY_EVENT_PROPAGATE.key, String.valueOf(b)); } public static Boolean getWikittyEventPropagate(ApplicationConfig config) { - return config.getOptionAsBoolean(WikittyConfig.WikittyOption.WIKITTY_EVENT_PROPAGATE.key); + return config.getOptionAsBoolean(WikittyConfigOption.WIKITTY_EVENT_PROPAGATE.key); } public static String getWikittyEventTransporterXMPPServer(ApplicationConfig config) { - return config.getOption(WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER_XMPP_SERVER.key); + return config.getOption(WikittyConfigOption.WIKITTY_EVENT_TRANSPORTER_XMPP_SERVER.key); } public static String getWikittyEventTransporterXMPPRoom(ApplicationConfig config) { - return config.getOption(WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER_XMPP_ROOM.key); + return config.getOption(WikittyConfigOption.WIKITTY_EVENT_TRANSPORTER_XMPP_ROOM.key); } } Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceMain.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceMain.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceMain.java 2011-04-27 16:09:14 UTC (rev 8) @@ -28,6 +28,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; +import org.nuiton.util.ApplicationConfig; /** * This module do nothing except with options : @@ -44,7 +45,7 @@ public static void main(String[] args) { // Initialise config - VradiServiceConfiguration config = VradiServiceConfiguration.getInstance(args); + ApplicationConfig config = VradiServiceConfiguration.getConfig(args); I18n.setDefaultLocale(VradiServiceConfigurationHelper.getLocale(config)); try { Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/FileServiceImpl.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/FileServiceImpl.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/FileServiceImpl.java 2011-04-27 16:09:14 UTC (rev 8) @@ -47,7 +47,7 @@ protected ApplicationConfig config; public FileServiceImpl() { - this(VradiServiceConfiguration.getInstance()); + this(VradiServiceConfiguration.getConfig()); } public FileServiceImpl(ApplicationConfig config) { Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceFactory.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceFactory.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceFactory.java 2011-04-27 16:09:14 UTC (rev 8) @@ -79,7 +79,7 @@ /** Single instance of wikitty proxy. */ protected static WikittyProxy wikittyProxy; - protected static VradiServiceConfiguration config; + protected static ApplicationConfig config; static { @@ -89,7 +89,7 @@ try { ConverterUtil.initConverters(); - config = VradiServiceConfiguration.getInstance(); + config = VradiServiceConfiguration.getConfig(); I18n.setDefaultLocale(VradiServiceConfigurationHelper.getLocale(config)); } catch (Exception eee) { log.error("Cant initialize Service factory : ", eee); Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java 2011-04-27 16:09:14 UTC (rev 8) @@ -353,7 +353,9 @@ } // Remove snapshot if exist - currentVersionAsString = VersionUtil.removeSnapshot(currentVersionAsString); + if (currentVersionAsString != null) { + currentVersionAsString = VersionUtil.removeSnapshot(currentVersionAsString); + } if (lastVersionAsString != null) { lastVersionAsString = VersionUtil.removeSnapshot(lastVersionAsString); Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java 2011-04-27 16:09:14 UTC (rev 8) @@ -110,7 +110,7 @@ * @param wikittyProxy wikitty proxy */ public VradiDataServiceImpl(WikittyProxy wikittyProxy) { - this(VradiServiceConfiguration.getInstance(), wikittyProxy); + this(VradiServiceConfiguration.getConfig(), wikittyProxy); } /** Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-04-27 16:09:14 UTC (rev 8) @@ -117,7 +117,7 @@ /** Remote instantiation and empty constructor for hessian. */ public VradiStorageServiceImpl() { - this(VradiServiceConfiguration.getInstance(), ServiceFactory.getWikittyProxy()); + this(VradiServiceConfiguration.getConfig(), ServiceFactory.getWikittyProxy()); } /** @@ -153,7 +153,7 @@ */ protected WikittyImportExportService getImportExportService() { if (importExportService == null) { - VradiServiceConfiguration config = VradiServiceConfiguration.getInstance(); + ApplicationConfig config = VradiServiceConfiguration.getConfig(); importExportService = new WikittyImportExportService( config, Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-04-27 16:09:14 UTC (rev 8) @@ -50,6 +50,7 @@ import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.search.TreeNodeResult; import org.nuiton.wikitty.search.operators.Element; import org.nuiton.wikitty.search.operators.Like; import org.nuiton.wikitty.storage.solr.WikittySolrConstant; @@ -60,6 +61,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -202,8 +204,14 @@ buildSearch(queryParsed, search); Criteria criteria = search.criteria(); - Map<Thesaurus, Integer> results = wikittyProxy.findTreeNode(Thesaurus.class, thesaurusId, criteria); - return results; + // TODO sletellier 20110427 : use directly TreeNodeResult in cartography + TreeNodeResult<Thesaurus> tree = wikittyProxy.findTreeNode(Thesaurus.class, thesaurusId, 1, true, criteria); + + Map<Thesaurus, Integer> result = new LinkedHashMap<Thesaurus, Integer>(); + for (TreeNodeResult<Thesaurus> child : tree.getChildren()) { + result.put(child.getObject(), child.getAttCount()); + } + return result; } public Map<Group, List<QueryBean>> findQueriesReturningForm(String formId) Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java 2011-04-27 16:09:14 UTC (rev 8) @@ -44,10 +44,12 @@ import org.nuiton.wikitty.search.FacetTopic; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.search.TreeNodeResult; import org.nuiton.wikitty.search.operators.Element; import org.nuiton.wikitty.search.operators.Like; import org.nuiton.wikitty.services.WikittyEvent; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -202,14 +204,18 @@ log.trace("getNbFormsForThesaurus(" + thesaurusId + ")"); } - Map.Entry<Thesaurus, Integer> entry = - wikittyProxy.restoreNode(Thesaurus.class, thesaurusId, null); +// Map.Entry<Thesaurus, Integer> entry = +// wikittyProxy.restoreNode(Thesaurus.class, thesaurusId, null); +// +// if (entry == null) { +// return 0; +// } +// return entry.getValue(); - if (entry == null) { - return 0; - } + // FIXME sletellier 20110427: verify that return same result + TreeNodeResult<Thesaurus> tree = wikittyProxy.findTreeNode(Thesaurus.class, thesaurusId, 0, true, null); - return entry.getValue(); + return tree.getAttCount(); } /** Modified: trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestAbstract.java =================================================================== --- trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestAbstract.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestAbstract.java 2011-04-27 16:09:14 UTC (rev 8) @@ -61,6 +61,7 @@ import org.nuiton.util.Resource; import org.nuiton.util.converter.ConverterUtil; import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyConfigOption; import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.entities.BusinessEntity; import org.nuiton.wikitty.entities.FieldType; @@ -103,9 +104,9 @@ ConverterUtil.initConverters(); // static call : init - VradiServiceConfiguration instance = VradiTestConfiguration.getInstance(); + ApplicationConfig instance = VradiTestConfiguration.getConfig(); - instance.setSystemDefaultProps(); +// instance.setSystemDefaultProps(); // Create tmpdir if not exist String tmpdir = System.getProperty("java.io.tmpdir"); @@ -121,7 +122,7 @@ } // set data dir configuration - instance.setOption(WikittyConfig.WikittyOption.WIKITTY_DATA_DIR.key, + instance.setOption(WikittyConfigOption.WIKITTY_DATA_DIR.key, dataDirectory.getAbsolutePath()); if (log.isInfoEnabled()) { @@ -138,7 +139,7 @@ public void clear() throws Exception { log.debug("--clear-----------------------------------------"); - config = VradiTestConfiguration.getInstance(); + config = VradiTestConfiguration.getConfig(); storageService = ServiceFactory.getVradiStorageService(); wikittyProxy = ServiceFactory.getWikittyProxy(); Modified: trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestConfiguration.java =================================================================== --- trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestConfiguration.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-services/src/test/java/org/chorem/vradi/VradiTestConfiguration.java 2011-04-27 16:09:14 UTC (rev 8) @@ -27,7 +27,9 @@ import org.apache.commons.lang.UnhandledException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyConfigOption; import java.io.InputStream; import java.util.Locale; @@ -42,16 +44,18 @@ * Last update : $Date$ * By : $Author$ */ -public class VradiTestConfiguration extends VradiServiceConfiguration { +public class VradiTestConfiguration { /** log. */ private static final Log log = LogFactory.getLog(VradiTestConfiguration.class); + private static ApplicationConfig config; + /* * Overwrite getInstance to setup a Test specific one. */ - public static synchronized VradiServiceConfiguration getInstance() { - if (instance == null) { + public static synchronized ApplicationConfig getConfig() { + if (config == null) { // Be sure to not read other config files InputStream input = VradiServiceConfiguration.class.getResourceAsStream("/vradi-services.properties"); @@ -61,22 +65,22 @@ } catch (Exception e) { throw new UnhandledException(e); } - instance = new VradiServiceConfiguration(); + config = VradiServiceConfiguration.getConfig(options); // set wikitty option as default - for (WikittyConfig.WikittyOption o : WikittyConfig.WikittyOption.values()) { + for (WikittyConfigOption o : WikittyConfigOption.values()) { if (o.getDefaultValue() != null) { - instance.setOption(o.getKey(), o.getDefaultValue()); + config.setOption(o.getKey(), o.getDefaultValue()); } } // Set vradi condig test options - instance.setOptions(options); + config.setOptions(options); // fix locale during test - VradiServiceConfigurationHelper.setLocale(instance, Locale.FRANCE); + VradiServiceConfigurationHelper.setLocale(config, Locale.FRANCE); } - return instance; + return config; } Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiAction.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiAction.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiAction.java 2011-04-27 16:09:14 UTC (rev 8) @@ -28,6 +28,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; +import org.nuiton.util.ApplicationConfig; import java.util.Arrays; @@ -38,12 +39,12 @@ static private Log log = LogFactory.getLog(VradiAction.class); /** La configuration de l'application. */ - protected VradiConfig config; + protected ApplicationConfig config; public VradiAction() { } - public VradiAction(VradiConfig config) { + public VradiAction(ApplicationConfig config) { this.config = config; } @@ -96,10 +97,10 @@ } } - protected VradiConfig getConfig() { + protected ApplicationConfig getConfig() { if (config == null) { VradiContext context = VradiContext.get(); - config = context.getContextValue(VradiConfig.class); + config = context.getContextValue(ApplicationConfig.class); } return config; } Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java 2011-04-27 16:09:14 UTC (rev 8) @@ -25,17 +25,14 @@ package org.chorem.vradi; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.context.DefaultApplicationContext.AutoLoad; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; import org.nuiton.util.ArgumentsParserException; import org.nuiton.util.Version; import org.nuiton.util.VersionUtil; -import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyConfigOption; -import java.beans.PropertyChangeListener; import java.io.File; import java.util.Locale; @@ -52,86 +49,80 @@ * Last update : $Date$ * By : $Author$ */ -@AutoLoad -public class VradiConfig extends ApplicationConfig { +public class + VradiConfig { + /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(VradiConfig.class); /** Un drapeau pour savoir si on est en mode pleine écran. */ protected boolean fullscreen; + private static ApplicationConfig config; + /** * Constructor. * <p/> * Init default options and actions. */ - public VradiConfig() { + private VradiConfig() { + } - // Load default value for wikitty - loadDefaultOptions(WikittyConfig.WikittyOption.class); + public static ApplicationConfig getConfig(String... args) { - // init configuration with default options - loadDefaultOptions(VradiSwingOption.class); + if (config == null) { - loadActions(VradiSwingAction.class); + // Creating instance of ApplicationConfig + config = new ApplicationConfig(VradiSwingOption.CONFIG_FILE.getDefaultValue()); - } + // Load service options + config.loadDefaultOptions(VradiServiceConfiguration.VradiServiceOption.class); - @Override - protected void firePropertyChange(String propertyName, - Object oldValue, Object newValue) { - super.firePropertyChange(propertyName, oldValue, newValue); - } + // Load wikitty options + config.loadDefaultOptions(WikittyConfigOption.class); - /** Overwrite to manage version after parsing. */ - @Override - public void parse(String[] args) throws ArgumentsParserException { - super.parse(args); + // Load vradi options + config.loadDefaultOptions(VradiSwingOption.class); - // on supprime le stamp de snapshot s'il existe - String sVersion = VersionUtil.removeSnapshot(getOption("application.version")); - Version version = VersionUtil.valueOf(sVersion); - setDefaultOption(VradiSwingOption.VRADI_VERSION.key, version.getVersion()); + // Load vradi actions + config.loadActions(VradiSwingAction.class); + try { + // Parse args + config.parse(args); - // la version de la base est sans classifier (pas de alpha, ou rc,...) - Version dbVersion; - if (version.hasClassifier()) { - dbVersion = VersionUtil.removeClassifier(version); - } else { - dbVersion = VersionUtil.valueOf(version.toString()); - } + // on supprime le stamp de snapshot s'il existe + String sVersion = VersionUtil.removeSnapshot(config.getOption("application.version")); + Version version = VersionUtil.valueOf(sVersion); + config.setDefaultOption(VradiSwingOption.VRADI_VERSION.key, version.getVersion()); - setDefaultOption(VradiSwingOption.VRADI_DATABASE_VERSION.key, dbVersion.getVersion()); + // la version de la base est sans classifier (pas de alpha, ou rc,...) + Version dbVersion; + if (version.hasClassifier()) { + dbVersion = VersionUtil.removeClassifier(version); + } else { + dbVersion = VersionUtil.valueOf(version.toString()); + } + + config.setDefaultOption(VradiSwingOption.VRADI_DATABASE_VERSION.key, dbVersion.getVersion()); + } catch (ArgumentsParserException eee) { + if (log.isErrorEnabled()) { + log.error("Can't load vradi configuration", eee); + } + } + } + return config; } protected static final String[] DEFAULT_JAXX_PCS = { "showNumberEditorButton", "autoPopupNumberEditor", "fullScreen", "locale" }; - /** TODO EC20100519 used by ? */ - public void removeJaxxPropertyChangeListener() { - PropertyChangeListener[] toRemove = SwingUtil.findJaxxPropertyChangeListener(DEFAULT_JAXX_PCS, getPropertyChangeListeners()); - if (toRemove == null || toRemove.length == 0) { - return; - } - if (log.isDebugEnabled()) { - log.debug("before remove : " + getPropertyChangeListeners().length); - log.debug("toRemove : " + toRemove.length); - } - for (PropertyChangeListener listener : toRemove) { - removePropertyChangeListener(listener); - } - if (log.isDebugEnabled()) { - log.debug("after remove : " + getPropertyChangeListeners().length); - } - } - /** Vradi option enum. */ - public enum VradiSwingOption implements OptionDef { + public enum VradiSwingOption implements ApplicationConfig.OptionDef { CONFIG_FILE( - CONFIG_FILE_NAME, + ApplicationConfig.CONFIG_FILE_NAME, _("vradi.config.configFileName.description"), "vradi.properties", String.class, true, true), @@ -312,7 +303,7 @@ AfterInit, BeforeExit } - public enum VradiSwingAction implements ActionDef { + public enum VradiSwingAction implements ApplicationConfig.ActionDef { HELP(_("vradi.action.commandline.help"), VradiAction.class.getName() + "#help", "-h", "--help"), HELP_UI(_("vradi.action.commandline.help.ui"), VradiAction.class.getName() + "#helpUI", "--help-ui"), Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfigHelper.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfigHelper.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfigHelper.java 2011-04-27 16:09:14 UTC (rev 8) @@ -59,12 +59,23 @@ * @return la version de l'application. */ public static Version getVersion(ApplicationConfig config) { - Version option = config.getOption(Version.class, VradiConfig.VradiSwingOption.VRADI_VERSION.key); + Version option = config.getOptionAsVersion(VradiConfig.VradiSwingOption.VRADI_VERSION.key); return option; } /** + * La version du logiciel. + * * @param config vradi swing configuration + * @return la version de l'application. + */ + public static String getVersionAsString(ApplicationConfig config) { + String version = config.getOption(VradiConfig.VradiSwingOption.VRADI_VERSION.key); + return version; + } + + /** + * @param config vradi swing configuration * @return la version de la base */ public static Version getDatabaseVersion(ApplicationConfig config) { @@ -103,17 +114,15 @@ return result; } - public static void setFullscreen(VradiConfig config, boolean fullscreen) { + public static void setFullscreen(ApplicationConfig config, boolean fullscreen) { boolean oldValue = isFullScreen(config); config.setOption(VradiConfig.VradiSwingOption.FULL_SCREEN.key, fullscreen + ""); config.saveForUser(); - config.firePropertyChange("fullscreen", oldValue, fullscreen); } - public static void setLocale(VradiConfig config, Locale newLocale) { + public static void setLocale(ApplicationConfig config, Locale newLocale) { config.setOption(VradiConfig.VradiSwingOption.LOCALE.key, newLocale.toString()); config.saveForUser(); - config.firePropertyChange("locale", null, newLocale); } /** @@ -152,7 +161,7 @@ * @param config vradi swing configuration * @param password user password */ - public static void setPassword(VradiConfig config, String password) { + public static void setPassword(ApplicationConfig config, String password) { config.setOption(VradiConfig.VradiSwingOption.PASSWORD.key, password); } Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiContext.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiContext.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiContext.java 2011-04-27 16:09:14 UTC (rev 8) @@ -36,6 +36,7 @@ import org.chorem.vradi.ui.admin.AdminPopupUI; import org.chorem.vradi.ui.email.EmailPopupUI; import org.chorem.vradi.ui.offer.OfferListUI; +import org.nuiton.util.ApplicationConfig; import org.nuiton.widget.SwingSession; import java.util.List; @@ -142,8 +143,8 @@ clear(); } - public VradiConfig getVradiConfig() { - return getContextValue(VradiConfig.class); + public ApplicationConfig getVradiConfig() { + return getContextValue(ApplicationConfig.class); } /** Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java 2011-04-27 16:09:14 UTC (rev 8) @@ -40,6 +40,7 @@ import org.chorem.vradi.services.VradiException; import org.chorem.vradi.services.VradiService; import org.chorem.vradi.services.search.UnsupportedQueryException; +import org.nuiton.util.ApplicationConfig; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.addons.WikittyI18nUtil; @@ -99,7 +100,7 @@ // Singleton sur les proprietes //public static Properties userProperties = null; - public static VradiConfig getVradiConfig() { + public static ApplicationConfig getVradiConfig() { return VradiContext.get().getVradiConfig(); } @@ -823,7 +824,7 @@ } public static Locale getCurrentLocale() { - VradiConfig config = VradiContext.get().getVradiConfig(); + ApplicationConfig config = VradiContext.get().getVradiConfig(); return VradiConfigHelper.getLocale(config); } Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java 2011-04-27 16:09:14 UTC (rev 8) @@ -58,6 +58,7 @@ import org.nuiton.i18n.bundle.I18nBundle; import org.nuiton.i18n.bundle.I18nBundleEntry; import org.nuiton.i18n.init.DefaultI18nInitializer; +import org.nuiton.util.ApplicationConfig; import org.nuiton.util.StringUtil; import org.nuiton.util.converter.ConverterUtil; import org.nuiton.wikitty.entities.WikittyExtension; @@ -91,10 +92,10 @@ final VradiContext context = init(args); log.info(_("vradi.init.context.done", StringUtil.convertTime(startingTime, System.nanoTime()))); - SwingUtil.checkJAXXContextEntry(context, SwingUtil.newContextEntryDef(VradiConfig.class)); + SwingUtil.checkJAXXContextEntry(context, SwingUtil.newContextEntryDef(ApplicationConfig.class)); SwingUtil.checkJAXXContextEntry(context, SwingUtil.newContextEntryDef(VradiAction.class)); - final VradiConfig config = context.getContextValue(VradiConfig.class); + final ApplicationConfig config = context.getContextValue(ApplicationConfig.class); config.doAction(VradiConfig.Step.AfterInit.ordinal()); final LoginHandler handler = UIHelper.getHandler(context, LoginHandler.class); @@ -232,8 +233,8 @@ context.setContextValue(new NumberListCellRenderer()); // init config - VradiConfig config = context.getContextValue(VradiConfig.class); - config.parse(args); + ApplicationConfig config = VradiConfig.getConfig(args); + context.setContextValue(config); long t00 = System.nanoTime(); @@ -246,7 +247,7 @@ log.debug("i18n loading time : " + StringUtil.convertTime(t00, System.nanoTime())); } - log.info(_("vradi.message.config.loaded", VradiConfigHelper.getVersion(config))); + log.info(_("vradi.message.config.loaded", VradiConfigHelper.getVersionAsString(config))); // prepare ui look&feel and load ui properties try { Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/services/VradiService.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/services/VradiService.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/services/VradiService.java 2011-04-27 16:09:14 UTC (rev 8) @@ -70,7 +70,7 @@ * * @param configuration configuration */ - public static void initServiceProxies(VradiConfig configuration) { + public static void initServiceProxies(ApplicationConfig configuration) { String serviceEndpoint = VradiConfigHelper.getRemoteEndpoint(configuration); @@ -125,7 +125,6 @@ * Create a new wikitty service with cache support that use * provided WikittyService for non cached data. * - * @param wikittyServiceRemote remote wikitty service * @param configuration vradi server configuration * @return local wikitty service */ Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/ChangeLogHandler.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/ChangeLogHandler.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/ChangeLogHandler.java 2011-04-27 16:09:14 UTC (rev 8) @@ -28,10 +28,10 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.vradi.VradiConfig; import org.chorem.vradi.VradiConfigHelper; import org.chorem.vradi.VradiContext; import org.chorem.vradi.VradiHelper; +import org.nuiton.util.ApplicationConfig; import java.io.IOException; import java.io.InputStream; @@ -90,7 +90,7 @@ } } } - VradiConfig config = VradiContext.get().getVradiConfig(); + ApplicationConfig config = VradiContext.get().getVradiConfig(); VradiConfigHelper.setLastVersion(config, lastVersion); config.saveForUser(); } Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUI.jaxx =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUI.jaxx 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUI.jaxx 2011-04-27 16:09:14 UTC (rev 8) @@ -33,13 +33,13 @@ org.chorem.vradi.VradiContext org.chorem.vradi.VradiConfigHelper - org.chorem.vradi.VradiConfig + org.nuiton.util.ApplicationConfig org.chorem.vradi.ui.models.FormMenu </import> <script><![CDATA[ -VradiConfig getConfig() { - return getContextValue(VradiConfig.class); +ApplicationConfig getConfig() { + return getContextValue(ApplicationConfig.class); } public VradiMainUIHandler getHandler() { Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUIHandler.java =================================================================== --- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUIHandler.java 2011-04-22 14:19:33 UTC (rev 7) +++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/VradiMainUIHandler.java 2011-04-27 16:09:14 UTC (rev 8) @@ -50,6 +50,7 @@ import org.chorem.vradi.ui.offer.OfferListUI; import org.chorem.vradi.ui.task.VradiTask; import org.nuiton.i18n.I18n; +import org.nuiton.util.ApplicationConfig; import org.nuiton.util.TimeLog; import org.nuiton.widget.SwingSession; import org.nuiton.wikitty.WikittyProxy; @@ -101,7 +102,7 @@ JAXXInitialContext context = new JAXXInitialContext().add(rootContext); // Init swingSession - VradiConfig config = VradiContext.get().getVradiConfig(); + ApplicationConfig config = VradiContext.get().getVradiConfig(); SwingSession swingSession = new SwingSession(VradiConfigHelper.getSwingConfigFile(config), false); VradiContext.SWING_SESSION_ENTRY_DEF.setContextValue(VradiContext.get(), swingSession); @@ -153,7 +154,7 @@ Icon menuFileLanguageIcon = SwingUtil.getUIManagerActionIcon("i18n-" + language); JMenuItem menuFileLanguage = new JMenuItem(_("vradi.action.locale." + language), menuFileLanguageIcon); menuFileLanguage.setToolTipText(_("vradi.action.locale." + language + ".tip")); - VradiConfig config = VradiContext.get().getVradiConfig(); + ApplicationConfig config = VradiContext.get().getVradiConfig(); menuFileLanguage.setEnabled(!acceptLocale(VradiConfigHelper.getLocale(config), "fr_FR")); menuFileLanguage.addActionListener(new ActionListener() { @@ -187,7 +188,7 @@ } public void changeLanguage(VradiMainUI mainUI, Locale newLocale) { - VradiConfig config = mainUI.getConfig(); + ApplicationConfig config = mainUI.getConfig(); // sauvegarde de la nouvelle locale VradiConfigHelper.setLocale(config, newLocale); // chargement de la nouvelle locale dans le système i18n @@ -369,7 +370,7 @@ public void showConfig(JAXXContext context) { VradiMainUI ui = getUI(context); - VradiConfig config = context.getContextValue(VradiConfig.class); + ApplicationConfig config = context.getContextValue(ApplicationConfig.class); // categorie repertoires ConfigUIHelper modelBuilder = new ConfigUIHelper(config); @@ -430,7 +431,7 @@ public void gotoSite(JAXXContext rootContext) { - VradiConfig config = rootContext.getContextValue(VradiConfig.class); + ApplicationConfig config = rootContext.getContextValue(ApplicationConfig.class); URL siteURL = config.getOptionAsURL("application.site.url"); @@ -500,7 +501,7 @@ protected void reloadUI(VradiContext rootContext, boolean fullscreen) { // must remove all properties listener on config - rootContext.getContextValue(VradiConfig.class).removeJaxxPropertyChangeListener(); +// rootContext.getContextValue(VradiConfig.class).removeJaxxPropertyChangeListener(); // scan main ui VradiMainUI ui = getUI(rootContext);