You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by su...@apache.org on 2012/07/12 09:25:51 UTC
svn commit: r1360556 - in
/incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed:
./ impl/ standalone/
Author: suat
Date: Thu Jul 12 07:25:50 2012
New Revision: 1360556
URL: http://svn.apache.org/viewvc?rev=1360556&view=rev
Log:
STANBOL-687: Added swapIndexes method to ManagedSolrServer interface and provided an implementation for StandaloneManagedSolrServer
Modified:
incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/ManagedSolrServer.java
incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/impl/ManagedSolrServerImpl.java
incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/DefaultStandaloneManagedSolrServerWrapper.java
incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/StandaloneManagedSolrServer.java
Modified: incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/ManagedSolrServer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/ManagedSolrServer.java?rev=1360556&r1=1360555&r2=1360556&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/ManagedSolrServer.java (original)
+++ incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/ManagedSolrServer.java Thu Jul 12 07:25:50 2012
@@ -265,4 +265,16 @@ public interface ManagedSolrServer {
* component is currently deactivated) or initialised.
*/
File getManagedDirectory();
+
+ /**
+ * Swaps the indexes through using the swap method of the underlying CoreContainer
+ * ({@link CoreContainer#swap(String, String)}).
+ * @param indexName1 the name of the first index
+ * @param indexName2 the name of the second index
+ * @throws IllegalArgumentException if one or both of the indexes is not managed i.e {@link #isManagedIndex(String)}
+ * returns {@code false}.
+ * @throws IllegalStateException if one or both of the index is not in {@link ManagedIndexState#ACTIVE}
+ * state.
+ */
+ void swapIndexes(String indexName1, String indexName2);
}
\ No newline at end of file
Modified: incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/impl/ManagedSolrServerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/impl/ManagedSolrServerImpl.java?rev=1360556&r1=1360555&r2=1360556&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/impl/ManagedSolrServerImpl.java (original)
+++ incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/impl/ManagedSolrServerImpl.java Thu Jul 12 07:25:50 2012
@@ -1210,33 +1210,25 @@ public class ManagedSolrServerImpl imple
}
}
- /**
- * Swaps Solr cores identified by the given names. The swap operation is realized by
- * the underlying {@link SolrServerAdapter#swap(String, String)}.
- *
- * @param core1
- * name of the first core
- * @param core2
- * name of the second core
- */
- public void swapCores(String core1, String core2) {
- if (!(isManagedIndex(core1) && isManagedIndex(core2))) {
+ @Override
+ public void swapIndexes(String indexName1, String indexName2) {
+ if (!(isManagedIndex(indexName1) && isManagedIndex(indexName2))) {
throw new IllegalArgumentException(String.format(
- "Both core names (%s,%s) must correspond to a managed index", core1, core2));
+ "Both core names (%s,%s) must correspond to a managed index", indexName1, indexName2));
}
- if (!(managedCores.isInState(ManagedIndexState.ACTIVE, core1) && managedCores.isInState(
- ManagedIndexState.ACTIVE, core2))) {
+ if (!(managedCores.isInState(ManagedIndexState.ACTIVE, indexName1) && managedCores.isInState(
+ ManagedIndexState.ACTIVE, indexName2))) {
throw new IllegalStateException(String.format(
- "Both cores (%s,%s) should be in ManagedIndexState.ACTIVE state", core1, core2));
+ "Both cores (%s,%s) should be in ManagedIndexState.ACTIVE state", indexName1, indexName2));
}
Object token = new Object();
synchronized (serverInUser) {
serverInUser.add(token);
}
try {
- server.swap(core1, core2);
- IndexMetadata core1Metadata = getIndexMetadata(core1);
- IndexMetadata core2Metadata = getIndexMetadata(core2);
+ server.swap(indexName1, indexName2);
+ IndexMetadata core1Metadata = getIndexMetadata(indexName1);
+ IndexMetadata core2Metadata = getIndexMetadata(indexName2);
String core2Directory = core2Metadata.getDirectory();
core2Metadata.setDirectory(core1Metadata.getDirectory());
core1Metadata.setDirectory(core2Directory);
Modified: incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/DefaultStandaloneManagedSolrServerWrapper.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/DefaultStandaloneManagedSolrServerWrapper.java?rev=1360556&r1=1360555&r2=1360556&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/DefaultStandaloneManagedSolrServerWrapper.java (original)
+++ incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/DefaultStandaloneManagedSolrServerWrapper.java Thu Jul 12 07:25:50 2012
@@ -133,5 +133,9 @@ public class DefaultStandaloneManagedSol
SAXException {
return defaultServer.updateIndex(indexName, ais, archiveCoreName);
}
-
+
+ @Override
+ public void swapIndexes(String indexName1, String indexName2) {
+ defaultServer.swapIndexes(indexName1, indexName2);
+ }
}
\ No newline at end of file
Modified: incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/StandaloneManagedSolrServer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/StandaloneManagedSolrServer.java?rev=1360556&r1=1360555&r2=1360556&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/StandaloneManagedSolrServer.java (original)
+++ incubator/stanbol/trunk/commons/solr/managed/src/main/java/org/apache/stanbol/commons/solr/managed/standalone/StandaloneManagedSolrServer.java Thu Jul 12 07:25:50 2012
@@ -540,5 +540,13 @@ public class StandaloneManagedSolrServer
public CoreContainer getCoreContainer() {
return server;
}
-
+
+ @Override
+ public void swapIndexes(String indexName1, String indexName2) {
+ if (!(isManagedIndex(indexName1) && isManagedIndex(indexName2))) {
+ throw new IllegalArgumentException(String.format(
+ "Both core names (%s,%s) must correspond to a managed index", indexName1, indexName2));
+ }
+ server.swap(indexName1, indexName2);
+ }
}