You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2013/03/14 16:04:38 UTC
svn commit: r1456466 - in /lucene/dev/branches/branch_4x: ./ dev-tools/
lucene/ lucene/analysis/
lucene/analysis/icu/src/java/org/apache/lucene/collation/ lucene/backwards/
lucene/benchmark/ lucene/classification/ lucene/classification/src/
lucene/code...
Author: erick
Date: Thu Mar 14 15:04:37 2013
New Revision: 1456466
URL: http://svn.apache.org/r1456466
Log:
Fix for SOLR-4543, setting shardHandlerFactory in solr.xml/solr.properties does not work
Added:
lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/solr-shardhandler.properties
- copied unchanged from r1456433, lucene/dev/trunk/solr/core/src/test-files/solr/solr-shardhandler.properties
lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/solr-shardhandler.xml
- copied unchanged from r1456433, lucene/dev/trunk/solr/core/src/test-files/solr/solr-shardhandler.xml
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/MockShardHandlerFactory.java
- copied unchanged from r1456433, lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/MockShardHandlerFactory.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java
- copied unchanged from r1456433, lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/dev-tools/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/BUILD.txt (props changed)
lucene/dev/branches/branch_4x/lucene/CHANGES.txt (props changed)
lucene/dev/branches/branch_4x/lucene/JRE_VERSION_MIGRATION.txt (props changed)
lucene/dev/branches/branch_4x/lucene/LICENSE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/MIGRATE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/README.txt (props changed)
lucene/dev/branches/branch_4x/lucene/SYSTEM_REQUIREMENTS.txt (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/ (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/icu/src/java/org/apache/lucene/collation/ICUCollationKeyFilterFactory.java (props changed)
lucene/dev/branches/branch_4x/lucene/backwards/ (props changed)
lucene/dev/branches/branch_4x/lucene/benchmark/ (props changed)
lucene/dev/branches/branch_4x/lucene/build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/classification/ (props changed)
lucene/dev/branches/branch_4x/lucene/classification/build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/classification/ivy.xml (props changed)
lucene/dev/branches/branch_4x/lucene/classification/src/ (props changed)
lucene/dev/branches/branch_4x/lucene/codecs/ (props changed)
lucene/dev/branches/branch_4x/lucene/common-build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.cfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.nocfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.cfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.nocfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSort.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSortDocValues.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSortRandom.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestTotalHitCountCollector.java (props changed)
lucene/dev/branches/branch_4x/lucene/demo/ (props changed)
lucene/dev/branches/branch_4x/lucene/facet/ (props changed)
lucene/dev/branches/branch_4x/lucene/grouping/ (props changed)
lucene/dev/branches/branch_4x/lucene/highlighter/ (props changed)
lucene/dev/branches/branch_4x/lucene/ivy-settings.xml (props changed)
lucene/dev/branches/branch_4x/lucene/join/ (props changed)
lucene/dev/branches/branch_4x/lucene/licenses/ (props changed)
lucene/dev/branches/branch_4x/lucene/memory/ (props changed)
lucene/dev/branches/branch_4x/lucene/misc/ (props changed)
lucene/dev/branches/branch_4x/lucene/module-build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/queries/ (props changed)
lucene/dev/branches/branch_4x/lucene/queryparser/ (props changed)
lucene/dev/branches/branch_4x/lucene/sandbox/ (props changed)
lucene/dev/branches/branch_4x/lucene/site/ (props changed)
lucene/dev/branches/branch_4x/lucene/spatial/ (props changed)
lucene/dev/branches/branch_4x/lucene/suggest/ (props changed)
lucene/dev/branches/branch_4x/lucene/test-framework/ (props changed)
lucene/dev/branches/branch_4x/lucene/tools/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/LICENSE.txt (props changed)
lucene/dev/branches/branch_4x/solr/NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/README.txt (props changed)
lucene/dev/branches/branch_4x/solr/SYSTEM_REQUIREMENTS.txt (props changed)
lucene/dev/branches/branch_4x/solr/build.xml (props changed)
lucene/dev/branches/branch_4x/solr/cloud-dev/ (props changed)
lucene/dev/branches/branch_4x/solr/common-build.xml (props changed)
lucene/dev/branches/branch_4x/solr/contrib/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/ConfigSolrXmlBackCompat.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrProperties.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestConfig.java (props changed)
lucene/dev/branches/branch_4x/solr/example/ (props changed)
lucene/dev/branches/branch_4x/solr/licenses/ (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpclient-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpclient-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpcore-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpcore-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpmime-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpmime-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/scripts/ (props changed)
lucene/dev/branches/branch_4x/solr/site/ (props changed)
lucene/dev/branches/branch_4x/solr/solrj/ (props changed)
lucene/dev/branches/branch_4x/solr/test-framework/ (props changed)
lucene/dev/branches/branch_4x/solr/testlogging.properties (props changed)
lucene/dev/branches/branch_4x/solr/webapp/ (props changed)
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1456466&r1=1456465&r2=1456466&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Thu Mar 14 15:04:37 2013
@@ -66,6 +66,8 @@ Bug Fixes
* SOLR-4297: Atomic update request containing null=true sets all subsequent
fields to null (Ben Pennell, Rob, shalin)
+* SOLR-4543: setting shardHandlerFactory in solr.xml/solr.properties does not work.
+ (Ryan Ernst, Robert Muir via Erick Ericson)
Other Changes
----------------------
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java?rev=1456466&r1=1456465&r2=1456466&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java Thu Mar 14 15:04:37 2013
@@ -190,7 +190,7 @@ public class ZkCLI {
if (isXml) {
cfg = new ConfigSolrXmlBackCompat(loader, null, is, null, false);
} else {
- cfg = new SolrProperties(null, is, null);
+ cfg = new SolrProperties(null, loader, is, null);
}
} finally {
IOUtils.closeQuietly(is);
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/ConfigSolrXmlBackCompat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/ConfigSolrXmlBackCompat.java?rev=1456466&r1=1456465&r2=1456466&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/ConfigSolrXmlBackCompat.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/ConfigSolrXmlBackCompat.java Thu Mar 14 15:04:37 2013
@@ -25,6 +25,7 @@ import org.apache.solr.schema.IndexSchem
import org.apache.solr.util.DOMUtil;
import org.apache.solr.util.PropertiesUtil;
import org.apache.solr.util.SystemIdResolver;
+import org.apache.solr.util.plugin.PluginInfoInitialized;
import org.apache.zookeeper.KeeperException;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -132,9 +133,16 @@ public class ConfigSolrXmlBackCompat ext
m.put("class", HttpShardHandlerFactory.class.getName());
info = new PluginInfo("shardHandlerFactory", m, null, Collections.<PluginInfo>emptyList());
}
- HttpShardHandlerFactory fac = new HttpShardHandlerFactory();
- if (info != null) {
- fac.init(info);
+
+ ShardHandlerFactory fac;
+ try {
+ fac = getResourceLoader().findClass(info.className, ShardHandlerFactory.class).newInstance();
+ } catch (Exception e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
+ "Error instantiating shardHandlerFactory class " + info.className);
+ }
+ if (fac instanceof PluginInfoInitialized) {
+ ((PluginInfoInitialized) fac).init(info);
}
return fac;
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java?rev=1456466&r1=1456465&r2=1456466&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java Thu Mar 14 15:04:37 2013
@@ -377,7 +377,7 @@ public class CoreContainer
cfg = new ConfigSolrXmlBackCompat(loader, null, is, null, false);
this.cfg = new ConfigSolrXmlBackCompat(loader, (ConfigSolrXmlBackCompat)cfg);
} else {
- cfg = new SolrProperties(this, is, fileName);
+ cfg = new SolrProperties(this, loader, is, fileName);
this.cfg = new SolrProperties(this, loader, (SolrProperties)cfg);
}
} catch (Exception e) {
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrProperties.java?rev=1456466&r1=1456465&r2=1456466&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrProperties.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrProperties.java Thu Mar 14 15:04:37 2013
@@ -27,6 +27,7 @@ import org.apache.solr.handler.component
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.util.PropertiesUtil;
import org.apache.solr.util.SystemIdResolver;
+import org.apache.solr.util.plugin.PluginInfoInitialized;
import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -104,13 +105,15 @@ public class SolrProperties implements C
* Create a SolrProperties object from an opened input stream, useful for creating defaults
*
* @param container - the container for this Solr instance. There should be one and only one...
+ * @param loader - Solr resource loader
* @param is - Input stream for loading properties.
* @param fileName - the name for this properties object.
* @throws IOException - It's possible to walk a very deep tree, if that process goes awry, or if reading any
* of the files found doesn't work, you'll get an IO exception
*/
- public SolrProperties(CoreContainer container, InputStream is, String fileName) throws IOException {
+ public SolrProperties(CoreContainer container, SolrResourceLoader loader, InputStream is, String fileName) throws IOException {
origsolrprops.load(is);
+ this.loader = loader;
this.container = container;
init(fileName);
}
@@ -241,29 +244,39 @@ public class SolrProperties implements C
boolean haveHandler = false;
for (String s : solrProperties.stringPropertyNames()) {
String val = solrProperties.getProperty(s);
- if (s.indexOf(SHARD_HANDLER_FACTORY) != -1) {
+ int index = s.indexOf(SHARD_HANDLER_FACTORY);
+ if (index != -1) {
haveHandler = true;
if (SHARD_HANDLER_NAME.equals(s) || SHARD_HANDLER_CLASS.equals(s)) {
- attrs.put(s, val);
+ // remove shardHandlerFactory. prefix
+ attrs.put(s.substring(SHARD_HANDLER_FACTORY.length()+1), val);
} else {
- args.add(s, val);
+ // remove shardHandlerFactory. prefix
+ args.add(s.substring(SHARD_HANDLER_FACTORY.length()+1), val);
}
}
}
if (haveHandler) {
- // public PluginInfo(String type, Map<String, String> attrs ,NamedList initArgs, List<PluginInfo> children) {
-
info = new PluginInfo(SHARD_HANDLER_FACTORY, attrs, args, null);
} else {
Map m = new HashMap();
m.put("class", HttpShardHandlerFactory.class.getName());
info = new PluginInfo("shardHandlerFactory", m, null, Collections.<PluginInfo>emptyList());
}
- HttpShardHandlerFactory fac = new HttpShardHandlerFactory();
- if (info != null) {
- fac.init(info);
+
+ assert loader != null;
+ ShardHandlerFactory fac;
+ try {
+ fac = loader.findClass(info.className, ShardHandlerFactory.class).newInstance();
+ } catch (Exception e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
+ "Error instantiating shardHandlerFactory class " + info.className);
}
+ if (fac instanceof PluginInfoInitialized) {
+ ((PluginInfoInitialized) fac).init(info);
+ }
+
return fac;
}