Skip to content

Commit

Permalink
Fix SearchActorIT.testCursorSearch.
Browse files Browse the repository at this point in the history
Signed-off-by: Yufei Cai <yufei.cai@bosch-si.com>
  • Loading branch information
yufei-cai committed Feb 19, 2020
1 parent 9a8aabd commit f305e43
Showing 1 changed file with 14 additions and 2 deletions.
Expand Up @@ -18,6 +18,7 @@
import static org.eclipse.ditto.services.thingsearch.persistence.PersistenceConstants.THINGS_SYNC_STATE_COLLECTION_NAME;

import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletionStage;

Expand All @@ -29,8 +30,10 @@
import org.eclipse.ditto.model.query.QueryBuilderFactory;
import org.eclipse.ditto.model.query.criteria.CriteriaFactory;
import org.eclipse.ditto.model.query.criteria.CriteriaFactoryImpl;
import org.eclipse.ditto.model.query.expression.FieldExpressionUtil;
import org.eclipse.ditto.model.query.expression.ThingsFieldExpressionFactory;
import org.eclipse.ditto.model.query.things.ModelBasedThingsFieldExpressionFactory;
import org.eclipse.ditto.model.query.expression.ThingsFieldExpressionFactoryImpl;
import org.eclipse.ditto.model.things.Thing;
import org.eclipse.ditto.services.base.actors.DittoRootActor;
import org.eclipse.ditto.services.base.config.http.HttpConfig;
import org.eclipse.ditto.services.base.config.limits.LimitsConfig;
Expand Down Expand Up @@ -229,7 +232,16 @@ private static Route createRoute(final ActorSystem actorSystem, final ActorRef h
}

private static ThingsFieldExpressionFactory getThingsFieldExpressionFactory() {
return new ModelBasedThingsFieldExpressionFactory();
// Not possible to use ModelBasedThingsFieldExpressionFactory
// because the field expression factory is supposed to map 'thingId' to '_id', which is only meaningful for MongoDB
final Map<String, String> mappings = new HashMap<>(6);
mappings.put(FieldExpressionUtil.FIELD_NAME_THING_ID, FieldExpressionUtil.FIELD_ID);
mappings.put(FieldExpressionUtil.FIELD_NAME_NAMESPACE, FieldExpressionUtil.FIELD_NAMESPACE);
addMapping(mappings, Thing.JsonFields.POLICY_ID);
addMapping(mappings, Thing.JsonFields.REVISION);
addMapping(mappings, Thing.JsonFields.MODIFIED);
addMapping(mappings, Thing.JsonFields.DEFINITION);
return new ThingsFieldExpressionFactoryImpl(mappings);
}

private static void addMapping(final Map<String, String> fieldMappings, final JsonFieldDefinition<?> definition) {
Expand Down

0 comments on commit f305e43

Please sign in to comment.