You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2016/12/08 05:18:33 UTC
svn commit: r1773182 - in
/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene:
LuceneIndexMBean.java LuceneIndexMBeanImpl.java
Author: chetanm
Date: Thu Dec 8 05:18:33 2016
New Revision: 1773182
URL: http://svn.apache.org/viewvc?rev=1773182&view=rev
Log:
OAK-4400 - Correlate index with the index definition used to build it
Add MBean operation to diff between stored index definition and current index definition
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBean.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBeanImpl.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBean.java?rev=1773182&r1=1773181&r2=1773182&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBean.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBean.java Thu Dec 8 05:18:33 2016
@@ -65,4 +65,8 @@ public interface LuceneIndexMBean {
@Description("Returns the stored index definition for index at given path in string form")
String getStoredIndexDefinition(@Name("indexPath") String indexPath);
+ @Description("Returns the diff of index definition for index at given path from the stored index definition in " +
+ "string form")
+ String diffStoredIndexDefinition(@Name("indexPath") String indexPath);
+
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBeanImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBeanImpl.java?rev=1773182&r1=1773181&r2=1773182&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBeanImpl.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBeanImpl.java Thu Dec 8 05:18:33 2016
@@ -44,6 +44,8 @@ import com.google.common.collect.TreeTra
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean;
import org.apache.jackrabbit.oak.commons.jmx.Name;
+import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
+import org.apache.jackrabbit.oak.json.JsopDiff;
import org.apache.jackrabbit.oak.plugins.index.lucene.BadIndexTracker.BadIndexInfo;
import org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex.PathStoredFieldVisitor;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -226,6 +228,19 @@ public class LuceneIndexMBeanImpl extend
return "No index found at given path";
}
+ @Override
+ public String diffStoredIndexDefinition(@Name("indexPath") String indexPath) {
+ NodeState stored = NodeStateUtils.getNode(indexTracker.getRoot(), indexPath + "/" + INDEX_DEFINITION_NODE);
+ NodeState current = NodeStateUtils.getNode(indexTracker.getRoot(), indexPath);
+ if (stored.exists()){
+ current = NodeStateCloner.cloneVisibleState(current);
+ JsopDiff diff = new JsopDiff();
+ current.compareAgainstBaseState(stored, diff);
+ return JsopBuilder.prettyPrint(diff.toString());
+ }
+ return "No stored index definition found at given path";
+ }
+
public void dumpIndexContent(String sourcePath, String destPath) throws IOException {
IndexNode indexNode = null;
try {