package io.dropwizard.java8;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import io.dropwizard.Bundle;
import io.dropwizard.java8.jersey.OptionalMessageBodyWriter;
import io.dropwizard.java8.jersey.OptionalParamFeature;
import io.dropwizard.java8.validation.valuehandling.OptionalValidatedValueUnwrapper;
import io.dropwizard.jersey.validation.Validators;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import javax.validation.ValidatorFactory;
public class Java8Bundle implements Bundle {
@Override
public void initialize(final Bootstrap<?> bootstrap) {
bootstrap.getObjectMapper().registerModules(new Jdk8Module());
bootstrap.getObjectMapper().registerModules(new JavaTimeModule());
final ValidatorFactory validatorFactory = Validators.newConfiguration()
.addValidatedValueHandler(new OptionalValidatedValueUnwrapper())
.buildValidatorFactory();
bootstrap.setValidatorFactory(validatorFactory);
}
@Override
public void run(final Environment environment) {
environment.jersey().register(OptionalMessageBodyWriter.class);
environment.jersey().register(OptionalParamFeature.class);
}
}