or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

data-size.mdduration.mdenum-generics.mdindex.mdjar-executor.mdresource-exception.md
tile.json

tessl/maven-io-dropwizard--dropwizard-util

Dropwizard utility classes for data sizes, durations, enums, generics, resources, exceptions, JAR locations, and direct execution services.

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

To install, run

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

index.mddocs/

Dropwizard Util

Dropwizard Util provides a comprehensive set of utility classes designed for Java applications, particularly those using the Dropwizard framework. It includes utilities for handling data sizes with human-readable parsing, duration parsing and manipulation, enum utilities with flexible string conversion, generic type utilities for reflection, resource management utilities, exception handling utilities, JAR location utilities, and a direct executor service implementation.

Package Information

  • Package Name: dropwizard-util
  • Package Type: Maven
  • Language: Java
  • Group ID: io.dropwizard
  • Artifact ID: dropwizard-util
  • Version: 4.0.14
  • Installation: Add to your Maven pom.xml:
<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-util</artifactId>
    <version>4.0.14</version>
</dependency>

Core Imports

import io.dropwizard.util.DataSize;
import io.dropwizard.util.DataSizeUnit;
import io.dropwizard.util.Duration;
import io.dropwizard.util.Enums;
import io.dropwizard.util.Generics;
import io.dropwizard.util.Resources;
import io.dropwizard.util.Throwables;
import io.dropwizard.util.JarLocation;
import io.dropwizard.util.DirectExecutorService;

Basic Usage

import io.dropwizard.util.DataSize;
import io.dropwizard.util.Duration;

// Parse human-readable data sizes
DataSize size = DataSize.parse("128 MB");
long bytes = size.toBytes();

// Parse human-readable durations  
Duration timeout = Duration.parse("30 seconds");
long millis = timeout.toMilliseconds();

// Create programmatically
DataSize gigabyte = DataSize.gigabytes(1);
Duration fiveMinutes = Duration.minutes(5);

Architecture

The Dropwizard Util package follows these key design patterns:

  • Immutable Value Objects: DataSize and Duration are immutable and thread-safe
  • Static Factory Methods: Convenient creation methods like DataSize.gigabytes(1)
  • Human-Readable Parsing: String parsing with flexible format support
  • Utility Class Pattern: Static helper methods in utility classes
  • Builder Pattern: For complex object construction where applicable
  • Type Safety: Strong typing with enums for units and constants

Capabilities

Data Size Management

Handle data sizes with SI and IEC prefix support, including human-readable parsing and unit conversion.

public class DataSize implements Comparable<DataSize>, Serializable {
    public static DataSize bytes(long count);
    public static DataSize kilobytes(long count);
    public static DataSize megabytes(long count);
    public static DataSize gigabytes(long count);
    public static DataSize terabytes(long count);
    public static DataSize petabytes(long count);
    public static DataSize kibibytes(long count);
    public static DataSize mebibytes(long count);
    public static DataSize gibibytes(long count);
    public static DataSize tebibytes(long count);
    public static DataSize pebibytes(long count);
    public static DataSize parse(CharSequence size);
    public static DataSize parse(CharSequence size, DataSizeUnit defaultUnit);
    public long getQuantity();
    public DataSizeUnit getUnit();
    public long toBytes();
    public long toKilobytes();
    public long toMegabytes();
    public long toGigabytes();
    public long toTerabytes();
    public long toPetabytes();
    public long toKibibytes();
    public long toMebibytes();
    public long toGibibytes();
    public long toTebibytes();
    public long toPebibytes();
}

public enum DataSizeUnit {
    BYTES, KILOBYTES, MEGABYTES, GIGABYTES, TERABYTES, PETABYTES,
    KIBIBYTES, MEBIBYTES, GIBIBYTES, TEBIBYTES, PEBIBYTES;
    
    public long convert(long size, DataSizeUnit unit);
    public long toBytes(long l);
    public long toKilobytes(long l);
    public long toMegabytes(long l);
    public long toGigabytes(long l);
    public long toTerabytes(long l);
    public long toPetabytes(long l);
    public long toKibibytes(long l);
    public long toMebibytes(long l);
    public long toGibibytes(long l);
    public long toTebibytes(long l);
    public long toPebibytes(long l);
}

Data Size and Units

Duration Management

Parse and manipulate duration values with support for various time units and conversion to standard Java types.

public class Duration implements Comparable<Duration>, Serializable {
    public static Duration nanoseconds(long count);
    public static Duration microseconds(long count);
    public static Duration milliseconds(long count);
    public static Duration seconds(long count);
    public static Duration minutes(long count);
    public static Duration hours(long count);
    public static Duration days(long count);
    public static Duration parse(String duration);
    public long getQuantity();
    public TimeUnit getUnit();
    public long toNanoseconds();
    public long toMicroseconds();
    public long toMilliseconds();
    public long toSeconds();
    public long toMinutes();
    public long toHours();
    public long toDays();
    public java.time.Duration toJavaDuration();
}

Duration Utilities

Enum and Type Utilities

Flexible enum conversion with fuzzy matching and generic type parameter reflection.

public class Enums {
    public static Enum<?> fromStringFuzzy(String value, Enum<?>[] constants);
}

public class Generics {
    public static Class<?> getTypeParameter(Class<?> klass);
    public static <T> Class<T> getTypeParameter(Class<?> klass, Class<? super T> bound);
}

Enum and Generic Utilities

Resource and Exception Management

Resource loading utilities and exception chain analysis tools.

public final class Resources {
    public static URL getResource(String resourceName);
}

public final class Throwables {
    public static Optional<Throwable> findThrowableInChain(
        Predicate<Throwable> condition, 
        Throwable t
    );
}

Resource and Exception Utilities

JAR Location and Execution Services

JAR metadata extraction and direct task execution capabilities.

public class JarLocation {
    public JarLocation(Class<?> klass);
    public Optional<String> getVersion();
    public String toString();
}

public class DirectExecutorService extends AbstractExecutorService {
    public void execute(Runnable command);
    public void shutdown();
    public List<Runnable> shutdownNow();
    public boolean isShutdown();
    public boolean isTerminated();
    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException;
}

JAR Location and Executor Services

Types

Core Value Objects

// Immutable data size representation
public class DataSize implements Comparable<DataSize>, Serializable {
    // Factory methods and instance methods as shown above
}

// Immutable duration representation  
public class Duration implements Comparable<Duration>, Serializable {
    // Factory methods and instance methods as shown above
}

// JAR location encapsulation
public class JarLocation {
    // Constructor and methods as shown above
}

// Direct execution service
public class DirectExecutorService extends AbstractExecutorService {
    // Execution methods as shown above
}

Enums

public enum DataSizeUnit {
    BYTES(8L),
    KILOBYTES(8L * 1000L),
    MEGABYTES(8L * 1000L * 1000L),
    GIGABYTES(8L * 1000L * 1000L * 1000L),
    TERABYTES(8L * 1000L * 1000L * 1000L * 1000L),
    PETABYTES(8L * 1000L * 1000L * 1000L * 1000L * 1000L),
    KIBIBYTES(8L * 1024L),
    MEBIBYTES(8L * 1024L * 1024L),
    GIBIBYTES(8L * 1024L * 1024L * 1024L),
    TEBIBYTES(8L * 1024L * 1024L * 1024L * 1024L),
    PEBIBYTES(8L * 1024L * 1024L * 1024L * 1024L * 1024L);
}

Standard Java Types Used

  • java.util.concurrent.TimeUnit - For duration time units
  • java.util.concurrent.AbstractExecutorService - Base for DirectExecutorService
  • java.time.Duration - For Duration conversion
  • java.lang.reflect.Type - For generic type operations
  • java.util.function.Predicate<Throwable> - For exception filtering
  • java.util.Optional<T> - For optional return values
  • java.net.URL - For resource URLs