Author: bpoussin Date: 2013-02-22 23:06:13 +0100 (Fri, 22 Feb 2013) New Revision: 1537 Url: http://nuiton.org/projects/wikitty/repository/revisions/1537 Log: si on ajoute des variables d'environnement pour configurer SolR, on les supprime une fois solr initialise (sinon, on laisse des choses qui ne permette pas de reinitialise un autre solr convenablement plus tard) Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java =================================================================== --- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2013-02-22 22:04:56 UTC (rev 1536) +++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2013-02-22 22:06:13 UTC (rev 1537) @@ -116,20 +116,26 @@ public WikittySearchEngineSolr( ApplicationConfig config, WikittyExtensionStorage extensionStorage) { + boolean removeSystemSolrDirFactoryKey = false; + String solrDirFactoryKey = null; + boolean removeSystemSolrDataDirKey = false; + String solrDataDirKey = null; + // init system env solr.data.dir if (config != null) { this.config = config; // choix du storage (file or Ram) - String solrDirFactoryKey = + solrDirFactoryKey = WikittyConfigOption.WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_FACTORY.getKey(); String solrDirFactory = config.getOption(solrDirFactoryKey); if (solrDirFactory != null) { + removeSystemSolrDirFactoryKey = null == System.getProperty(solrDirFactoryKey); System.setProperty(solrDirFactoryKey, solrDirFactory); } // on utilise le directory que si on est pas en Ram if (solrDirFactory != null && !solrDirFactory.contains("RAMDirectoryFactory")) { - String solrDataDirKey = + solrDataDirKey = WikittyConfigOption.WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_DATA.getKey(); String solrDataDir = config.getOption(solrDataDirKey); // make sure that dir exists @@ -140,6 +146,7 @@ "Can't create directory '%s'", solrDataDir)); } log.info(String.format("Use SolR directory '%s'", solrDataDir)); + removeSystemSolrDataDirKey = null == System.getProperty(solrDataDirKey); System.setProperty(solrDataDirKey, solrDataDir); } } @@ -157,6 +164,14 @@ } catch (Exception eee) { throw new WikittyException("SolR initialization error", eee); } + + if (removeSystemSolrDirFactoryKey) { + System.clearProperty(solrDirFactoryKey); + } + if (removeSystemSolrDataDirKey) { + System.clearProperty(solrDataDirKey); + } + } public ApplicationConfig getConfig() {