Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Dropwizard Java 8 Bundle

Build Status Coverage Status Maven Central

An addon bundle and a set of classes for using Java 8 features like Optional<T> and the new Date/Time API (JSR-310) in a Dropwizard application.

Currently it supports Java 8 versions of dropwizard-auth and dropwizard-jdbi.

INFO: The Dropwizard Java 8 Bundle has been integrated into Dropwizard 1.0.0 and higher and not required any more. Please only use this bundle if you're using an older version of Dropwizard.


Just add Java8Bundle to your Application class as described in the manual in the Bundles paragraph.

Serialization and deserialization

This will add support for Optional<T> to Jersey and support for JSR-310 and Optional<T> to Jackson.

public class DemoApplication extends Application<DemoConfiguration> {
    // [...]
    public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) {
        bootstrap.addBundle(new Java8Bundle());
        // [...]

When using ResourceTestRule in unit tests, Java8 providers need to registered to ensure correct behaviour:

public static final ResourceTestRule resources = ResourceTestRule.builder()
    .addResource(new HelloWorldResource())


To get support for Java 8 objects use io.dropwizard.java8.jdbi.DBIFactory

import io.dropwizard.java8.jdbi.DBIFactory;

public void run(ExampleConfiguration config, Environment environment) {
    final DBIFactory factory = new DBIFactory();
    final DBI jdbi =, config.getDataSourceFactory(), "postgresql");
    final UserDAO dao = jdbi.onDemand(UserDAO.class);
    environment.jersey().register(new UserResource(dao));

When getting a single result use the annotation @SingleValueResult

public interface MyDAO {
    @SqlQuery("select name from something where id = :id")
    Optional<String> findNameById(@Bind("id") int id);

Maven Artifacts

This project is available on Maven Central. To add it to your project simply add the following dependencies to your pom.xml:




When using JSR-310 Dates with Hibernate, Jadira UserType Extend needs to be added:


Dropwizard will auto register this in SessionFactoryFactory.


Please file bug reports and feature requests in GitHub issues.


Copyright (c) 2014-2015 Jochen Schalanda

This library is licensed under the Apache License, Version 2.0.

See or the LICENSE file in this repository for the full license text.


Addon bundle for Dropwizard to support Java 8 features







No packages published