[2/2] qpid-broker-j git commit: QPID-8104: [Broker-J] [Query] Generalise the implementation so that aliases may appear within expressions within the order-by clause
QPID-8104: [Broker-J] [Query] Generalise the implementation so that aliases may appear within expressions within the order-by clause (cherry picked from commit 38819bcac6dc5481357d2c05aaf281e7c83532fe) Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/7c69d170 Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/7c69d170 Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/7c69d170 Branch: refs/heads/7.0.x Commit: 7c69d1704b26064da9831a1c076fa0d3d43e6db8 Parents: 40f1b09 Author: Keith WallAuthored: Fri Feb 23 09:21:04 2018 + Committer: Alex Rudyy Committed: Mon Feb 26 16:28:13 2018 + -- .../qpid/server/filter/OrderByExpression.java | 10 -- .../servlet/query/ConfiguredObjectQuery.java| 33 +--- .../query/ConfiguredObjectQueryTest.java| 18 +++ 3 files changed, 39 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/7c69d170/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java -- diff --git a/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java b/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java index 20120dc..87d45d1 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java +++ b/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java @@ -58,14 +58,4 @@ public class OrderByExpression implements Expression { return ((Number)((ConstantExpression)_expression).getValue()).intValue(); } - -public boolean isNamed() -{ -return (_expression instanceof NamedExpression); -} - -public String getName() -{ -return ((NamedExpression) _expression).getName(); -} } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/7c69d170/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java -- diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java index 1b22da0..f06051d 100644 --- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java +++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java @@ -266,9 +266,8 @@ public final class ConfiguredObjectQuery private final List _orderByExpressions; public OrderByComparator(final List orderByExpressions, - final HeadersAndValueExpressions headersAndValue) + final List valueExpressions) { -final List valueExpressions = headersAndValue.getValueExpressions(); _orderByExpressions = new ArrayList<>(orderByExpressions); for (ListIterator iterator = _orderByExpressions.listIterator(); iterator.hasNext(); ) { @@ -287,12 +286,6 @@ public final class ConfiguredObjectQuery iterator.set(orderByExpression); } } -else if (orderByExpression.isNamed() && headersAndValue.hasHeader(orderByExpression.getName())) -{ -Expression expression = headersAndValue.getValueExpressionForHeader(orderByExpression.getName()); -orderByExpression = new OrderByExpression(expression, orderByExpression.getOrder()); -iterator.set(orderByExpression); -} } } @@ -343,19 +336,35 @@ public final class ConfiguredObjectQuery final String orderByClause, final HeadersAndValueExpressions headersAndValue) { -List orderByExpressions = parseOrderByClause(orderByClause); +List orderByExpressions = parseOrderByClause(orderByClause, headersAndValue); List orderedObjects = new ArrayList<>(unorderedResults.size()); orderedObjects.addAll(unorderedResults); -Comparator comparator = new OrderByComparator(orderByExpressions, headersAndValue); +Comparator comparator = new OrderByComparator(orderByExpressions, headersAndValue.getValueExpressions()); Collections.sort(orderedObjects,
qpid-broker-j git commit: QPID-8104: [Broker-J] [Query] Generalise the implementation so that aliases may appear within expressions within the order-by clause
Repository: qpid-broker-j Updated Branches: refs/heads/master 9704e609d -> 38819bcac QPID-8104: [Broker-J] [Query] Generalise the implementation so that aliases may appear within expressions within the order-by clause Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/38819bca Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/38819bca Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/38819bca Branch: refs/heads/master Commit: 38819bcac6dc5481357d2c05aaf281e7c83532fe Parents: 9704e60 Author: Keith WallAuthored: Fri Feb 23 09:21:04 2018 + Committer: Keith Wall Committed: Fri Feb 23 09:23:12 2018 + -- .../qpid/server/filter/OrderByExpression.java | 10 -- .../servlet/query/ConfiguredObjectQuery.java| 33 +--- .../query/ConfiguredObjectQueryTest.java| 18 +++ 3 files changed, 39 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/38819bca/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java -- diff --git a/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java b/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java index 20120dc..87d45d1 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java +++ b/broker-core/src/main/java/org/apache/qpid/server/filter/OrderByExpression.java @@ -58,14 +58,4 @@ public class OrderByExpression implements Expression { return ((Number)((ConstantExpression)_expression).getValue()).intValue(); } - -public boolean isNamed() -{ -return (_expression instanceof NamedExpression); -} - -public String getName() -{ -return ((NamedExpression) _expression).getName(); -} } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/38819bca/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java -- diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java index 1b22da0..f06051d 100644 --- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java +++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQuery.java @@ -266,9 +266,8 @@ public final class ConfiguredObjectQuery private final List _orderByExpressions; public OrderByComparator(final List orderByExpressions, - final HeadersAndValueExpressions headersAndValue) + final List valueExpressions) { -final List valueExpressions = headersAndValue.getValueExpressions(); _orderByExpressions = new ArrayList<>(orderByExpressions); for (ListIterator iterator = _orderByExpressions.listIterator(); iterator.hasNext(); ) { @@ -287,12 +286,6 @@ public final class ConfiguredObjectQuery iterator.set(orderByExpression); } } -else if (orderByExpression.isNamed() && headersAndValue.hasHeader(orderByExpression.getName())) -{ -Expression expression = headersAndValue.getValueExpressionForHeader(orderByExpression.getName()); -orderByExpression = new OrderByExpression(expression, orderByExpression.getOrder()); -iterator.set(orderByExpression); -} } } @@ -343,19 +336,35 @@ public final class ConfiguredObjectQuery final String orderByClause, final HeadersAndValueExpressions headersAndValue) { -List orderByExpressions = parseOrderByClause(orderByClause); +List orderByExpressions = parseOrderByClause(orderByClause, headersAndValue); List orderedObjects = new ArrayList<>(unorderedResults.size()); orderedObjects.addAll(unorderedResults); -Comparator comparator = new OrderByComparator(orderByExpressions, headersAndValue); +Comparator comparator = new OrderByComparator(orderByExpressions, headersAndValue.getValueExpressions());