Skip to content

Instantly share code, notes, and snippets.

@jhaber
Created May 28, 2015 01:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jhaber/c289e348aa59ed824e09 to your computer and use it in GitHub Desktop.
Save jhaber/c289e348aa59ed824e09 to your computer and use it in GitHub Desktop.
package com.hubspot.jersey.dropwizard.managed;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.jaxrs.cfg.JaxRSFeature;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.yammer.dropwizard.config.Environment;
import com.yammer.dropwizard.lifecycle.Managed;
public class ObjectMapperManaged implements Managed {
private final Provider<Environment> environmentProvider;
private final ObjectMapper objectMapper;
@Inject
public ObjectMapperManaged(Provider<Environment> environmentProvider,
ObjectMapper objectMapper) {
this.environmentProvider = environmentProvider;
this.objectMapper = objectMapper;
}
@Override
public void start() throws Exception {
for (Object o : environmentProvider.get().getJerseyResourceConfig().getSingletons()) {
if (o instanceof JacksonJsonProvider) {
JacksonJsonProvider jsonProvider = (JacksonJsonProvider) o;
jsonProvider.setMapper(objectMapper);
jsonProvider.disable(JaxRSFeature.ALLOW_EMPTY_INPUT);
}
}
}
@Override
public void stop() throws Exception {
// do nothing
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment