Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 3461 invoked from network); 30 Apr 2009 15:33:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 30 Apr 2009 15:33:54 -0000 Received: (qmail 59133 invoked by uid 500); 30 Apr 2009 15:32:31 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 52967 invoked by uid 500); 30 Apr 2009 15:32:07 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 51403 invoked by uid 99); 30 Apr 2009 15:29:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Apr 2009 15:29:41 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Apr 2009 15:29:31 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 21218238893B; Thu, 30 Apr 2009 15:29:10 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r770284 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene: ./ constraint/ join/ Date: Thu, 30 Apr 2009 15:29:09 -0000 To: commits@jackrabbit.apache.org From: jukka@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090430152910.21218238893B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jukka Date: Thu Apr 30 15:29:09 2009 New Revision: 770284 URL: http://svn.apache.org/viewvc?rev=770284&view=rev Log: JCR-2092: make spi query code compatible with JCR 2.0 Update jackrabbit-core to use JCR 2.0 interfaces instead of the SPI versions Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/JoinQuery.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryObjectModelImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ComparisonConstraint.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/LikeConstraint.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/join/Join.java Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/JoinQuery.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/JoinQuery.java?rev=770284&r1=770283&r2=770284&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/JoinQuery.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/JoinQuery.java Thu Apr 30 15:29:09 2009 @@ -43,7 +43,7 @@ /** * The join type. */ - private final int joinType; + private final String joinType; /** * The QOM join condition. @@ -72,7 +72,7 @@ */ public JoinQuery(MultiColumnQuery left, MultiColumnQuery right, - int joinType, + String joinType, JoinConditionImpl joinCondition, SortComparatorSource scs, HierarchyManager hmgr) { Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryObjectModelImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryObjectModelImpl.java?rev=770284&r1=770283&r2=770284&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryObjectModelImpl.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryObjectModelImpl.java Thu Apr 30 15:29:09 2009 @@ -16,25 +16,25 @@ */ package org.apache.jackrabbit.core.query.lucene; +import javax.jcr.RepositoryException; +import javax.jcr.UnsupportedRepositoryOperationException; +import javax.jcr.query.QueryResult; +import javax.jcr.query.qom.PropertyValue; +import javax.jcr.query.qom.QueryObjectModelConstants; + +import org.apache.jackrabbit.core.ItemManager; +import org.apache.jackrabbit.core.SessionImpl; import org.apache.jackrabbit.core.query.PropertyTypeRegistry; -import org.apache.jackrabbit.core.query.lucene.constraint.ConstraintBuilder; import org.apache.jackrabbit.core.query.lucene.constraint.Constraint; -import org.apache.jackrabbit.spi.commons.query.jsr283.qom.QueryObjectModelConstants; -import org.apache.jackrabbit.spi.commons.query.jsr283.qom.PropertyValue; -import org.apache.jackrabbit.spi.commons.query.qom.QueryObjectModelTree; -import org.apache.jackrabbit.spi.commons.query.qom.ColumnImpl; -import org.apache.jackrabbit.spi.commons.query.qom.OrderingImpl; -import org.apache.jackrabbit.spi.commons.query.qom.DefaultTraversingQOMTreeVisitor; -import org.apache.jackrabbit.spi.commons.query.qom.BindVariableValueImpl; -import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl; -import org.apache.jackrabbit.core.SessionImpl; -import org.apache.jackrabbit.core.ItemManager; +import org.apache.jackrabbit.core.query.lucene.constraint.ConstraintBuilder; import org.apache.jackrabbit.spi.Name; import org.apache.jackrabbit.spi.Path; - -import javax.jcr.RepositoryException; -import javax.jcr.UnsupportedRepositoryOperationException; -import javax.jcr.query.QueryResult; +import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl; +import org.apache.jackrabbit.spi.commons.query.qom.BindVariableValueImpl; +import org.apache.jackrabbit.spi.commons.query.qom.ColumnImpl; +import org.apache.jackrabbit.spi.commons.query.qom.DefaultTraversingQOMTreeVisitor; +import org.apache.jackrabbit.spi.commons.query.qom.OrderingImpl; +import org.apache.jackrabbit.spi.commons.query.qom.QueryObjectModelTree; /** * QueryObjectModelImpl... @@ -116,7 +116,9 @@ Path[] orderProps = new Path[orderings.length]; boolean[] orderSpecs = new boolean[orderings.length]; for (int i = 0; i < orderings.length; i++) { - orderSpecs[i] = orderings[i].getOrder() == QueryObjectModelConstants.ORDER_ASCENDING; + orderSpecs[i] = + QueryObjectModelConstants.JCR_ORDER_ASCENDING.equals( + orderings[i].getOrder()); if (orderings[i].getOperand() instanceof PropertyValue) { PropertyValue pv = (PropertyValue) orderings[i].getOperand(); orderProps[i] = PathFactoryImpl.getInstance().create(pv.getPropertyName()); Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ComparisonConstraint.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ComparisonConstraint.java?rev=770284&r1=770283&r2=770284&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ComparisonConstraint.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ComparisonConstraint.java Thu Apr 30 15:29:09 2009 @@ -18,14 +18,14 @@ import java.io.IOException; -import javax.jcr.Value; import javax.jcr.RepositoryException; +import javax.jcr.Value; +import javax.jcr.query.qom.QueryObjectModelConstants; -import org.apache.jackrabbit.spi.commons.query.jsr283.qom.QueryObjectModelConstants; -import org.apache.jackrabbit.spi.commons.query.qom.SelectorImpl; -import org.apache.jackrabbit.spi.Name; import org.apache.jackrabbit.core.query.lucene.ScoreNode; import org.apache.jackrabbit.core.query.lucene.Util; +import org.apache.jackrabbit.spi.Name; +import org.apache.jackrabbit.spi.commons.query.qom.SelectorImpl; /** * ComparisonConstraint implements a comparison constraint. @@ -41,7 +41,7 @@ /** * The operator. */ - private final int operator; + private final String operator; /** * The static operand. @@ -49,7 +49,7 @@ private final Value operand2; /** - * Creates a new comparision constraint. + * Creates a new comparison constraint. * * @param operand1 the dynamic operand. * @param operator the operator. @@ -57,7 +57,7 @@ * @param selector the selector for this constraint. */ public ComparisonConstraint(DynamicOperand operand1, - int operator, + String operator, Value operand2, SelectorImpl selector) { super(selector); @@ -101,21 +101,20 @@ */ protected boolean evaluate(Value op1) throws RepositoryException { int c = Util.compare(op1, operand2); - switch (operator) { - case OPERATOR_EQUAL_TO: - return c == 0; - case OPERATOR_GREATER_THAN: - return c > 0; - case OPERATOR_GREATER_THAN_OR_EQUAL_TO: - return c >= 0; - case OPERATOR_LESS_THAN: - return c < 0; - case OPERATOR_LESS_THAN_OR_EQUAL_TO: - return c <= 0; - case OPERATOR_NOT_EQUAL_TO: - return c != 0; - default: - throw new IllegalStateException("unsupported operation: " + operator); + if (JCR_OPERATOR_EQUAL_TO.equals(operator)) { + return c == 0; + } else if (JCR_OPERATOR_GREATER_THAN.equals(operator)) { + return c > 0; + } else if (JCR_OPERATOR_GREATER_THAN_OR_EQUAL_TO.equals(operator)) { + return c >= 0; + } else if (JCR_OPERATOR_LESS_THAN.equals(operator)) { + return c < 0; + } else if (JCR_OPERATOR_LESS_THAN_OR_EQUAL_TO.equals(operator)) { + return c <= 0; + } else if (JCR_OPERATOR_NOT_EQUAL_TO.equals(operator)) { + return c != 0; + } else { + throw new IllegalStateException("unsupported operation: " + operator); } } } Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java?rev=770284&r1=770283&r2=770284&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java Thu Apr 30 15:29:09 2009 @@ -18,23 +18,26 @@ import java.util.Map; +import javax.jcr.PropertyType; import javax.jcr.RepositoryException; import javax.jcr.Value; -import javax.jcr.PropertyType; -import javax.jcr.ValueFormatException; import javax.jcr.ValueFactory; +import javax.jcr.ValueFormatException; import javax.jcr.query.InvalidQueryException; +import javax.jcr.query.qom.QueryObjectModelConstants; -import org.apache.jackrabbit.spi.commons.query.qom.ConstraintImpl; -import org.apache.jackrabbit.spi.commons.query.qom.QOMTreeVisitor; +import org.apache.jackrabbit.core.query.lucene.LuceneQueryFactory; +import org.apache.jackrabbit.spi.Name; import org.apache.jackrabbit.spi.commons.query.qom.AndImpl; import org.apache.jackrabbit.spi.commons.query.qom.BindVariableValueImpl; import org.apache.jackrabbit.spi.commons.query.qom.ChildNodeImpl; import org.apache.jackrabbit.spi.commons.query.qom.ChildNodeJoinConditionImpl; import org.apache.jackrabbit.spi.commons.query.qom.ColumnImpl; import org.apache.jackrabbit.spi.commons.query.qom.ComparisonImpl; +import org.apache.jackrabbit.spi.commons.query.qom.ConstraintImpl; import org.apache.jackrabbit.spi.commons.query.qom.DescendantNodeImpl; import org.apache.jackrabbit.spi.commons.query.qom.DescendantNodeJoinConditionImpl; +import org.apache.jackrabbit.spi.commons.query.qom.DynamicOperandImpl; import org.apache.jackrabbit.spi.commons.query.qom.EquiJoinConditionImpl; import org.apache.jackrabbit.spi.commons.query.qom.FullTextSearchImpl; import org.apache.jackrabbit.spi.commons.query.qom.FullTextSearchScoreImpl; @@ -45,20 +48,17 @@ import org.apache.jackrabbit.spi.commons.query.qom.NodeLocalNameImpl; import org.apache.jackrabbit.spi.commons.query.qom.NodeNameImpl; import org.apache.jackrabbit.spi.commons.query.qom.NotImpl; -import org.apache.jackrabbit.spi.commons.query.qom.OrderingImpl; import org.apache.jackrabbit.spi.commons.query.qom.OrImpl; +import org.apache.jackrabbit.spi.commons.query.qom.OrderingImpl; import org.apache.jackrabbit.spi.commons.query.qom.PropertyExistenceImpl; import org.apache.jackrabbit.spi.commons.query.qom.PropertyValueImpl; +import org.apache.jackrabbit.spi.commons.query.qom.QOMTreeVisitor; import org.apache.jackrabbit.spi.commons.query.qom.QueryObjectModelTree; import org.apache.jackrabbit.spi.commons.query.qom.SameNodeImpl; import org.apache.jackrabbit.spi.commons.query.qom.SameNodeJoinConditionImpl; import org.apache.jackrabbit.spi.commons.query.qom.SelectorImpl; -import org.apache.jackrabbit.spi.commons.query.qom.DynamicOperandImpl; import org.apache.jackrabbit.spi.commons.query.qom.StaticOperandImpl; import org.apache.jackrabbit.spi.commons.query.qom.UpperCaseImpl; -import org.apache.jackrabbit.spi.commons.query.jsr283.qom.QueryObjectModelConstants; -import org.apache.jackrabbit.spi.Name; -import org.apache.jackrabbit.core.query.lucene.LuceneQueryFactory; /** * ConstraintBuilder builds a {@link Constraint} from a tree of @@ -173,7 +173,7 @@ DynamicOperand dynOp = (DynamicOperand) op1.accept(this, staticValue); SelectorImpl selector = getSelector(op1.getSelectorQName()); - if (node.getOperator() == QueryObjectModelConstants.OPERATOR_LIKE) { + if (QueryObjectModelConstants.JCR_OPERATOR_LIKE.equals(node.getOperator())) { return new LikeConstraint(dynOp, staticValue, selector); } else { return new ComparisonConstraint(dynOp, node.getOperator(), @@ -230,7 +230,7 @@ } public Object visit(LiteralImpl node, Object data) throws Exception { - return node.getValue(); + return node.getLiteralValue(); } public Object visit(LowerCaseImpl node, Object data) throws Exception { Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/LikeConstraint.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/LikeConstraint.java?rev=770284&r1=770283&r2=770284&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/LikeConstraint.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/LikeConstraint.java Thu Apr 30 15:29:09 2009 @@ -46,7 +46,7 @@ public LikeConstraint(DynamicOperand operand1, Value operand2, SelectorImpl selector) throws RepositoryException { - super(operand1, OPERATOR_LIKE, operand2, selector); + super(operand1, JCR_OPERATOR_LIKE, operand2, selector); this.matcher = Util.createRegexp(operand2.getString()).matcher(""); } Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/join/Join.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/join/Join.java?rev=770284&r1=770283&r2=770284&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/join/Join.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/join/Join.java Thu Apr 30 15:29:09 2009 @@ -21,6 +21,8 @@ import java.util.Arrays; import java.util.LinkedList; +import javax.jcr.query.qom.QueryObjectModelConstants; + import org.apache.jackrabbit.core.query.lucene.MultiColumnQueryHits; import org.apache.jackrabbit.core.query.lucene.ScoreNode; import org.apache.jackrabbit.core.query.lucene.HierarchyResolver; @@ -32,7 +34,6 @@ import org.apache.jackrabbit.spi.commons.query.qom.EquiJoinConditionImpl; import org.apache.jackrabbit.spi.commons.query.qom.ChildNodeJoinConditionImpl; import org.apache.jackrabbit.spi.commons.query.qom.SameNodeJoinConditionImpl; -import org.apache.jackrabbit.spi.commons.query.jsr283.qom.QueryObjectModelConstants; import org.apache.lucene.search.SortComparatorSource; import org.apache.lucene.index.IndexReader; @@ -119,7 +120,7 @@ */ public static Join create(final MultiColumnQueryHits left, final MultiColumnQueryHits right, - final int joinType, + final String joinType, final JoinConditionImpl condition, final IndexReader reader, final HierarchyResolver resolver, @@ -129,7 +130,8 @@ try { return (Join) condition.accept(new DefaultQOMTreeVisitor() { - private boolean isInner = joinType == JOIN_TYPE_INNER; + private boolean isInner = + JCR_JOIN_TYPE_INNER.equals(joinType); private MultiColumnQueryHits outer; private int outerIdx; @@ -138,8 +140,10 @@ MultiColumnQueryHits ancestor = getSourceWithName(node.getAncestorSelectorQName(), left, right); MultiColumnQueryHits descendant = getSourceWithName(node.getDescendantSelectorQName(), left, right); Condition c; - if (isInner || descendant == left && joinType == JOIN_TYPE_LEFT_OUTER - || descendant == right && joinType == JOIN_TYPE_RIGHT_OUTER) { + if (isInner || descendant == left + && JCR_JOIN_TYPE_LEFT_OUTER.equals(joinType) + || descendant == right + && JCR_JOIN_TYPE_RIGHT_OUTER.equals(joinType)) { // also applies to inner join // assumption: DescendantNodeJoin is more // efficient than AncestorNodeJoin, TODO: verify @@ -163,8 +167,10 @@ Name innerName; Name innerPropName; Name outerPropName; - if (isInner || src1 == left && joinType == JOIN_TYPE_LEFT_OUTER - || src1 == right && joinType == JOIN_TYPE_RIGHT_OUTER) { + if (isInner || src1 == left + && JCR_JOIN_TYPE_LEFT_OUTER.equals(joinType) + || src1 == right + && JCR_JOIN_TYPE_RIGHT_OUTER.equals(joinType)) { outer = src1; outerIdx = getIndex(outer, node.getSelector1QName()); inner = src2; @@ -190,8 +196,10 @@ MultiColumnQueryHits child = getSourceWithName(node.getChildSelectorQName(), left, right); MultiColumnQueryHits parent = getSourceWithName(node.getParentSelectorQName(), left, right); Condition c; - if (child == left && joinType == JOIN_TYPE_LEFT_OUTER - || child == right && joinType == JOIN_TYPE_RIGHT_OUTER) { + if (child == left + && JCR_JOIN_TYPE_LEFT_OUTER.equals(joinType) + || child == right + && JCR_JOIN_TYPE_RIGHT_OUTER.equals(joinType)) { outer = child; outerIdx = getIndex(outer, node.getChildSelectorQName()); c = new ChildNodeJoin(parent, reader, resolver, node); @@ -211,8 +219,10 @@ MultiColumnQueryHits src1 = getSourceWithName(node.getSelector1QName(), left, right); MultiColumnQueryHits src2 = getSourceWithName(node.getSelector2QName(), left, right); Condition c; - if (isInner || src1 == left && joinType == JOIN_TYPE_LEFT_OUTER - || src1 == right && joinType == JOIN_TYPE_RIGHT_OUTER) { + if (isInner || src1 == left + && JCR_JOIN_TYPE_LEFT_OUTER.equals(joinType) + || src1 == right + && JCR_JOIN_TYPE_RIGHT_OUTER.equals(joinType)) { outer = src1; outerIdx = getIndex(outer, node.getSelector1QName()); if (node.getSelector2QPath() != null) {