Author: shalin
Date: Fri Feb 6 09:24:51 2009
New Revision: 741490
URL: http://svn.apache.org/viewvc?rev=741490&view=rev
Log:
SOLR-943 -- Make it possible to specify dataDir in solr.xml and accept the
dataDir as a request parameter for the CoreAdmin create command.
Modified:
lucene/solr/trunk/CHANGES.txt
lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java
lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java
lucene/solr/trunk/src/java/org/apache/solr/core/CoreDescriptor.java
lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
Modified: lucene/solr/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=741490&r1=741489&r2=741490&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Fri Feb 6 09:24:51 2009
@@ -147,6 +147,9 @@
33. SOLR-820: Support replication on startup of master with new index. (Noble
Paul, Akshay Ukey via shalin)
+34. SOLR-943: Make it possible to specify dataDir in solr.xml and accept the
dataDir as a request parameter for
+ the CoreAdmin create command. (Noble Paul via shalin)
+
Optimizations
----------------------
Modified:
lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java?rev=741490&r1=741489&r2=741490&view=diff
==============================================================================
---
lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java
(original)
+++
lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java
Fri Feb 6 09:24:51 2009
@@ -32,6 +32,9 @@
/** If you rename something, what is the new name **/
public final static String NAME = "name";
+ /** If you rename something, what is the new name **/
+ public final static String DATA_DIR = "dataDir";
+
/** Name of the other core in actions involving 2 cores **/
public final static String OTHER = "other";
@@ -72,4 +75,4 @@
return null;
}
}
-}
\ No newline at end of file
+}
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java?rev=741490&r1=741489&r2=741490&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java Fri Feb
6 09:24:51 2009
@@ -35,6 +35,7 @@
import javax.xml.xpath.XPathExpressionException;
import org.apache.solr.common.SolrException;
+import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.XML;
import org.apache.solr.common.util.StrUtils;
@@ -212,6 +213,10 @@
if (opt != null) {
p.setSchemaName(opt);
}
+ opt = DOMUtil.getAttr(node, CoreAdminParams.DATA_DIR, null);
+ if (opt != null) {
+ p.setDataDir(opt);
+ }
p.setCoreProperties(readProperties(cfg, node));
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/CoreDescriptor.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/CoreDescriptor.java?rev=741490&r1=741489&r2=741490&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/CoreDescriptor.java
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/CoreDescriptor.java Fri Feb
6 09:24:51 2009
@@ -18,6 +18,7 @@
package org.apache.solr.core;
import java.util.Properties;
+import java.io.File;
/**
* A Solr core descriptor
@@ -27,6 +28,7 @@
public class CoreDescriptor implements Cloneable {
protected String name;
protected String instanceDir;
+ protected String dataDir;
protected String configName;
protected String schemaName;
private final CoreContainer coreContainer;
@@ -52,6 +54,7 @@
this.configName = descr.configName;
this.schemaName = descr.schemaName;
this.name = descr.name;
+ this.dataDir = descr.dataDir;
coreContainer = descr.coreContainer;
}
@@ -59,6 +62,7 @@
Properties implicitProperties = new
Properties(coreContainer.getContainerProperties());
implicitProperties.setProperty("solr.core.name", name);
implicitProperties.setProperty("solr.core.instanceDir", instanceDir);
+ implicitProperties.setProperty("solr.core.dataDir", getDataDir());
implicitProperties.setProperty("solr.core.configName", configName);
implicitProperties.setProperty("solr.core.schemaName", schemaName);
return implicitProperties;
@@ -76,9 +80,22 @@
/*...@return the default data directory. */
public String getDefaultDataDir() {
- return this.instanceDir + "data/";
+ return this.instanceDir + "data"+File.separator;
}
-
+
+ public String getDataDir() {
+ if (dataDir == null) return getDefaultDataDir();
+ String absolutePath = new File(dataDir).getAbsolutePath();
+ if (absolutePath.equals(dataDir) || (absolutePath +
File.separator).equals(dataDir)) return dataDir;
+ return dataDir.endsWith(File.separator) ?
+ instanceDir + dataDir :
+ instanceDir + dataDir + File.separator;
+ }
+
+ public void setDataDir(String s) {
+ dataDir = s;
+ }
+
/*...@return the core instance directory. */
public String getInstanceDir() {
return instanceDir;
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java?rev=741490&r1=741489&r2=741490&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java Fri Feb 6
09:24:51 2009
@@ -491,7 +491,7 @@
this.setName( name );
SolrResourceLoader loader = config.getResourceLoader();
if (dataDir == null)
- dataDir = config.get("dataDir",loader.getInstanceDir()+"data/");
+ dataDir = config.get("dataDir",cd.getDataDir());
dataDir = SolrResourceLoader.normalizeDir(dataDir);
Modified:
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=741490&r1=741489&r2=741490&view=diff
==============================================================================
---
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
(original)
+++
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
Fri Feb 6 09:24:51 2009
@@ -103,7 +103,9 @@
if (opts != null)
dcore.setSchemaName(opts);
- dcore.setCoreProperties(null);
+ opts = params.get(CoreAdminParams.DATA_DIR);
+ if (opts != null)
+ dcore.setDataDir(opts);
SolrCore core = cores.create(dcore);
cores.register(name, core,false);