You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2013/05/13 02:30:26 UTC
svn commit: r1481675 - in /lucene/dev/trunk/solr: ./
core/src/java/org/apache/solr/cloud/
core/src/java/org/apache/solr/handler/admin/
core/src/test/org/apache/solr/cloud/
solrj/src/java/org/apache/solr/common/cloud/
solrj/src/java/org/apache/solr/comm...
Author: markrmiller
Date: Mon May 13 00:30:25 2013
New Revision: 1481675
URL: http://svn.apache.org/r1481675
Log:
SOLR-4234: Add support for binary files in ZooKeeper.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1481675&r1=1481674&r2=1481675&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Mon May 13 00:30:25 2013
@@ -80,6 +80,8 @@ New Features
* SOLR-4785: New MaxScoreQParserPlugin returning max() instead of sum() of terms (janhoy)
+* SOLR-4234: Add support for binary files in ZooKeeper. (Eric Pugh via Mark Miller)
+
Bug Fixes
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1481675&r1=1481674&r2=1481675&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java Mon May 13 00:30:25 2013
@@ -1251,7 +1251,7 @@ public final class ZkController {
byte[] data = zkClient.getData(zkPath + "/" + file, null, null, true);
dir.mkdirs();
log.info("Write file " + new File(dir, file));
- FileUtils.writeStringToFile(new File(dir, file), new String(data, "UTF-8"), "UTF-8");
+ FileUtils.writeByteArrayToFile(new File(dir, file), data);
} else {
downloadFromZK(zkClient, zkPath + "/" + file, new File(dir, file));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java?rev=1481675&r1=1481674&r2=1481675&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java Mon May 13 00:30:25 2013
@@ -191,9 +191,7 @@ public class ShowFileRequestHandler exte
ModifiableSolrParams params = new ModifiableSolrParams(req.getParams());
params.set(CommonParams.WT, "raw");
req.setParams(params);
-
- ContentStreamBase content = new ContentStreamBase.StringStream(
- new String(zkClient.getData(adminFile, null, null, true), "UTF-8"));
+ ContentStreamBase content = new ContentStreamBase.ByteArrayStream(zkClient.getData(adminFile, null, null, true), adminFile);
content.setContentType(req.getParams().get(USE_CONTENT_TYPE));
rsp.add(RawResponseWriter.CONTENT, content);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java?rev=1481675&r1=1481674&r2=1481675&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java Mon May 13 00:30:25 2013
@@ -18,6 +18,7 @@ package org.apache.solr.cloud;
*/
import java.io.File;
+import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
@@ -186,6 +187,22 @@ public class ZkCLITest extends SolrTestC
List<String> zkFiles = zkClient.getChildren(ZkController.CONFIGS_ZKNODE + "/" + confsetname, null, true);
assertEquals(files.length, zkFiles.size());
+ File sourceConfDir = new File(ExternalPaths.EXAMPLE_HOME + File.separator + "collection1"
+ + File.separator + "conf");
+ Collection<File> sourceFiles = FileUtils.listFiles(sourceConfDir,null,true);
+ for (File sourceFile :sourceFiles){
+ if (!sourceFile.isHidden()){
+ int indexOfRelativePath = sourceFile.getAbsolutePath().lastIndexOf("collection1/conf");
+ String relativePathofFile = sourceFile.getAbsolutePath().substring(indexOfRelativePath + 17, sourceFile.getAbsolutePath().length());
+ File downloadedFile = new File(confDir,relativePathofFile);
+ assertTrue("Make sure we did download each file in the original configuration",downloadedFile.exists());
+ assertTrue("Content didn't change",FileUtils.contentEquals(sourceFile,downloadedFile));
+
+ }
+
+ }
+
+
// test reset zk
args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
"clear", "/"};
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java?rev=1481675&r1=1481674&r2=1481675&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java Mon May 13 00:30:25 2013
@@ -311,13 +311,13 @@ public class SolrZkClient {
public void makePath(String path, File file, boolean failOnExists, boolean retryOnConnLoss)
throws IOException, KeeperException, InterruptedException {
- makePath(path, FileUtils.readFileToString(file).getBytes("UTF-8"),
+ makePath(path, FileUtils.readFileToByteArray(file),
CreateMode.PERSISTENT, null, failOnExists, retryOnConnLoss);
}
public void makePath(String path, File file, boolean retryOnConnLoss) throws IOException,
KeeperException, InterruptedException {
- makePath(path, FileUtils.readFileToString(file).getBytes("UTF-8"), retryOnConnLoss);
+ makePath(path, FileUtils.readFileToByteArray(file), retryOnConnLoss);
}
public void makePath(String path, CreateMode createMode, boolean retryOnConnLoss) throws KeeperException,
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java?rev=1481675&r1=1481674&r2=1481675&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java Mon May 13 00:30:25 2013
@@ -233,4 +233,27 @@ public abstract class ContentStreamBase
public void setSourceInfo(String sourceInfo) {
this.sourceInfo = sourceInfo;
}
+
+ /**
+ * Construct a <code>ContentStream</code> from a <code>File</code>
+ */
+ public static class ByteArrayStream extends ContentStreamBase
+ {
+ private final byte[] bytes;
+
+ public ByteArrayStream( byte[] bytes, String source ) {
+ this.bytes = bytes;
+
+ this.contentType = null;
+ name = source;
+ size = new Long(bytes.length);
+ sourceInfo = source;
+ }
+
+
+ @Override
+ public InputStream getStream() throws IOException {
+ return new ByteArrayInputStream( bytes );
+ }
+ }
}