Browse Source

Slf4j logging dependeny added to JsonPath.

pull/32/merge
Kalle Stenflo 11 years ago
parent
commit
def3db7ea2
  1. 9
      json-path/src/main/java/com/jayway/jsonpath/JsonPath.java
  2. 50
      json-path/src/main/java/com/jayway/jsonpath/internal/Log.java
  3. 22
      json-path/src/test/java/com/jayway/jsonpath/LogTest.java
  4. 11
      pom.xml

9
json-path/src/main/java/com/jayway/jsonpath/JsonPath.java

@ -16,7 +16,6 @@ package com.jayway.jsonpath;
import com.jayway.jsonpath.internal.IOUtils;
import com.jayway.jsonpath.internal.Log;
import com.jayway.jsonpath.internal.PathToken;
import com.jayway.jsonpath.internal.PathTokenizer;
import com.jayway.jsonpath.internal.filter.PathTokenFilter;
@ -24,6 +23,8 @@ import com.jayway.jsonpath.spi.HttpProviderFactory;
import com.jayway.jsonpath.spi.JsonProvider;
import com.jayway.jsonpath.spi.JsonProviderFactory;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
@ -99,6 +100,8 @@ import static org.apache.commons.lang3.Validate.*;
*/
public class JsonPath {
private static final Logger LOG = LoggerFactory.getLogger(JsonPath.class.getName());
private static Pattern DEFINITE_PATH_PATTERN = Pattern.compile(".*(\\.\\.|\\*|\\[[\\\\/]|\\?|,|:\\s?]|\\[\\s?:|>|\\(|<|=|\\+).*");
private static Pattern INVALID_PATH_PATTERN = Pattern.compile("[^\\?\\+=\\-\\*/!]\\(");
@ -122,8 +125,8 @@ public class JsonPath {
this.tokenizer = new PathTokenizer(jsonPath);
if(Log.isDebugEnabled()){
Log.debug("New JsonPath:\n{}", this.tokenizer.toString());
if(LOG.isDebugEnabled()){
LOG.debug("New JsonPath:\n{}", this.tokenizer.toString());
}
this.filters = new LinkedList<Filter>();

50
json-path/src/main/java/com/jayway/jsonpath/internal/Log.java

@ -1,50 +0,0 @@
package com.jayway.jsonpath.internal;
import org.apache.commons.lang3.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* User: kalle
* Date: 8/28/13
* Time: 10:23 AM
*/
public final class Log {
private Log() {
}
private static boolean enabled = false;
public static void enableDebug(){
enabled = true;
}
public static boolean isDebugEnabled(){
return enabled;
}
public static void debug(String msg, Object... args){
if(enabled){
int argCount = StringUtils.countMatches(msg, "{}");
if(!(argCount == args.length)){
throw new RuntimeException("Invalid debug statement.");
}
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
String cls = stackTraceElements[2].getClassName();
msg = msg.replaceFirst(Pattern.quote("{}"), "%s");
msg = String.format(msg, args);
System.out.println("DEBUG [" + Thread.currentThread().getName() + "] " + cls + " " + msg);
}
}
}

22
json-path/src/test/java/com/jayway/jsonpath/LogTest.java

@ -1,22 +0,0 @@
package com.jayway.jsonpath;
import com.jayway.jsonpath.internal.Log;
import org.junit.Test;
/**
* User: kalle
* Date: 8/28/13
* Time: 10:40 AM
*/
public class LogTest {
@Test
public void logger_expands_templates() {
Log.enableDebug();
Log.debug("foo \n{}", "bar");
}
}

11
pom.xml

@ -253,7 +253,10 @@
Global dependencies
==================================
-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!--
==================================
@ -266,12 +269,6 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>

Loading…
Cancel
Save