Author: catholicon
Date: Wed Sep 13 20:59:04 2017
New Revision: 1808288
URL: http://svn.apache.org/viewvc?rev=1808288&view=rev
Log:
OAK-6656: OrderedPropertyIndexEditorProvider does not return Editor to
IndexUpdate leading to "ordered" being marked as missing type
(backport r1808128, r1808142 from trunk)
Treat type="ordered" similar to disabled "disabled". Also, warn message from
Index provider would have index path which has type="ordered".
Also, fix tests along with making hit count non-static (as that made test
execution depend on each other)
PS: Backport of test got a bit complicated because of missing OAK-3642 and
OAK-4642 in this branch :-/
Modified:
jackrabbit/oak/branches/1.4/ (props changed)
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedIndex.java
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
jackrabbit/oak/branches/1.4/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
Propchange: jackrabbit/oak/branches/1.4/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Sep 13 20:59:04 2017
@@ -1,4 +1,4 @@
/jackrabbit/oak/branches/1.0:1665962
/jackrabbit/oak/branches/1.6:1802566
-/jackrabbit/oak/trunk:1733615,1733875,1733913,1733929,1734230,1734254,1734279,1734941,1735052,1735081,1735109,1735141,1735267,1735405,1735484,1735549,1735564,1735588,1735622,1735638,1735919,1735983,1736176,1737309-1737310,1737334,1737349,1737998,1738004,1738136,1738138,1738207,1738234,1738252,1738775,1738795,1738833,1738950,1738957,1738963,1739712,1739760,1739867,1739894,1739959-1739960,1740114,1740116,1740250,1740333,1740349,1740360,1740625-1740626,1740774,1740837,1740879,1740971,1741016,1741032,1741339,1741343,1742077,1742117,1742125,1742363,1742520,1742888,1742916,1743097,1743172,1743343,1743674,1744265,1744292,1744589,1744670,1744672,1744959,1745038,1745127,1745197,1745336,1745368,1746086,1746117,1746342,1746345,1746408,1746634,1746696,1746981,1747198,1747200,1747341-1747342,1747380,1747387,1747406,1747492,1747512,1747654,1748505,1748553,1748722,1748870,1749275,1749350,1749424,1749443,1749464,1749475,1749645,1749662,1749815,1749872,1749875,1749899,1750052,1750076-1750077,1750287
,1750457,1750462,1750465,1750495,1750626,1750809,1750886-1750887,1751396,1751410,1751419,1751445-1751446,1751478,1751748,1751753,1751755,1751871,1752198,1752202,1752259,1752273-1752274,1752283,1752292,1752438,1752447-1752448,1752508,1752596,1752616,1752659,1752672,1753262,1753331-1753332,1753335-1753336,1753355,1753444,1754117,1754239,1755157,1755191,1756505-1756506,1756520,1756580,1757119,1757166,1758213,1758713,1759433,1759754,1759795,1759826,1760326,1760340,1760373,1760387,1760486,1760492,1760494,1760661-1760662,1760677,1760701,1760709,1760946,1761412,1761444,1761571,1761762,1761787,1761866,1761876,1762453,1762612,1762632,1762635,1762825,1763347,1763355-1763356,1763378,1763465,1763735,1764475,1764678,1764705,1764814,1764898,1765817,1765983,1766071,1766390,1766423,1766496,1766519,1766554,1766644,1767025,1767265,1767502,1767704,1768446,1768637,1769078,1769939-1769940,1770694,1770982,1771022,1771093,1771098,1771739,1771852,1771870,1771902,1772155,1772162,1772228,1772593,1772768,1772
906,1773190,1774141,1774256,1774497,1774787,1775474,1775622,1775628,1775757,1778112,1778423,1778968,1779137,1779478,1780388,1780424,1780538,1780543,1781068,1781075,1781386,1781846,1781907,1782476,1782966,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783738,1783773,1783855,1783891,1784023,1784034,1784130,1784251,1784551,1784574,1784689,1785283,1785946,1787074,1787217,1787425,1789056,1792463,1792742,1793013,1793088,1793644,1795314,1795330,1795475,1795488,1795491,1795613,1795618,1796144,1798035,1798834,1799219,1799389,1799924,1800974,1801011,1801013,1802548,1802973,1803026,1807308,1808125
+/jackrabbit/oak/trunk:1733615,1733875,1733913,1733929,1734230,1734254,1734279,1734941,1735052,1735081,1735109,1735141,1735267,1735405,1735484,1735549,1735564,1735588,1735622,1735638,1735919,1735983,1736176,1737309-1737310,1737334,1737349,1737998,1738004,1738136,1738138,1738207,1738234,1738252,1738775,1738795,1738833,1738950,1738957,1738963,1739712,1739760,1739867,1739894,1739959-1739960,1740114,1740116,1740250,1740333,1740349,1740360,1740625-1740626,1740774,1740837,1740879,1740971,1741016,1741032,1741339,1741343,1742077,1742117,1742125,1742363,1742520,1742888,1742916,1743097,1743172,1743343,1743674,1744265,1744292,1744589,1744670,1744672,1744959,1745038,1745127,1745197,1745336,1745368,1746086,1746117,1746342,1746345,1746408,1746634,1746696,1746981,1747198,1747200,1747341-1747342,1747380,1747387,1747406,1747492,1747512,1747654,1748505,1748553,1748722,1748870,1749275,1749350,1749424,1749443,1749464,1749475,1749645,1749662,1749815,1749872,1749875,1749899,1750052,1750076-1750077,1750287
,1750457,1750462,1750465,1750495,1750626,1750809,1750886-1750887,1751396,1751410,1751419,1751445-1751446,1751478,1751748,1751753,1751755,1751871,1752198,1752202,1752259,1752273-1752274,1752283,1752292,1752438,1752447-1752448,1752508,1752596,1752616,1752659,1752672,1753262,1753331-1753332,1753335-1753336,1753355,1753444,1754117,1754239,1755157,1755191,1756505-1756506,1756520,1756580,1757119,1757166,1758213,1758713,1759433,1759754,1759795,1759826,1760326,1760340,1760373,1760387,1760486,1760492,1760494,1760661-1760662,1760677,1760701,1760709,1760946,1761412,1761444,1761571,1761762,1761787,1761866,1761876,1762453,1762612,1762632,1762635,1762825,1763347,1763355-1763356,1763378,1763465,1763735,1764475,1764678,1764705,1764814,1764898,1765817,1765983,1766071,1766390,1766423,1766496,1766519,1766554,1766644,1767025,1767265,1767502,1767704,1768446,1768637,1769078,1769939-1769940,1770694,1770982,1771022,1771093,1771098,1771739,1771852,1771870,1771902,1772155,1772162,1772228,1772593,1772768,1772
906,1773190,1774141,1774256,1774497,1774787,1775474,1775622,1775628,1775757,1778112,1778423,1778968,1779137,1779478,1780388,1780424,1780538,1780543,1781068,1781075,1781386,1781846,1781907,1782476,1782966,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783738,1783773,1783855,1783891,1784023,1784034,1784130,1784251,1784551,1784574,1784689,1785283,1785946,1787074,1787217,1787425,1789056,1792463,1792742,1793013,1793088,1793644,1795314,1795330,1795475,1795488,1795491,1795613,1795618,1796144,1798035,1798834,1799219,1799389,1799924,1800974,1801011,1801013,1802548,1802973,1803026,1807308,1808125,1808128,1808142
/jackrabbit/trunk:1345480
Modified:
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java?rev=1808288&r1=1808287&r2=1808288&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
(original)
+++
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
Wed Sep 13 20:59:04 2017
@@ -363,7 +363,7 @@ public class IndexUpdate implements Edit
private boolean failOnMissingIndexProvider = Boolean
.getBoolean("oak.indexUpdate.failOnMissingIndexProvider");
- private final Set<String> ignore = newHashSet("disabled");
+ private final Set<String> ignore = newHashSet("disabled", "ordered");
public void onMissingIndex(String type, NodeBuilder definition, String
indexPath)
throws CommitFailedException {
Modified:
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedIndex.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedIndex.java?rev=1808288&r1=1808287&r2=1808288&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedIndex.java
(original)
+++
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedIndex.java
Wed Sep 13 20:59:04 2017
@@ -31,12 +31,11 @@ public interface OrderedIndex {
/**
* Deprecation message tracked when using the ordered index.
*/
- String DEPRECATION_MESSAGE =
+ String DEPRECATION_MESSAGE =
"Ordered Index has been deprecated since Oak 1.1.8. " +
- "Please replace the index definitions with Lucene Property index " +
- "and remove the index providers from the repository. " +
+ "Please replace the index definition ({}) with Lucene Property index "
+
+ "and remove the index providers from the repository. " +
"See docs at http://jackrabbit.apache.org/oak/docs";
-
/**
* the deprecation message will be tracked every N times
*/
Modified:
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java?rev=1808288&r1=1808287&r2=1808288&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
(original)
+++
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
Wed Sep 13 20:59:04 2017
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
@Service(IndexEditorProvider.class)
public class OrderedPropertyIndexEditorProvider implements
IndexEditorProvider, OrderedIndex {
private static final Logger LOG =
LoggerFactory.getLogger(OrderedPropertyIndexEditorProvider.class);
- private static int hits;
+ private int hits;
private static int threshold = OrderedIndex.TRACK_DEPRECATION_EVERY;
@Override
@@ -46,11 +46,11 @@ public class OrderedPropertyIndexEditorP
@Nonnull IndexUpdateCallback callback) throws
CommitFailedException {
if (OrderedIndex.TYPE.equals(type)) {
if (hit() % threshold == 0) {
- LOG.warn(OrderedIndex.DEPRECATION_MESSAGE);
+ LOG.warn(OrderedIndex.DEPRECATION_MESSAGE, definition);
}
}
return null;
- }
+ }
private synchronized int hit() {
return hits++;
Modified:
jackrabbit/oak/branches/1.4/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.4/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java?rev=1808288&r1=1808287&r2=1808288&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.4/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
(original)
+++
jackrabbit/oak/branches/1.4/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java
Wed Sep 13 20:59:04 2017
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.plugin
import static
org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_CONTENT_NODE_NAME;
import static
org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
+import static
org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -30,11 +31,11 @@ import java.util.List;
import javax.jcr.RepositoryException;
import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexUtils;
-import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
import org.apache.jackrabbit.oak.plugins.tree.TreeFactory;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -54,18 +55,24 @@ public class OrderedPropertyIndexEditorP
private final String indexName = "mickey";
private final String indexedProperty = "mouse";
-
- private void createIndexDef(NodeBuilder root) throws RepositoryException {
- IndexUtils
- .createIndexDefinition(
- new NodeUtil(TreeFactory.createTree(root
- .child(IndexConstants.INDEX_DEFINITIONS_NAME))), indexName,
false,
- new String[] { indexedProperty }, null, OrderedIndex.TYPE);
+
+ // Resorting to this hack as we don't have OAK-4642 in this branch yet :(
+ private final String DEFNITION_NODE_STATE_TO_STRING =
"MemoryNodeBuilder{path=/oak:index/mickey}";
+ private final String DEPRECATION_MESSAGE =
OrderedIndex.DEPRECATION_MESSAGE.replace("{}",
+ DEFNITION_NODE_STATE_TO_STRING);
+
+ private Tree createIndexDef(NodeBuilder root) throws RepositoryException {
+ return IndexUtils
+ .createIndexDefinition(
+ new NodeUtil(TreeFactory.createTree(root
+
.child(IndexConstants.INDEX_DEFINITIONS_NAME))), indexName, false,
+ new String[] { indexedProperty }, null,
OrderedIndex.TYPE)
+ .getTree();
}
@Test
public void withIndexDefSingleNode() throws RepositoryException,
CommitFailedException {
- NodeBuilder root = InitialContent.INITIAL_CONTENT.builder();
+ NodeBuilder root = EMPTY_NODE.builder();
createIndexDef(root);
@@ -76,7 +83,7 @@ public class OrderedPropertyIndexEditorP
custom.starting();
root = hook.processCommit(before, after, CommitInfo.EMPTY).builder();
assertEquals(1, custom.getLogs().size());
- assertThat(custom.getLogs(),
hasItem(OrderedIndex.DEPRECATION_MESSAGE));
+ assertThat(custom.getLogs(), hasItem(DEPRECATION_MESSAGE));
custom.finished();
NodeBuilder b =
root.getChildNode(IndexConstants.INDEX_DEFINITIONS_NODE_TYPE)
@@ -88,10 +95,10 @@ public class OrderedPropertyIndexEditorP
public void withIndexMultipleNodes() throws RepositoryException,
CommitFailedException {
final int threshold = 5;
final int nodes = 16;
- final int traces = nodes / threshold;
+ final int traces = 1 + (nodes - 1) / threshold;
OrderedPropertyIndexEditorProvider.setThreshold(threshold);
- final List<String> expected = Collections.nCopies(traces,
OrderedIndex.DEPRECATION_MESSAGE);
- NodeBuilder root = InitialContent.INITIAL_CONTENT.builder();
+ final List<String> expected = Collections.nCopies(traces,
DEPRECATION_MESSAGE);
+ NodeBuilder root = EMPTY_NODE.builder();
createIndexDef(root);
custom.starting();
@@ -107,4 +114,29 @@ public class OrderedPropertyIndexEditorP
assertFalse(root.getChildNode(INDEX_DEFINITIONS_NAME).getChildNode(indexName)
.getChildNode(INDEX_CONTENT_NODE_NAME).exists());
}
+
+ @Test
+ public void providerShouldBeAvailable() throws Exception {
+ String failOnMissingProviderName =
"oak.indexUpdate.failOnMissingIndexProvider";
+ String oldVal = System.getProperty(failOnMissingProviderName);
+ System.setProperty(failOnMissingProviderName, "true");
+
+ CommitHook hook = new EditorHook(new IndexUpdateProvider(new
OrderedPropertyIndexEditorProvider()));
+
+ NodeBuilder root = EMPTY_NODE.builder();
+
+ createIndexDef(root).setProperty("reindex", false);
+
+ NodeState before = root.getNodeState();
+ root.child("foo");
+ NodeState after = root.getNodeState();
+
+ hook.processCommit(before, after, CommitInfo.EMPTY);
+
+ if (oldVal == null) {
+ System.clearProperty(failOnMissingProviderName);
+ } else {
+ System.setProperty(failOnMissingProviderName, oldVal);
+ }
+ }
}