or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/maven-io-dropwizard--dropwizard-bom

Bill of materials to make sure a consistent set of versions is used for Dropwizard modules

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/io.dropwizard/dropwizard-bom@4.0.x

To install, run

npx @tessl/cli install tessl/maven-io-dropwizard--dropwizard-bom@4.0.0

index.mddocs/

Dropwizard BOM

Dropwizard BOM (Bill of Materials) is a Maven POM artifact that provides centralized dependency management for all Dropwizard framework modules. It ensures consistent versioning across the entire Dropwizard ecosystem by managing versions of all framework components, eliminating version conflicts and simplifying dependency declarations in consuming projects.

Package Information

  • Package Name: dropwizard-bom
  • Package Type: maven
  • Language: Java
  • Group ID: io.dropwizard
  • Artifact ID: dropwizard-bom
  • Version: 4.0.14
  • Packaging: pom
  • Installation: Import in Maven dependencyManagement section

Core Usage

Import the BOM in your Maven POM's dependencyManagement section:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-bom</artifactId>
            <version>4.0.14</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

After importing the BOM, declare dependencies without version numbers:

<dependencies>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-auth</artifactId>
    </dependency>
</dependencies>

Basic Usage

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.example</groupId>
    <artifactId>my-dropwizard-app</artifactId>
    <version>1.0.0</version>
    
    <!-- Import Dropwizard BOM -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.dropwizard</groupId>
                <artifactId>dropwizard-bom</artifactId>
                <version>4.0.14</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <!-- Declare dependencies without versions -->
    <dependencies>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-jersey</artifactId>
        </dependency>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-jetty</artifactId>
        </dependency>
    </dependencies>
</project>

Capabilities

Core Framework Components

Core Dropwizard framework modules for application lifecycle and configuration.

<!-- Core framework classes and application lifecycle -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-core</artifactId>
</dependency>

<!-- Configuration management and YAML parsing -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-configuration</artifactId>
</dependency>

<!-- Application lifecycle management -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-lifecycle</artifactId>
</dependency>

<!-- Common utilities and helper classes -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-util</artifactId>
</dependency>

<!-- Bean validation integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-validation</artifactId>
</dependency>

Web and HTTP Components

Web server and HTTP-related functionality including JAX-RS and servlet support.

<!-- JAX-RS integration with Jersey -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-jersey</artifactId>
</dependency>

<!-- Jetty server integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-jetty</artifactId>
</dependency>

<!-- Common servlet implementations -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-servlets</artifactId>
</dependency>

<!-- Static asset serving capability -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-assets</artifactId>
</dependency>

<!-- HTML form processing support -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-forms</artifactId>
</dependency>

<!-- HTTP/2 protocol support -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-http2</artifactId>
</dependency>

<!-- HTTP request logging functionality -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-request-logging</artifactId>
</dependency>

Authentication and Security

Authentication and authorization framework for securing applications.

<!-- Authentication and authorization framework -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-auth</artifactId>
</dependency>

Data Access Components

Database connectivity, ORM integration, and data migration tools.

<!-- Database connection pool management -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-db</artifactId>
</dependency>

<!-- Hibernate ORM integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-hibernate</artifactId>
</dependency>

<!-- JDBI 3 database access integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-jdbi3</artifactId>
</dependency>

<!-- Database migration support via Liquibase -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-migrations</artifactId>
</dependency>

Serialization Components

JSON serialization and data format handling.

<!-- Jackson JSON serialization integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-jackson</artifactId>
</dependency>

Monitoring and Metrics Components

Metrics collection, health checks, and monitoring infrastructure.

<!-- Metrics collection and reporting -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-metrics</artifactId>
</dependency>

<!-- Graphite metrics reporting -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-metrics-graphite</artifactId>
</dependency>

<!-- Health check framework -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-health</artifactId>
</dependency>

Logging Components

Logging configuration, management, and structured logging support.

<!-- Logging configuration and management -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-logging</artifactId>
</dependency>

<!-- Structured JSON logging support -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-json-logging</artifactId>
</dependency>

HTTP Client Components

HTTP client functionality with metrics and instrumentation.

<!-- HTTP client with metrics and instrumentation -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-client</artifactId>
</dependency>

View and Template Components

Template rendering engines and view handling.

<!-- View rendering framework -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-views</artifactId>
</dependency>

<!-- FreeMarker template engine integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-views-freemarker</artifactId>
</dependency>

<!-- Mustache template engine integration -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-views-mustache</artifactId>
</dependency>

Testing Components

Testing utilities and support classes for Dropwizard applications.

<!-- Testing utilities and support classes -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-testing</artifactId>
    <scope>test</scope>
</dependency>

Platform Integration Components

Platform-specific integrations and socket support.

<!-- Unix domain socket support -->
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-unix-socket</artifactId>
</dependency>

Managed Dependencies

The BOM manages versions for all 29 Dropwizard modules:

ModulePurposeCategory
dropwizard-coreCore framework and application lifecycleCore
dropwizard-configurationConfiguration management and YAML parsingCore
dropwizard-lifecycleApplication lifecycle managementCore
dropwizard-utilCommon utilities and helper classesCore
dropwizard-validationBean validation integrationCore
dropwizard-jerseyJAX-RS integration with JerseyWeb/HTTP
dropwizard-jettyJetty server integrationWeb/HTTP
dropwizard-servletsCommon servlet implementationsWeb/HTTP
dropwizard-assetsStatic asset servingWeb/HTTP
dropwizard-formsHTML form processing supportWeb/HTTP
dropwizard-http2HTTP/2 protocol supportWeb/HTTP
dropwizard-request-loggingHTTP request loggingWeb/HTTP
dropwizard-authAuthentication and authorizationSecurity
dropwizard-dbDatabase connection pool managementData Access
dropwizard-hibernateHibernate ORM integrationData Access
dropwizard-jdbi3JDBI 3 database accessData Access
dropwizard-migrationsDatabase migration via LiquibaseData Access
dropwizard-jacksonJackson JSON serializationSerialization
dropwizard-metricsMetrics collection and reportingMonitoring
dropwizard-metrics-graphiteGraphite metrics reportingMonitoring
dropwizard-healthHealth check frameworkMonitoring
dropwizard-loggingLogging configuration and managementLogging
dropwizard-json-loggingStructured JSON loggingLogging
dropwizard-clientHTTP client with instrumentationClient
dropwizard-viewsView rendering frameworkTemplates
dropwizard-views-freemarkerFreeMarker template engineTemplates
dropwizard-views-mustacheMustache template engineTemplates
dropwizard-testingTesting utilities and supportTesting
dropwizard-unix-socketUnix domain socket supportPlatform

Benefits

  • Version Consistency: Ensures all Dropwizard modules use compatible versions
  • Simplified Management: Import one BOM instead of managing individual module versions
  • Conflict Resolution: Eliminates dependency version conflicts between Dropwizard modules
  • Transitive Dependencies: Manages transitive dependency versions for optimal compatibility
  • Easy Upgrades: Update all Dropwizard modules by changing BOM version

Integration Patterns

Complete Application Setup

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-bom</artifactId>
            <version>4.0.14</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- Core framework -->
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
    </dependency>
    
    <!-- Database access -->
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-hibernate</artifactId>
    </dependency>
    
    <!-- Authentication -->
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-auth</artifactId>
    </dependency>
    
    <!-- Testing support -->
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-testing</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Microservice Setup

<dependencies>
    <!-- Minimal microservice stack -->
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-client</artifactId>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-metrics</artifactId>
    </dependency>
</dependencies>