dropwizard-java8
bundle merged into mainline #1365dropwizard-spdy
module is removed in favor of dropwizard-http2
#1330logback-access
for HTTP request logging #1415toString
method during deserializing enum values from JSON #1340SizeUnit
suffixes #1380ResourceTestRule
are registered by default #1387RequestLogFactory
#1290inheritedChannel
option #1410DropwizardAppRule
at the suite level #1411MigrationBundles
#1430Application.run
method #1503ConfigurationSourceProvider
for reading resources from classpath #1314@UnwrapValidatedValue
annotation to BaseReporterFactory.frequency #1308, #1309DataSourceFactory
by deprecating PooledDataSourceFactory#getHealthCheckValidationQuery()
and PooledDataSourceFactory#getHealthCheckValidationTimeout()
#1321, #1322null
values in JAX-RS resource method parameters of type Optional<T>
as absent value after conversion #1323CachingAuthenticator
with caching results of failed authentication attempts #1082ServerFactory
#785FileAppenderFactory
. #1000FileAppenderFactory
#1218MetricRegistry
during bootstrap (e.g. with HdrHistogram) #1015ObjectMapper
during bootstrap. #1112toString
#1104Configuration
via test rules #1131SessionFactory
#1182null
values in JAX-RS resource method parameters of type Optional<T>
as absent value after conversion #1323@UnitOfWork
(#850, #915)dropwizard-spdy
from NPN to ALPNdropwizard-spdy
Task
, using metrics annotations.@PATCH
annotation for Jersey resource methods to indicate use of the HTTP PATCH
method.HttpClientBuilder
and JerseyClientBuilder
.DropwizardAppTestRule
.ScanningHibernateBundle
, which scans packages for entities, instead of requiring you to add them individually.CachingAuthenticator
that match a specified Predicate
.--catalog
and --schema
options to Liquibase.stackTracePrefix
configuration option to SyslogAppenderFactory
to configure the pattern prepended to each line in the stack-trace sent to syslog. Defaults to the TAB character, “t”. Note: this is different from the bang prepended to text logs (such as “console”, and “file”), as syslog has different conventions for multi-line messages.Optional
values using validation annotations. Such values require the @UnwrapValidatedValue
annotation, in addition to the validations you wish to use.User-Agent
for HttpClient
. Configurable via the userAgent
configuration option.AllowedMethodsFilter
. Configure allowed HTTP methods for both the application and admin connectors with allowedMethods
.CredentialProvider
for HTTP clients.SyslogAppenderFactory
failing when the application name contains a PCRE reserved character (e.g. /
or $
).DiscoverableSubtypeResolver
using the system ClassLoader
, instead of the local one.--dump
to fail to dump the database.DropwizardAppTestRule
so that it no longer requires a configuration path to operate. When no path is specified, it will now use the applications’ default configuration.Bootstrap
so that getMetricsFactory()
may now be overridden to provide a custom instance to the framework to use.io.dropwizard
group ID and namespace.dropwizard-configuration
,
dropwizard-jackson
, dropwizard-jersey
, dropwizard-jetty
, dropwizard-lifecycle
,
dropwizard-logging
, dropwizard-servlets
, dropwizard-util
, dropwizard-validation
.Environment
to separate classes: JerseyEnvironment
,
LifecycleEnvironment
, etc.dropwizard-views-freemarker
and dropwizard-views-mustache
.
dropwizard-views
just provides infrastructure now.Service
to Application
.dropwizard-forms
, which provides support for multipart MIME entities.dropwizard-spdy
.AppenderFactory
, allowing for arbitrary logging appenders for application and request
logs.ConnectorFactory
, allowing for arbitrary Jetty connectors.ServerFactory
, with multi- and single-connector implementations.ReporterFactory
, for metrics reporters, with Graphite and Ganglia implementations.ConfigurationSourceProvider
to allow loading configuration files from sources other than
the filesystem.ServerFactory
. To bind to privileged ports (e.g. 80), enable startsAsRoot
and set user
and group
, then start your application as the root user.check
command, which loads and validates the service configuration.dropwizard-client
.deflate
-encoded requests and responses.@Session HttpSession session
to have the session context injected.@Session Flash message
to have any existing flash message injected.enums
with fuzzy matching rules (i.e., whitespace
stripping, -
/_
equivalence, case insensitivity, etc.).HibernateBundle#configure(Configuration)
for customization of Hibernate configuration.DateTime
arguments and results when using JDBI.--migrations
command-line option to migrate
command to supply the migrations
file explicitly.application/json
responses.AsyncRequestLog
; now standardized on Jetty 9 NCSA format.DatabaseConfiguration
to DataSourceFactory
, and ConfigurationStrategy
to
DatabaseConfiguration
.dropwizard-db
to use tomcat-jdbc
instead of tomcat-dbcp
.ResourceTest
with ResourceTestRule
, a JUnit TestRule
.ManagedSessionFactory
.ObjectMapperFactory
; use ObjectMapper
instead.Validator
; use javax.validation.Validator
instead.dropwizard-migrations
.TaskServlet
.retries
to HttpClientConfiguration
.ServerLifecycleListener
instances.dropwizard-hibernate
.dropwizard-migrations
.http.acceptorThreadCount
to http.acceptorThreads
.ssl.keyStorePath
to ssl.keyStore
.JerseyClient
. Use Jersey’s Client
class instead.dropwizard-jdbi
.Database
. Use JDBI’s DBI
class instead.Json
class. Use ObjectMapperFactory
and ObjectMapper
instead.Validator
.Optional
resource method parameters.ResourceTest
.dropwizard-testing
.Environment
into Bootstrap
and Environment
, and broke configuration of each into
Service
‘s #initialize(Bootstrap)
and #run(Configuration, Environment)
.AbstractService
and Service
.ScalaService
, so be sure to add ScalaBundle
.JerseyClientFactory
without an Environment
.Optional
support for JDBI.AsyncRequestLog
.UUIDParam
.Note
Upgrading to 0.6.0 will require changing your code. First, your Service
subclass will
need to implement both #initialize(Bootstrap<T>)
and
#run(T, Environment)
. What used to be in initialize
should be moved to run
.
Second, your representation classes need to be migrated to Jackson 2. For the most part,
this is just changing imports to com.fasterxml.jackson.annotation.*
, but there are
some subtler changes in functionality.
Finally, references to 0.5.x’s Json
, JerseyClient
, or JDBI
classes should be
changed to Jackon’s ObjectMapper
, Jersey’s Client
, and JDBI’s DBI
respectively.
dropwizard-testing
dependency.*.mustache
) to dropwizard-views
.DnsResolver
implementations in HttpClientFactory
.JerseyClientConfiguration#compressRequestEntity
for disabling the compression of request
entities.Environment#scanPackagesForResourcesAndProviders
for automatically detecting Jersey
providers and resources.Environment#setSessionHandler
.AssetServlet
:Last-Modified-At
timestamps.JacksonMessageBodyProvider
:@JsonIgnoreType
.@MinSize
, @MaxSize
, and @SizeRange
validations.@MinDuration
, @MaxDuration
, and @DurationRange
validations.TaskServlet
problems with custom context paths.jersey-text-framework-core
as an explicit dependency of dropwizard-testing
. This
helps out some non-Maven build frameworks with bugs in dependency processing.addProvider
to JerseyClientFactory
.NullPointerException
problems with anonymous health check classes.ByteBuffer
instances as JSON.supportedProtocols
to SSL configuration, and disabled SSLv2 by default.Optional<Integer>
query parameters and others.jersey-freemarker
dependency from dropwizard-views
.server
command optional.Log.forThisClass()
.@JsonIgnoreType
to JacksonMessageBodyProvider
.JsonProcessingExceptionMapper
. Now returns human-readable error messages for malformed
or invalid JSON as a 400 Bad Request
. Also handles problems with JSON generation and object
mapping in a developer-friendly way.ConfiguredCommand
.logging.console.format
, logging.file.format
, and logging.syslog.format
parameters for custom log formats.ResourceTest
to allow for enabling/disabling specific Jersey features.Configuration
serializable as JSON.Command
.java.util.logging
level changes.AssetServlet
.withBundle
to ScalaService
to enable bundle mix-ins.Optional
.AssetBundle
.WebApplicationException``s being thrown by ``JerseyClient
.Log#fatal
methods.logging.file.filenamePattern
with logging.file.currentLogFilename
and
logging.file.archivedLogFilenamePattern
.logging.file.retainedFileCount
with logging.file.archivedFileCount
.http.requestLog
now has console
, file
, and syslog
sections.ResourceTest#addProvider(Class<?>)
.ETag
and Last-Modified
support to AssetServlet
.off
logging levels conflicting with YAML’s helpfulness.Optional
support for some JDBC drivers.ResourceTest#getJson()
.CacheBuilderSpec
instances from JSON/YAML.AssetsBundle
and servlet to using cache builder specs.CachingAuthenticator
to using cache builder specs.400 Bad Request
instead of a
500 Server Error
response.connectionTimeout
, maxConnectionsPerRoute
, and keepAlive
to
HttpClientConfiguration
.HostAndPort
in configuration properties.Log
.dropwizard-templates
and added dropwizard-views
instead.AbstractParam#getMediaType()
.NullPointerException
when getting logging levels via JMX.@BearerToken
and added dropwizard-auth
instead.@CacheControl
for resource methods.AbstractService#getJson()
for full Jackson customization.ThreadNameFilter
is now added by default. The thread names Jetty worker threads are set to the
method and URI of the HTTP request they are currently processing.-Ddw.http.port=8090
will override the configuration file to set http.port
to 8090
.ManagedCommand
. It was rarely used and confusing.http.adminPort
is the same as http.port
, the admin servlet will be hosted under
/admin
. This allows Dropwizard applications to be deployed to environments like Heroku, which
require applications to open a single port.http.adminUsername
and http.adminPassword
to allow for Basic HTTP Authentication
for the admin servlet.logging.console.timeZone
and logging.file.timeZone
to control the time zone of
the timestamps in the logs. Defaults to UTC.jackson-datatype-guava
for JSON serialization/deserialization of Guava
types.InstrumentedQueuedThreadPool
from metrics-jetty
.Service
vs. ScalaService
.Configuration
subclass and its fields. Configuration files which don’t end in .yaml
or
.yml
are treated as JSON.Json
to no longer be a singleton.JsonHelpers
in dropwizard-testing
to use normalized JSON strings to compare
JSON.DatabaseConfiguration
. It’s no longer a map of connection names to configuration
objects.Database
to use the validation query in DatabaseConfiguration
for its #ping()
method.HttpConfiguration
defaults to match Jetty’s defaults.Log#setLevel(Level)
.Service#getJerseyContainer
, which allows services to fully customize the Jersey
container instance.http.contextParameters
configuration parameter.ServerCommand
. For the last time.metrics-jetty
. This allows for much
lower-level metrics about your service, including whether or not your thread pools are overloaded.ResourceTest
to dropwizard-testing
, which uses the Jersey Test Framework to provide
full testing of resources.AssetServlet
and AssetsBundle
.rootPath
to Configuration
. It allows you to serve Jersey assets off a specific path
(e.g., /resources/*
vs /*
).AssetServlet
now looks for index.htm
when handling requests for the root URI.@Timed
, @Metered
, or @ExceptionMetered
are
now instrumented via metrics-jersey
.ServerCommand
.ServerCommand#run()
non-final
.ManagedCommand
to provide access to the Environment
, among other things.JerseyClient
‘s thread pool managed.Duration
and Size
configuration parameters.ConfiguredCommand
.Log
, a simple front-end for logging.