You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2016/10/10 14:18:29 UTC
svn commit: r1764103 - in /turbine/fulcrum/trunk/json/jackson2/src:
java/org/apache/fulcrum/json/jackson/
java/org/apache/fulcrum/json/jackson/jsonpath/
test/org/apache/fulcrum/json/jackson/
Author: gk
Date: Mon Oct 10 14:18:29 2016
New Revision: 1764103
URL: http://svn.apache.org/viewvc?rev=1764103&view=rev
Log:
- Decoupling JsonService and JsonPath
Added:
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/DefaultJsonPathWrapper.java (with props)
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/JsonPathDefault.java (with props)
Modified:
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java
Modified: turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java?rev=1764103&r1=1764102&r2=1764103&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java (original)
+++ turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java Mon Oct 10 14:18:29 2016
@@ -23,12 +23,10 @@ import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Collection;
-import java.util.EnumSet;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.configuration.Configurable;
@@ -38,6 +36,7 @@ import org.apache.avalon.framework.logge
import org.apache.avalon.framework.logger.LogEnabled;
import org.apache.fulcrum.json.JsonService;
import org.apache.fulcrum.json.jackson.filters.CustomModuleWrapper;
+import org.apache.fulcrum.json.jackson.jsonpath.DefaultJsonPathWrapper;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
@@ -65,11 +64,6 @@ import com.fasterxml.jackson.databind.se
import com.fasterxml.jackson.databind.ser.PropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
-import com.jayway.jsonpath.Option;
-import com.jayway.jsonpath.spi.json.JacksonJsonProvider;
-import com.jayway.jsonpath.spi.json.JsonProvider;
-import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
-import com.jayway.jsonpath.spi.mapper.MappingProvider;
/**
*
@@ -91,6 +85,7 @@ import com.jayway.jsonpath.spi.mapper.Ma
public class Jackson2MapperService extends AbstractLogEnabled implements
JsonService, Initializable, Configurable {
+
private static final String DEFAULT_TYPING = "defaultTyping";
private static final String CACHE_FILTERS = "cacheFilters";
private static final String DATE_FORMAT = "dateFormat";
@@ -788,26 +783,16 @@ public class Jackson2MapperService exten
if (useJsonPath) {
// set it before runtime
- com.jayway.jsonpath.Configuration.setDefaults(new com.jayway.jsonpath.Configuration.Defaults() {
-
- private final JsonProvider jsonProvider = new JacksonJsonProvider(Jackson2MapperService.this.mapper);
- private final MappingProvider mappingProvider = new JacksonMappingProvider(Jackson2MapperService.this.mapper);
-
- @Override
- public JsonProvider jsonProvider() {
- return jsonProvider;
- }
-
- @Override
- public MappingProvider mappingProvider() {
- return mappingProvider;
- }
+ DefaultJsonPathWrapper djpw = null;
+ try {
+ djpw = new DefaultJsonPathWrapper(this.mapper);
+ getLogger().debug("******** initialized new jsonPath defaults: " +djpw.getJsonPathDefault());
+ } catch (Exception e) {
+ throw new Exception(
+ "JsonMapperService: Error instantiating " + djpw
+ + " using useJsonPath=" + useJsonPath);
+ }
- @Override
- public Set<Option> options() {
- return EnumSet.noneOf(Option.class);
- }
- });
}
}
Added: turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/DefaultJsonPathWrapper.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/DefaultJsonPathWrapper.java?rev=1764103&view=auto
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/DefaultJsonPathWrapper.java (added)
+++ turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/DefaultJsonPathWrapper.java Mon Oct 10 14:18:29 2016
@@ -0,0 +1,50 @@
+package org.apache.fulcrum.json.jackson.jsonpath;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.jayway.jsonpath.Configuration;
+import com.jayway.jsonpath.Configuration.Defaults;
+import com.jayway.jsonpath.JsonPath;
+
+/**
+ * Intermediary class to wrap @link {@link JsonPath} default configuration setting {@link Configuration#setDefaults(Defaults)} with {@link JsonPathDefault}.
+ *
+ * @author gkallidis
+ *
+ */
+public class DefaultJsonPathWrapper {
+
+ private final Defaults jsonPathDefault;
+
+ public DefaultJsonPathWrapper(ObjectMapper mapper) {
+ jsonPathDefault = new JsonPathDefault(mapper);
+ Configuration.setDefaults(jsonPathDefault);
+ }
+
+
+ /**
+ * @return {@link Defaults}
+ */
+ public Defaults getJsonPathDefault() {
+ return jsonPathDefault;
+ }
+
+}
Propchange: turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/DefaultJsonPathWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/JsonPathDefault.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/JsonPathDefault.java?rev=1764103&view=auto
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/JsonPathDefault.java (added)
+++ turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/JsonPathDefault.java Mon Oct 10 14:18:29 2016
@@ -0,0 +1,69 @@
+package org.apache.fulcrum.json.jackson.jsonpath;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.EnumSet;
+import java.util.Set;
+
+import org.apache.fulcrum.json.jackson.Jackson2MapperService;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.jayway.jsonpath.Configuration.Defaults;
+import com.jayway.jsonpath.Option;
+import com.jayway.jsonpath.spi.json.JacksonJsonProvider;
+import com.jayway.jsonpath.spi.json.JsonProvider;
+import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
+import com.jayway.jsonpath.spi.mapper.MappingProvider;
+
+/**
+ * Intermediary class implementing {@link Defaults} by glueing {@link Jackson2MapperService#getMapper()} with internal
+ * objects {@link JacksonJsonProvider} and {@link JacksonMappingProvider}.
+ *
+ * @author gkallidis
+ *
+ */
+public class JsonPathDefault implements
+ com.jayway.jsonpath.Configuration.Defaults {
+
+ private final JsonProvider jsonProvider;
+ private final MappingProvider mappingProvider;
+
+ // Jackson2MapperService.this.mapper
+ public JsonPathDefault(ObjectMapper mapper) {
+ jsonProvider = new JacksonJsonProvider(mapper);
+ mappingProvider = new JacksonMappingProvider( mapper);
+ }
+
+
+ @Override
+ public JsonProvider jsonProvider() {
+ return jsonProvider;
+ }
+
+ @Override
+ public MappingProvider mappingProvider() {
+ return mappingProvider;
+ }
+
+ @Override
+ public Set<Option> options() {
+ return EnumSet.noneOf(Option.class);
+ }
+}
Propchange: turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/jsonpath/JsonPathDefault.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java?rev=1764103&r1=1764102&r2=1764103&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java (original)
+++ turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java Mon Oct 10 14:18:29 2016
@@ -19,11 +19,12 @@ package org.apache.fulcrum.json.jackson;
* under the License.
*/
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -52,7 +53,7 @@ import com.jayway.jsonpath.spi.json.Jack
* Test without type setting
*
* @author gk
- * @version $Id: JacksonMapperTest.java 1738815 2016-04-12 15:22:39Z gk $
+ * @version $Id$
*/
public class JsonPathJacksonTest extends BaseUnit4Test {