From 3cb6d6b1de0f43baf8a87b322d677ed6399ef53c Mon Sep 17 00:00:00 2001 From: Kalle Stenflo Date: Mon, 6 Oct 2014 14:01:52 +0200 Subject: [PATCH] Added EvaluationListener support. --- .../com/jayway/jsonassert/JsonAssertTest.java | 3 - .../com/jayway/jsonpath/Configuration.java | 52 +++++++-- .../jayway/jsonpath/EvaluationListener.java | 49 +++++++++ .../java/com/jayway/jsonpath/ReadContext.java | 1 + .../jsonpath/internal/CompiledPath.java | 4 +- .../internal/EvaluationAbortException.java | 4 + .../jayway/jsonpath/internal/JsonReader.java | 13 +++ .../internal/token/EvaluationContextImpl.java | 40 ++++++- .../java/com/jayway/jsonpath/BaseTest.java | 1 - .../jsonpath/EvaluationListenerTest.java | 100 ++++++++++++++++++ 10 files changed, 255 insertions(+), 12 deletions(-) create mode 100644 json-path/src/main/java/com/jayway/jsonpath/EvaluationListener.java create mode 100644 json-path/src/main/java/com/jayway/jsonpath/internal/EvaluationAbortException.java create mode 100644 json-path/src/test/java/com/jayway/jsonpath/EvaluationListenerTest.java diff --git a/json-path-assert/src/test/java/com/jayway/jsonassert/JsonAssertTest.java b/json-path-assert/src/test/java/com/jayway/jsonassert/JsonAssertTest.java index 05fb6dd8..2e7f902f 100644 --- a/json-path-assert/src/test/java/com/jayway/jsonassert/JsonAssertTest.java +++ b/json-path-assert/src/test/java/com/jayway/jsonassert/JsonAssertTest.java @@ -1,9 +1,6 @@ package com.jayway.jsonassert; import com.jayway.jsonpath.InvalidPathException; -import com.jayway.jsonpath.JsonPath; -import com.jayway.jsonpath.internal.Path; -import com.jayway.jsonpath.internal.PathCompiler; import org.junit.Test; import java.io.InputStream; diff --git a/json-path/src/main/java/com/jayway/jsonpath/Configuration.java b/json-path/src/main/java/com/jayway/jsonpath/Configuration.java index 1e19081e..bdffa116 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Configuration.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Configuration.java @@ -18,7 +18,12 @@ import com.jayway.jsonpath.internal.spi.json.JsonSmartJsonProvider; import com.jayway.jsonpath.internal.spi.mapper.DefaultMappingProvider; import com.jayway.jsonpath.spi.json.JsonProvider; import com.jayway.jsonpath.spi.mapper.MappingProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.Set; @@ -31,6 +36,8 @@ import static java.util.Arrays.asList; */ public class Configuration { + private static final Logger logger = LoggerFactory.getLogger(Configuration.class); + private static Defaults DEFAULTS = new Defaults() { private final MappingProvider mappingProvider = new DefaultMappingProvider(); @@ -50,6 +57,8 @@ public class Configuration { } }; + + /** * Set Default configuration * @param defaults default configuration settings @@ -61,14 +70,34 @@ public class Configuration { private final JsonProvider jsonProvider; private final MappingProvider mappingProvider; private final Set