Skip to content

Commit

Permalink
Replace jackson2 by org.codehaus.jackson 1.9.9
Browse files Browse the repository at this point in the history
  • Loading branch information
velo committed Apr 28, 2016
1 parent b16da2b commit a689886
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 55 deletions.
17 changes: 6 additions & 11 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,14 @@
<version>8.16.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.4</version>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.6.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.4</version>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.9</version>
</dependency>

<dependency>
Expand Down
16 changes: 9 additions & 7 deletions src/main/java/feign/jackson/JacksonDecoder.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@
*/
package feign.jackson;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.RuntimeJsonMappingException;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.lang.reflect.Type;
import java.util.Collections;

import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.Module;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.RuntimeJsonMappingException;

import feign.Response;
import feign.Util;
import feign.codec.Decoder;
Expand All @@ -39,8 +39,10 @@ public JacksonDecoder() {
}

public JacksonDecoder(Iterable<Module> modules) {
this(new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.registerModules(modules));
this(new ObjectMapper().configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false));
for (Module module : modules) {
this.mapper.registerModule(module);
}
}

public JacksonDecoder(ObjectMapper mapper) {
Expand Down
28 changes: 16 additions & 12 deletions src/main/java/feign/jackson/JacksonEncoder.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,17 @@
*/
package feign.jackson;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Collections;

import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.Module;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.type.JavaType;

import feign.RequestTemplate;
import feign.codec.EncodeException;
import feign.codec.Encoder;
Expand All @@ -39,9 +40,12 @@ public JacksonEncoder() {

public JacksonEncoder(Iterable<Module> modules) {
this(new ObjectMapper()
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.configure(SerializationFeature.INDENT_OUTPUT, true)
.registerModules(modules));
.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL)
.configure(SerializationConfig.Feature.INDENT_OUTPUT, true));
for (Module module : modules) {
this.mapper.registerModule(module);
}

}

public JacksonEncoder(ObjectMapper mapper) {
Expand All @@ -52,8 +56,8 @@ public JacksonEncoder(ObjectMapper mapper) {
public void encode(Object object, Type bodyType, RequestTemplate template) {
try {
JavaType javaType = mapper.getTypeFactory().constructType(bodyType);
template.body(mapper.writerFor(javaType).writeValueAsString(object));
} catch (JsonProcessingException e) {
template.body(mapper.writerWithType(javaType).writeValueAsString(object));
} catch (IOException e) {
throw new EncodeException(e.getMessage(), e);
}
}
Expand Down
51 changes: 26 additions & 25 deletions src/test/java/feign/jackson/JacksonCodecTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,11 @@
*/
package feign.jackson;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;

import org.junit.Test;
import static feign.Util.UTF_8;
import static feign.assertj.FeignAssertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import java.io.IOException;
import java.util.Arrays;
Expand All @@ -37,14 +30,22 @@
import java.util.List;
import java.util.Map;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.Version;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.Module;
import org.codehaus.jackson.map.SerializerProvider;
import org.codehaus.jackson.map.deser.std.StdDeserializer;
import org.codehaus.jackson.map.module.SimpleModule;
import org.codehaus.jackson.type.TypeReference;
import org.junit.Test;

import feign.RequestTemplate;
import feign.Response;

import static feign.Util.UTF_8;
import static feign.assertj.FeignAssertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

public class JacksonCodecTest {

private String zonesJson = ""//
Expand Down Expand Up @@ -120,7 +121,7 @@ public void emptyBodyDecodesToNull() throws Exception {
public void customDecoder() throws Exception {
JacksonDecoder decoder = new JacksonDecoder(
Arrays.<Module>asList(
new SimpleModule().addDeserializer(Zone.class, new ZoneDeserializer())));
newModule().addDeserializer(Zone.class, new ZoneDeserializer())));

List<Zone> zones = new LinkedList<Zone>();
zones.add(new Zone("DENOMINATOR.IO."));
Expand All @@ -135,7 +136,7 @@ public void customDecoder() throws Exception {
@Test
public void customEncoder() throws Exception {
JacksonEncoder encoder = new JacksonEncoder(
Arrays.<Module>asList(new SimpleModule().addSerializer(Zone.class, new ZoneSerializer())));
Arrays.<Module>asList(newModule().addSerializer(Zone.class, new ZoneSerializer())));

List<Zone> zones = new LinkedList<Zone>();
zones.add(new Zone("denominator.io."));
Expand All @@ -154,6 +155,10 @@ public void customEncoder() throws Exception {
+ "} ]");
}

private SimpleModule newModule() {
return new SimpleModule("PolymorphicAnalysisInfoDeserializerModule", new Version(1, 0, 0, null));
}

static class Zone extends LinkedHashMap<String, Object> {

private static final long serialVersionUID = 1L;
Expand Down Expand Up @@ -186,7 +191,7 @@ public Zone deserialize(JsonParser jp, DeserializationContext ctxt) throws IOExc
jp.nextToken();
while (jp.nextToken() != JsonToken.END_OBJECT) {
String name = jp.getCurrentName();
String value = jp.getValueAsString();
String value = jp.getText();
if (value != null) {
zone.put(name, value.toUpperCase());
}
Expand All @@ -195,11 +200,7 @@ public Zone deserialize(JsonParser jp, DeserializationContext ctxt) throws IOExc
}
}

static class ZoneSerializer extends StdSerializer<Zone> {

public ZoneSerializer() {
super(Zone.class);
}
static class ZoneSerializer extends JsonSerializer<Zone> {

@Override
public void serialize(Zone value, JsonGenerator jgen, SerializerProvider provider)
Expand Down

0 comments on commit a689886

Please sign in to comment.