CtrlK
BlogDocsLog inGet started
Tessl Logo

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

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

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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

docs

data-size.md

duration.md

enum-generics.md

index.md

jar-executor.md

resource-exception.md

tile.json