From 8b397bf997004dc18482a23f9d3992d37337c832 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Mon, 19 Sep 2016 15:16:21 +0200 Subject: [PATCH 1/2] DATAMONGO-1492 - o.s.d.m.core.aggregation.AggregationExpression should be public. Prepare issue branch. --- pom.xml | 2 +- spring-data-mongodb-cross-store/pom.xml | 4 ++-- spring-data-mongodb-distribution/pom.xml | 2 +- spring-data-mongodb-log4j/pom.xml | 2 +- spring-data-mongodb/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index dfb64f9ba3..6e626a0685 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-mongodb-parent - 1.10.0.BUILD-SNAPSHOT + 1.10.0.DATAMONGO-1492-SNAPSHOT pom Spring Data MongoDB diff --git a/spring-data-mongodb-cross-store/pom.xml b/spring-data-mongodb-cross-store/pom.xml index ae0a5d6c8f..4f54a8217c 100644 --- a/spring-data-mongodb-cross-store/pom.xml +++ b/spring-data-mongodb-cross-store/pom.xml @@ -6,7 +6,7 @@ org.springframework.data spring-data-mongodb-parent - 1.10.0.BUILD-SNAPSHOT + 1.10.0.DATAMONGO-1492-SNAPSHOT ../pom.xml @@ -48,7 +48,7 @@ org.springframework.data spring-data-mongodb - 1.10.0.BUILD-SNAPSHOT + 1.10.0.DATAMONGO-1492-SNAPSHOT diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml index 2d02722262..e58aafd036 100644 --- a/spring-data-mongodb-distribution/pom.xml +++ b/spring-data-mongodb-distribution/pom.xml @@ -13,7 +13,7 @@ org.springframework.data spring-data-mongodb-parent - 1.10.0.BUILD-SNAPSHOT + 1.10.0.DATAMONGO-1492-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb-log4j/pom.xml b/spring-data-mongodb-log4j/pom.xml index ee5e3336db..ae31dc6710 100644 --- a/spring-data-mongodb-log4j/pom.xml +++ b/spring-data-mongodb-log4j/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-mongodb-parent - 1.10.0.BUILD-SNAPSHOT + 1.10.0.DATAMONGO-1492-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 8072d3f665..6f26922f14 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -11,7 +11,7 @@ org.springframework.data spring-data-mongodb-parent - 1.10.0.BUILD-SNAPSHOT + 1.10.0.DATAMONGO-1492-SNAPSHOT ../pom.xml From 55998197a1b76d5c9b45d22aa24143a9ef0cbe79 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Mon, 19 Sep 2016 15:22:11 +0200 Subject: [PATCH 2/2] DATAMONGO-1492 - Make o.s.d.m.core.aggregation.AggregationExpression public. By turning `AggregationExpression` public we allow adding custom expressions without workarounds. It is now possible to create eg. `ProjectionOperation` like: ProjectionOperation agg = Aggregation.project() .and(new AggregationExpression() { @Override public DBObject toDbObject(AggregationOperationContext context) { DBObject filterExpression = new BasicDBObject(); filterExpression.put("input", "$x"); filterExpression.put("as", "y"); filterExpression.put("cond", new BasicDBObject("$eq", Arrays. asList("$$y.z", 2))); return new BasicDBObject("$filter", filterExpression); } }).as("profile"); --- .../mongodb/core/aggregation/AggregationExpression.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpression.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpression.java index c25ae17bab..ff5e6681d1 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpression.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpression.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 the original author or authors. + * Copyright 2015-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,16 +20,17 @@ /** * An {@link AggregationExpression} can be used with field expressions in aggregation pipeline stages like * {@code project} and {@code group}. - * + * * @author Thomas Darimont * @author Oliver Gierke + * @author Christoph Strobl */ -interface AggregationExpression { +public interface AggregationExpression { /** * Turns the {@link AggregationExpression} into a {@link DBObject} within the given * {@link AggregationOperationContext}. - * + * * @param context * @return */