Author: sergiykarpenko
Date: 2011-08-30 10:36:07 -0400 (Tue, 30 Aug 2011)
New Revision: 4814
Removed:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java
Log:
EXOJCR-1239: patch from JCR-1571 temporary reverted
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java 2011-08-30
13:45:20 UTC (rev 4813)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java 2011-08-30
14:36:07 UTC (rev 4814)
@@ -538,14 +538,15 @@
{
if (position != LocationStepQueryNode.NONE)
{
- Document node = reader.document(i,
FieldSelectors.UUID_AND_PARENT_AND_INDEX);
+ Document node = reader.document(i, FieldSelectors.UUID_AND_PARENT);
String parentId = node.get(FieldNames.PARENT);
String id = node.get(FieldNames.UUID);
try
{
+ //NodeState state = (NodeState) itemMgr.getItemState(parentId);
+ NodeData state = (NodeData)itemMgr.getItemData(parentId);
if (nameTest == null)
{
- NodeData state = (NodeData)itemMgr.getItemData(parentId);
// only select this node if it is the child at
// specified position
if (position == LocationStepQueryNode.LAST)
@@ -573,7 +574,6 @@
// specified position
if (position == LocationStepQueryNode.LAST)
{
- NodeData state = (NodeData)itemMgr.getItemData(parentId);
// only select last
if (state == null)
@@ -591,11 +591,6 @@
}
}
}
- else if (version.getVersion() >=
IndexFormatVersion.V4.getVersion())
- {
- if (Integer.valueOf(node.get(FieldNames.INDEX)) != position)
- return false;
- }
else
{
NodeData nodeData = (NodeData)itemMgr.getItemData(id);
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java 2011-08-30
13:45:20 UTC (rev 4813)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java 2011-08-30
14:36:07 UTC (rev 4814)
@@ -64,11 +64,6 @@
public static final String LOCAL_NAME = "_:LOCAL_NAME".intern();
/**
- * Name of the field that contains the index of the item.
- */
- public static final String INDEX = "_:INDEX".intern();
-
- /**
* Name of the field that contains the namespace URI of the node name. Terms
* are not tokenized.
*/
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java 2011-08-30
13:45:20 UTC (rev 4813)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java 2011-08-30
14:36:07 UTC (rev 4814)
@@ -63,25 +63,4 @@
}
}
};
-
- public static final FieldSelector UUID_AND_PARENT_AND_INDEX = new FieldSelector() {
- /**
- * Accepts {@link FieldNames#UUID}, {@link FieldNames#PARENT}
- * and {@link FieldNames#INDEX}.
- *
- * @param fieldName the field name to check.
- * @return result.
- */
- public FieldSelectorResult accept(String fieldName) {
- if (FieldNames.UUID == fieldName) {
- return FieldSelectorResult.LOAD;
- } else if (FieldNames.PARENT == fieldName) {
- return FieldSelectorResult.LOAD;
- } else if (FieldNames.INDEX == fieldName) {
- return FieldSelectorResult.LOAD;
- } else {
- return FieldSelectorResult.NO_LOAD;
- }
- }
- };
}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java 2011-08-30
13:45:20 UTC (rev 4813)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java 2011-08-30
14:36:07 UTC (rev 4814)
@@ -16,10 +16,10 @@
*/
package org.exoplatform.services.jcr.impl.core.query.lucene;
-import org.apache.lucene.index.IndexReader;
-
import java.util.Collection;
+import org.apache.lucene.index.IndexReader;
+
/**
* This class indicates the lucene index format that is used.
* <ul>
@@ -52,16 +52,11 @@
public static final IndexFormatVersion V2 = new IndexFormatVersion(2);
/**
- * V3 is the index format for Jackrabbit releases 1.5.x
+ * V3 is the index format for Jackrabbit releases >= 1.5
*/
public static final IndexFormatVersion V3 = new IndexFormatVersion(3);
/**
- * V4 is the index format for Jackrabbit releases >= 1.6
- */
- public static final IndexFormatVersion V4 = new IndexFormatVersion(4);
-
- /**
* The used version of the index format
*/
private final int version;
@@ -109,9 +104,7 @@
public static IndexFormatVersion getVersion(IndexReader indexReader) {
Collection fields = indexReader.getFieldNames(
IndexReader.FieldOption.ALL);
- if (fields.contains(FieldNames.INDEX) || indexReader.numDocs() == 0) {
- return IndexFormatVersion.V4;
- } else if (fields.contains(FieldNames.LOCAL_NAME)) {
+ if (fields.contains(FieldNames.LOCAL_NAME) || indexReader.numDocs() == 0) {
return IndexFormatVersion.V3;
} else if (fields.contains(FieldNames.PROPERTIES_SET)) {
return IndexFormatVersion.V2;
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java 2011-08-30
13:45:20 UTC (rev 4813)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java 2011-08-30
14:36:07 UTC (rev 4814)
@@ -217,12 +217,6 @@
// unknown uri<->prefix mappings
}
- if (indexFormatVersion.getVersion() >= IndexFormatVersion.V4.getVersion())
- {
- doc.add(new Field(FieldNames.INDEX,
Integer.toString(node.getQPath().getIndex()), Field.Store.YES,
- Field.Index.NOT_ANALYZED_NO_NORMS));
- }
-
Collection<PropertyData> props = node.getChildPropertiesData();
if (props == null)
{
@@ -340,7 +334,7 @@
if (encProp == null)
{
encProp =
- (PropertyData)stateProvider.getItemData(node, new
QPathEntry(Constants.JCR_ENCODING, 0),
+ (PropertyData)stateProvider.getItemData(node, new
QPathEntry(Constants.JCR_ENCODING, 0),
ItemType.PROPERTY);
}
Deleted:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java 2011-08-30
13:45:20 UTC (rev 4813)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java 2011-08-30
14:36:07 UTC (rev 4814)
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2003-2011 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not,
see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.api.core.query;
-
-import org.exoplatform.services.jcr.usecases.BaseUsecasesTest;
-
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.query.Query;
-import javax.jcr.query.QueryManager;
-import javax.jcr.query.QueryResult;
-
-/**
- * Created by The eXo Platform SAS.
- *
- * <br/>Date:
- *
- * @author <a href="karpenko.sergiy(a)gmail.com">Karpenko Sergiy</a>
- * @version $Id: TestIndexReordering.java 111 2008-11-11 11:11:11Z serg $
- */
-public class TestQueryIndexReordering extends BaseUsecasesTest
-{
-
- public void testReordering() throws Exception
- {
- Node testRoot = this.root.addNode("testSameNameSiblingDelete");
-
- Node subNode_1 = testRoot.addNode("node", "nt:unstructured");
// 1
- subNode_1.addMixin("mix:referenceable");
- subNode_1.setProperty("prop", "data 1");
- Node subNode_2 = testRoot.addNode("node", "nt:unstructured");
// 2
- subNode_2.addMixin("mix:referenceable");
- subNode_2.setProperty("prop", "data 2");
- Node subNode_3 = testRoot.addNode("node", "nt:unstructured");
// 3
- subNode_3.addMixin("mix:referenceable");
- subNode_3.setProperty("prop", "data 3");
- session.save();
-
- //check the index
- String sqlQuery;
- Query query;
- QueryResult queryResult;
- NodeIterator iterator;
- Node node;
- QueryManager qm = session.getWorkspace().getQueryManager();
-
- sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path =
'/testSameNameSiblingDelete/node[1]'";
- query = qm.createQuery(sqlQuery, Query.SQL);
- queryResult = query.execute();
- iterator = queryResult.getNodes();
- assertTrue("Node expected ", iterator.getSize() == 1);
- node = iterator.nextNode();
- assertEquals("Wrong id ", subNode_1.getUUID(), node.getUUID());
- assertEquals("Wrong path ", subNode_1.getPath(), node.getPath());
-
- sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path =
'/testSameNameSiblingDelete/node[2]'";
- query = qm.createQuery(sqlQuery, Query.SQL);
- queryResult = query.execute();
- iterator = queryResult.getNodes();
- assertTrue("Node expected ", iterator.getSize() == 1);
- node = iterator.nextNode();
- assertEquals("Wrong id ", subNode_2.getUUID(), node.getUUID());
- assertEquals("Wrong path ", subNode_2.getPath(), node.getPath());
-
- sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path =
'/testSameNameSiblingDelete/node[3]'";
- query = qm.createQuery(sqlQuery, Query.SQL);
- queryResult = query.execute();
- iterator = queryResult.getNodes();
- assertTrue("Node expected ", iterator.getSize() == 1);
- node = iterator.nextNode();
- assertEquals("Wrong id ", subNode_3.getUUID(), node.getUUID());
- assertEquals("Wrong path ", subNode_3.getPath(), node.getPath());
-
- // usecase - order to the end,
- // i.e. /testSameNameSiblingDelete/node[2] will be UPDATED to
- // /testSameNameSiblingDelete/node[1]
- // i.e. /testSameNameSiblingDelete/node[3] will be UPDATED to
- // /testSameNameSiblingDelete/node[2]
- subNode_1.getParent().orderBefore("node", null);
- session.save();
-
- sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path =
'/testSameNameSiblingDelete/node[1]'";
- query = qm.createQuery(sqlQuery, Query.SQL);
- queryResult = query.execute();
- iterator = queryResult.getNodes();
- assertTrue("Node expected ", iterator.getSize() == 1);
- node = iterator.nextNode();
- assertEquals("Wrong id ", subNode_2.getUUID(), node.getUUID());
- assertEquals("Wrong path ", subNode_2.getPath(), node.getPath());
-
- sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path =
'/testSameNameSiblingDelete/node[2]'";
- query = qm.createQuery(sqlQuery, Query.SQL);
- queryResult = query.execute();
- iterator = queryResult.getNodes();
- assertTrue("Node expected ", iterator.getSize() == 1);
- node = iterator.nextNode();
- assertEquals("Wrong id ", subNode_3.getUUID(), node.getUUID());
- assertEquals("Wrong path ", subNode_3.getPath(), node.getPath());
-
- sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path =
'/testSameNameSiblingDelete/node[3]'";
- query = qm.createQuery(sqlQuery, Query.SQL);
- queryResult = query.execute();
- iterator = queryResult.getNodes();
- assertTrue("Node expected ", iterator.getSize() == 1);
- node = iterator.nextNode();
- assertEquals("Wrong id ", subNode_1.getUUID(), node.getUUID());
- assertEquals("Wrong path ", subNode_1.getPath(), node.getPath());
- }
-
-}