You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2013/12/01 10:06:32 UTC
svn commit: r1546793 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java
Author: shalin
Date: Sun Dec 1 09:06:31 2013
New Revision: 1546793
URL: http://svn.apache.org/r1546793
Log:
SOLR-5023: Add support for deleteInstanceDir to be passed from SolrJ for Core Unload action
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1546793&r1=1546792&r2=1546793&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Sun Dec 1 09:06:31 2013
@@ -109,6 +109,9 @@ New Features
* SOLR-5506: Support docValues in CollationField and ICUCollationField.
(Robert Muir)
+* SOLR-5023: Add support for deleteInstanceDir to be passed from SolrJ for Core
+ Unload action. (shalin)
+
Bug Fixes
----------------------
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java?rev=1546793&r1=1546792&r2=1546793&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java Sun Dec 1 09:06:31 2013
@@ -18,9 +18,14 @@
package org.apache.solr.handler.admin;
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import org.apache.commons.codec.Charsets;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.common.SolrException;
+import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.CoreContainer;
@@ -221,4 +226,52 @@ public class CoreAdminHandlerTest extend
FileUtils.deleteDirectory(workDir);
}
+
+ @Test
+ public void testDeleteInstanceDir() throws Exception {
+ File solrHomeDirectory = new File(TEMP_DIR, getClass().getName() + "-corex-"
+ + System.currentTimeMillis());
+ solrHomeDirectory.mkdirs();
+ copySolrHomeToTemp(solrHomeDirectory, "corex", true);
+ File corex = new File(solrHomeDirectory, "corex");
+ FileUtils.write(new File(corex, "core.properties"), "", Charsets.UTF_8.toString());
+ JettySolrRunner runner = new JettySolrRunner(solrHomeDirectory.getAbsolutePath(), "/solr", 0);
+ HttpSolrServer server = null;
+ try {
+ runner.start();
+ server = new HttpSolrServer("http://localhost:" + runner.getLocalPort() + "/solr/corex");
+ server.setConnectionTimeout(SolrTestCaseJ4.DEFAULT_CONNECTION_TIMEOUT);
+ server.setSoTimeout(SolrTestCaseJ4.DEFAULT_CONNECTION_TIMEOUT);
+ SolrInputDocument doc = new SolrInputDocument();
+ doc.addField("id", "123");
+ server.add(doc);
+ server.commit();
+ server.shutdown();
+
+ server = new HttpSolrServer("http://localhost:" + runner.getLocalPort() + "/solr");
+ server.setConnectionTimeout(SolrTestCaseJ4.DEFAULT_CONNECTION_TIMEOUT);
+ server.setSoTimeout(SolrTestCaseJ4.DEFAULT_CONNECTION_TIMEOUT);
+ CoreAdminRequest.Unload req = new CoreAdminRequest.Unload(false);
+ req.setDeleteInstanceDir(true);
+ req.setCoreName("corex");
+ req.process(server);
+ server.shutdown();
+
+ runner.stop();
+
+ assertFalse("Instance directory exists after core unload with deleteInstanceDir=true : " + corex,
+ corex.exists());
+ } catch (Exception e) {
+ log.error("Exception testing core unload with deleteInstanceDir=true", e);
+ } finally {
+ if (server != null) {
+ server.shutdown();
+ }
+ if (!runner.isStopped()) {
+ runner.stop();
+ }
+ recurseDelete(solrHomeDirectory);
+ }
+ }
+
}
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java?rev=1546793&r1=1546792&r2=1546793&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java Sun Dec 1 09:06:31 2013
@@ -371,7 +371,8 @@ public class CoreAdminRequest extends So
public static class Unload extends CoreAdminRequest {
protected boolean deleteIndex;
- private boolean deleteDataDir;
+ protected boolean deleteDataDir;
+ protected boolean deleteInstanceDir;
public Unload(boolean deleteIndex) {
action = CoreAdminAction.UNLOAD;
@@ -390,11 +391,24 @@ public class CoreAdminRequest extends So
this.deleteDataDir = deleteDataDir;
}
+ public void setDeleteInstanceDir(boolean deleteInstanceDir){
+ this.deleteInstanceDir = deleteInstanceDir;
+ }
+
+ public boolean isDeleteDataDir() {
+ return deleteDataDir;
+ }
+
+ public boolean isDeleteInstanceDir() {
+ return deleteInstanceDir;
+ }
+
@Override
public SolrParams getParams() {
ModifiableSolrParams params = (ModifiableSolrParams) super.getParams();
params.set(CoreAdminParams.DELETE_INDEX, deleteIndex);
params.set(CoreAdminParams.DELETE_DATA_DIR, deleteDataDir);
+ params.set(CoreAdminParams.DELETE_INSTANCE_DIR, deleteInstanceDir);
return params;
}
@@ -489,11 +503,15 @@ public class CoreAdminRequest extends So
return unloadCore(name, false, server);
}
- public static CoreAdminResponse unloadCore( String name, boolean deleteIndex, SolrServer server ) throws SolrServerException, IOException
- {
+ public static CoreAdminResponse unloadCore(String name, boolean deleteIndex, SolrServer server) throws SolrServerException, IOException {
+ return unloadCore(name, deleteIndex, false, server);
+ }
+
+ public static CoreAdminResponse unloadCore(String name, boolean deleteIndex, boolean deleteInstanceDir, SolrServer server) throws SolrServerException, IOException {
Unload req = new Unload(deleteIndex);
- req.setCoreName( name );
- return req.process( server );
+ req.setCoreName(name);
+ req.setDeleteInstanceDir(deleteInstanceDir);
+ return req.process(server);
}
public static CoreAdminResponse renameCore(String coreName, String newName, SolrServer server ) throws SolrServerException, IOException