Skip to content

Releases: pjazdzyk/unitility

v3.0.1 - Fixed GHSA issue: GHSA-rqfh-9r24-8c9r / CVE-2026-24400

27 Jan 21:29

Choose a tag to compare

CHANGE LOG (27.01.2026):

v3.0.0 - Changed DMS formatting, added Acoustic and Electric quantities

18 Oct 15:55
a495cae

Choose a tag to compare

CHANGE LOG (18.10.2025):

  • backward compatibility: NOT COMPATIBLE, breaking changes
  • removed deprecated CUBIC_FEET Volume unit
  • Geo quantities: changed completely DMS formatting to ensure ICAO Annex 15 DMS_s format requirements, preserving the constant output length, with required trailing zeros. DMS formatting method were refactored to toDMSsFormat()
  • DMS methods no longer accepts relevantDigits as optional parameter. It has now been changed to 'resolution', expressed as decimal number eg: 0.01 representing the resolution in which seconds will be displayed. By default value of 0.01 is assumed, to follow minimum ICAO requirements.
// Latitude and Longitude types are based on Angular units
Latitude latitude = Latitude.ofDegrees(-20.123);
Longitude longitude = Longitude.ofDegrees(20.123);

// ICAO Annex 15 compliant DMS formatting with 0.01 seconds resolution
String latInDMS = latitude.toDMSFormat();           // Outputs: 20°07'22.80"S
String lonInDMS = longitude.toDMSFormat();          // Outputs: 020°07'22.80"E
  • Latitude, Longitude, GeoCoordinate: add factory method ofDMSFormat(String dmsFormat) which allows to create geo quantity directly from DMS string.

BUGS FIXED:

  • fixed bug with hardcoded decimal separator, which caused issues when user uses ',' as decimal separator instead of '.', thanks @gcng54.

NEW QUANTITIES:

  • added Acoustic quantities: SoundPower, SoundPressure, Frequency
  • added Electric quantities: Capacitance, Charge, Conductance, Current, Voltage, Resistance
  • added Common quantities: DataSize

NEW UNITS:

  • Distance: YARD, DATA MILE, DECAMETER, HECTOMETER

v2.11.2 - Revert Volume unit CUBIC_FEET, fixing backward compatibility

19 Sep 18:35

Choose a tag to compare

CHANGE LOG (19.09.2025):

  • backward compatibility: COMPATIBLE
  • fixed unwanted breaking change from previous release (2.11.1), resorted CUBIC_FEET Volume unit

v2.11.1 - Add Thickness and Absolute Roughness quantities

18 Sep 17:39
092d0d1

Choose a tag to compare

CHANGE LOG (18.09.2025):

  • backward compatibility: COMPATIBLE -> NOT_COMPATIBLE (please update to 2.11.2 for restored compatibility)
  • refactor volume unit: CUBIC_FOOT to CUBIC_FEET

NEW QUANTITIES:

  • added Thickness
  • added AbsoluteRoughness

NEW UNITS:

  • Velocity: added Feet Per Minute

v2.11.0 - Persistence module with attribute converters

04 Aug 06:04
d473c8e

Choose a tag to compare

CHANGE LOG (04.08.2025):

  • backward compatibility: COMPATIBLE
  • add unitility-persistence module, with set of Converters for each quantity, allowing to use Unitility types in Entities. Converters will save converted value to base SI unit in the DB table. See readme.MD for mode details (section 9).
  • added community standards documents
  • updated depedencies versions
  • support ° (UTF U+00B0) as a valid designator for degrees when parsing latitude and longitude

NEW QUANTITIES:

  • added SDR quantity
  • added GenericDimensionless quantity,

NEW UNITS:

  • Density: added PoundPerGalonUS
  • Density: -fixed/added missing method ofPoundPerCubicInch()

v2.10.0 - Add named modules, refactor PhysicalQuantityParsingFactory

03 Jul 13:38
c7d7cbd

Choose a tag to compare

CHANGE LOG (03.07.2025):

  • backward compatibility: COMPATIBLE (with one small exception: findAllDefaultUnits() was renamed getDefaultUnitRegistry()),
  • add GenericDimensionless quantity for any type of single, dimensionless value representation,
  • moved getDefaultUnit() method to AbstractPhysicalQuantityParsing factory, was also renamed from findAllDefaultUnits() to getDefaultUnitRegistry() (it may cause compatibility issues for users who impleneted their own custom PhysicalParsingFactory()
  • reworked example repositories for Spring and Quarkus to accommodate latest changes (default unit creation)
  • add auto generated module manifests as per user request,

v2.9.0 - Plain SI Serde, Java 17 compatibility, new quantities: RotationSpeed, FlowRateRatio, Curvature

20 Jun 05:23

Choose a tag to compare

CHANGE LOG (20.06.2025):

  • backward compatibility: COMPATIBLE (with one small exception: helper method: getDefaultUnit() was removed)
  • added new quantity: Curvature
  • added new quantity: AngularVelocity
  • added new quantity: FlowRateratio
  • add PlainSi Value jackson serializers and deserializers (see readme, section: 5.1.2 for details)
  • changed Angle base unit to Radians for SI compliance (geographic quantities, uses degrees as base unit)
  • changed compiler.source/target to 17, for improved compatibility
  • technical: moved determining default unit in case of single value to ParsingFactories, alowing user to customize this behaviour when creating own custom implementation of PhysicalQuantityParsingFactory

v2.8.0 - Upgrade to Java 21, change license to Apache-2.0 license

10 Apr 18:50

Choose a tag to compare

CHANGE LOG (10.04.2025):

  • upgrade to Java 21
  • change license to Apache-2.0 license
  • add info on splitting library to free public part and commercial version available in paid scheme

v2.7.0

10 Mar 18:39

Choose a tag to compare

CHANGE LOG (10.03.2025):

  • backward compatibility - NOT COMPATBILE, for Volume and VolumetricFlow quantities
  • fixed bug in Volume converters for: Hectoliter and millilitre (conversion factor has invalid by factor of 10)
  • fixed bug in VolumetricFlow converters
  • new pressure units: mH₂O_10, mH₂O_60, mH₂O_95, mmHg_10, mmHg_60, mmHg_95
  • new hydraulic quantities: LinearResistance, FrictionFactor, LocalLossFactor
  • new distance based quantities: Lenght, Width, Height, Diameter
  • new quantity: LinearMassDensity,
  • volume: split gallons to US Gallons and UK Gallons, added new unit: cubic feet
  • volumetric flow: split all Gallons based units to Gallons US and Gallons UK.

v2.6.0 - Changed Bearing usage, to accept <0,360> clockwise degrees

15 Feb 15:37

Choose a tag to compare

CHANGE LOG (15.02.2025):

  • backward compatibility - NOT COMPATBILE for Geographic types,
  • changed Bearing usage, to accept <0,360> clockwise degrees, add new Bearing class instead of Angle, refactoring,
  • updated documentation on geographic types, to introduce new examples related to the new Bearing usage,
  • add logBase() method to calculate logarithms for custom base,
  • updated all dependencies, including: SpringBoot to 3.4.2, and Quarkus to: 3.18.2