Skip to content

Commit

Permalink
Move buildObjectMapper method to Json class
Browse files Browse the repository at this point in the history
  • Loading branch information
Edmundo Alvarez committed Jul 23, 2015
1 parent 20dd84e commit 916c728
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 18 deletions.
18 changes: 2 additions & 16 deletions app/lib/Global.java
Expand Up @@ -18,12 +18,7 @@
*/
package lib;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.google.common.collect.Lists;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
Expand All @@ -32,6 +27,7 @@
import com.google.inject.name.Names;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import lib.json.Json;
import lib.security.PlayAuthenticationListener;
import lib.security.RedirectAuthenticator;
import lib.security.RethrowingFirstSuccessfulStrategy;
Expand Down Expand Up @@ -66,7 +62,6 @@
import play.GlobalSettings;
import play.api.mvc.EssentialFilter;
import play.libs.F;
import play.libs.Json;
import play.mvc.Http;
import play.mvc.Result;

Expand Down Expand Up @@ -145,7 +140,7 @@ public void onStart(Application app) {
// Dirty hack to disable the play2-graylog2 AccessLog if the plugin isn't there
gelfAccessLog = app.configuration().getBoolean("graylog2.appender.send-access-log", false);

final ObjectMapper objectMapper = buildObjectMapper();
final ObjectMapper objectMapper = Json.buildObjectMapper();
Json.setObjectMapper(objectMapper);

final List<Module> modules = Lists.newArrayList();
Expand Down Expand Up @@ -198,15 +193,6 @@ protected void configure() {

}

public static ObjectMapper buildObjectMapper() {
return new ObjectMapper()
.registerModules(new GuavaModule(), new JodaModule())
.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)
.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES)
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}

@Override
public void onStop(Application app) {
injector.getInstance(ApiClient.class).stop();
Expand Down
17 changes: 15 additions & 2 deletions app/lib/json/Json.java
Expand Up @@ -17,14 +17,18 @@

package lib.json;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import lib.Global;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
import com.fasterxml.jackson.datatype.joda.JodaModule;

import java.io.IOException;

public class Json extends play.libs.Json {

protected final static ObjectMapper objectMapper = Global.buildObjectMapper();
protected final static ObjectMapper objectMapper = buildObjectMapper();

/**
* Convert an Object to its string representation using the global ObjectMapper.
Expand All @@ -38,4 +42,13 @@ public static String toJsonString(final Object value) {
throw new RuntimeException(e);
}
}

public static ObjectMapper buildObjectMapper() {
return new ObjectMapper()
.registerModules(new GuavaModule(), new JodaModule())
.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)
.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES)
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}
}

0 comments on commit 916c728

Please sign in to comment.