Dropwizard utility classes for data sizes, durations, enums, generics, resources, exceptions, JAR locations, and direct execution services.
npx @tessl/cli install tessl/maven-io-dropwizard--dropwizard-util@4.0.0Dropwizard 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.
pom.xml:<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-util</artifactId>
<version>4.0.14</version>
</dependency>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;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);The Dropwizard Util package follows these key design patterns:
DataSize.gigabytes(1)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);
}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();
}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);
}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 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
// 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
}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);
}java.util.concurrent.TimeUnit - For duration time unitsjava.util.concurrent.AbstractExecutorService - Base for DirectExecutorServicejava.time.Duration - For Duration conversionjava.lang.reflect.Type - For generic type operationsjava.util.function.Predicate<Throwable> - For exception filteringjava.util.Optional<T> - For optional return valuesjava.net.URL - For resource URLs