Releases: oshi/oshi
Releases · oshi/oshi
Release list
Release 7.4.1
Bug Fixes and Improvements
- #3441: Wrap AppKit/Cocoa display-name calls in an autorelease pool, extract
ObjCFunctionsFFM bindings, and useExceptionUtilfor consistent error handling - @dbwiddis. - #3442: Convert static memoized suppliers to instance fields, allowing cached data to be reclaimed when users create new
SystemInfoinstances - @dbwiddis. - #3443: Share memoized iostat supplier across disk instances; cache pluggable hardware lists (displays, USB, sound cards, graphics cards) in the HAL with a 3-second TTL - @dbwiddis.
- #3444: Consolidate try/catch-log-return-default patterns to use
ExceptionUtil- @dbwiddis. - #3459: Deduplicate the Windows
CentralProcessorfrequency queries into the shared base, and fix the JNA per-processor current-frequency numbering, which mis-assigned frequencies to logical processors on multi-processor-group/NUMA systems - @dbwiddis. - #3473: Fix several macOS bugs: correct Intel Mac sensor temperatures that were under-reported by the SP78 fractional byte, decode process working directories and login sessions as UTF-8, and add missing null/bounds guards on native results - @dbwiddis.
- #3478: Fix several Windows bugs: stop reporting a UPS/non-system battery as the system battery, restore the WMI fallback (and avoid an NPE) when a PDH wildcard collection fails, drop phantom file stores for volumes that can't be queried, keep enumerating sound cards past an incomplete registry key, retain sessions without a client address, and include processors in NUMA nodes spanning more than 64 logical processors - @dbwiddis.
- #3479: Fix several Windows bugs: return all configured DNS servers instead of an empty list when more than one is present, keep querying the OpenHardwareMonitor/LibreHardwareMonitor namespaces after an initial failure so late-started sensors still appear, and classify CD-ROM drives as non-local - @dbwiddis.
- #3480: Align remaining JNA/FFM inconsistencies: report disk type (Removable/SSD/HDD/Unknown) on the native-free Linux backend, allocate a large enough buffer for long UTF-16 device names in the Windows JNA
DeviceTree, fix WMI query when COM is already initialized in another apartment, returning zeroed TCP/UDP stats instead of null on a query failure, detecting x86 viaGetNativeSystemInfo(correct under WOW64), and retrying the initialPDH_NO_DATAperformance-counter sample - @dbwiddis. - #3481: Share one registry-value parser between the JNA and FFM Windows installed-applications backends, so an application is resolved identically regardless of backend even when a value is stored as
REG_DWORDorREG_BINARYrather than a string - @dbwiddis. - #3482: Fix macOS
getThreadCount()on the default JNA backend, which under-reported the thread count (aproc_listpidsbuffer size passed as an element count, and stale reused-buffer data counted for processesproc_pidinfocould not fill), and release the CoreFoundation device dictionary and lookup keys leaked per disk enumeration in the JNA disk-type detection - @dbwiddis. - #3483: Fix several Windows backend issues: guard against a hard crash when enumerating a network session with a null client name, allocate the AMD ADL callback buffer from the C heap so the driver's
free()is valid, close leaked system event-log handles, and readREG_QWORD/REG_BINARYregistry values in the FFM backend so graphics-card VRAM is reported consistently with the JNA backend - @dbwiddis. - #3484: Fix several parsing and consistency issues: return empty instead of throwing from
ParseUtil.getStringBetweenon a single unmatched delimiter, throw the documentedIllegalArgumentException(notArrayIndexOutOfBoundsException) for mismatched tick arrays, correct an off-by-one bounds guard in SolarisPrtvtoc, decode FreeBSD/Solaris utmpx session strings as UTF-8, and read nativeutmpxfor Solaris sessions in the FFM backend to match the JNA backend - @dbwiddis.
Release 7.4.0
New Features
- #3415: Add
Display.getDisplayInfo()and a newDisplayInfointerface (exposing decoded attributes includingisEdidSynthetic()), plus EDID-encoding methods inEdidUtil, allowing display attributes to be exposed without a raw EDID - @dbwiddis. - #3436: Detect the Apple Silicon built-in Retina display via
IOMobileFramebufferand synthesize aDisplayInfofrom CoreGraphics and NSScreen properties (resolution, physical size, serial, model name) - @dbwiddis.
Bug Fixes and Improvements
- #3424: Fix
WrongMethodTypeExceptionwhen freeing BSTR strings on the Windows FFM WMI path, caused by a voidinvokeExactin an expression lambda inferring anObjectreturn - @dbwiddis. - #3425: Fix the Windows perf-counter process and thread maps occasionally mis-keying a real process/thread under ID 0, when PDH reports its "ID Process"/"ID Thread" sentinel for one that is starting or exiting - @dbwiddis.
- #3432: Replace
Logger#atLevel/setCause/isEnabledForLevelusage inExceptionUtil,PerfDataUtil, andForeignFunctionswith level-switches to the classic SLF4J methods, so oshi no longer requires slf4j-api 2.x at runtime - @wolfs. - #3431: Declare the optional jlibrehardwaremonitor OSGi package imports as optional, so oshi-common resolves in OSGi environments that do not provide it - @MrEasy.
- #3433: Restore optional JNA native access for NetBSD, falling back to the command-line implementation when the JNA native library is not installed - @dbwiddis.
- #3437: Add
ParseUtil.decodeIntOrDefault/decodeLongOrDefaultand forbid direct use ofInteger.decode,Long.decode,parseUnsignedInt, andparseUnsignedLong- @dbwiddis. - #3438: Deprecate
Display.getEdid()in favor ofDisplay.getDisplayInfo().getEdid(), consolidating display data access underDisplayInfo- @dbwiddis.
Release 7.3.2
Bug Fixes and Improvements
- #3409: Fix AIX
getFileStores()inode collection: switch to AIX-nativedf -F %n %l, fix NFS mount filtering, correct column parsing, and fix free/used inode swap - @jank. - #3410: Fix Linux
getFileStores()blocking indefinitely on stale NFS mounts by pre-checking NFS server reachability (TCP/2049) before callingstatvfs()- @jank.
Release 7.3.1
New Features
- #3350: Add AIX support to the FFM (
oshi-core-ffm) implementation - @dbwiddis. - #3360: Add NetBSD support to the FFM (
oshi-core-ffm) implementation - @dbwiddis. - #3362: Add DragonFly BSD support to the FFM (
oshi-core-ffm) implementation - @dbwiddis.
Bug Fixes and Improvements
- #3349: Fix AIX
Uptime.queryUpTime()regex to accept theminssuffix that appears in the first hour past each day boundary - @dbwiddis. - #3358: Add macOS 27 (Golden Gate) codename mapping - @dbwiddis.
- #3365: Allow
SystemInfoProviderSPI discovery on the class path - @dbwiddis. - #3373: Export the
oshipackage fromoshi-corein the OSGi bundle so the documentednew oshi.SystemInfo()entry point is usable in OSGi environments - @dbwiddis.
Release 7.3.0
New Features
- #3303: Add DragonFly BSD platform support - @dbwiddis.
- #3307: Add NetBSD platform support - @dbwiddis.
- #3316, #3319, #3322, #3328, #3330: Add FreeBSD support to the FFM (
oshi-core-ffm) implementation - @dbwiddis. - #3333, #3334, #3335: Add OpenBSD support to the FFM (
oshi-core-ffm) implementation - @dbwiddis. - #3339: Add Solaris/illumos support to the FFM (
oshi-core-ffm) implementation - @dbwiddis.
Bug Fixes and Improvements
Release 7.2.1
Bug Fixes and Improvements
Release 7.2.0
New Features
- #3234: Add
SystemInfoProviderSPI andSystemInfoFactoryfor automatic selection of the best available OSHI implementation at runtime - @dbwiddis. - #3238: Add native-free Linux
SystemInfoProviderimplementation inoshi-common, enabling Linux system info without JNA or FFM dependencies - @dbwiddis. - #3255: Add
BluetoothDeviceenumeration for paired/connected Bluetooth peripherals on Linux, Windows, and macOS - @dbwiddis.
Bug Fixes and Improvements
- #3245: Fix
MacGlobalMemory.getPhysicalMemory()returning empty data on Apple Silicon Macs - @dbwiddis. - #3249: Read EDID from
/sys/class/drmon Linux, fixing display detection on Wayland - @dbwiddis. - #3278, #3280: Add
SystemInfoProviderconvenience overloads toOshiMetricsconstructor,bindTo, andbuildermethods - @dbwiddis. - #3281: Fix AIX processor count detection to use LPAR vcpu and SMT configuration instead of frame-level physical processor count - @dbwiddis.
- #3283: Fix macOS JNA system CPU ticks overflowing to negative values after long uptimes - @dbwiddis.
- #3299: Handle Linux LUKS device-mapper disks without LVM volume names and avoid synthetic
nullpaths - @dbwiddis. - #3300: Fix macOS FFM open file limits and strengthen current-process limit coverage - @dbwiddis.
Release 7.1.0
New Features
- #3225: Add CgroupInfo API with Linux cgroup v1/v2 support - @rohan-coder02.
- #3229: Support environment variables (
OSHI_*) for configuration - @dbwiddis. - #3230, #3231: Add disk type information (SSD, HDD, Removable, Virtual) - @dbwiddis.
- #3232: Add voluntary/involuntary context switch methods to OSProcess - @dbwiddis.
- #3227: Add
oshi-metricsmodule with Micrometer integration for system metrics following OpenTelemetry semantic conventions - @dbwiddis.
Bug Fixes and Improvements
Release 7.0.1
JPMS Package Moves
- #3220: Move
oshi-core-ffmutility classes fromoshi.util.gpu,oshi.util.platform.mac, andoshi.util.platform.windowspackages tooshi.ffm.util.gpu,oshi.ffm.util.platform.mac, andoshi.ffm.util.platform.windows. This eliminates split-package conflicts sooshi-coreandoshi-core-ffmcan coexist on the module path - @dbwiddis.
Release 7.0.0
See Upgrading for breaking changes and migration guide.
Breaking Changes
- #3180: Rename
oshi-core-java25artifact tooshi-core-ffm; rename JPMS module fromcom.github.oshitocom.github.oshi.ffm. A redirection pom is provided for the old artifact ID - @dbwiddis. - #3181: Merge
oshi-core-java11intooshi-core;oshi-corenow includes a module descriptor (com.github.oshi). A redirection pom is provided for the oldoshi-core-java11artifact ID - @dbwiddis. - #3182: Remove deprecated
OSProcess.getResidentSetSize()(usegetResidentMemory()orgetPrivateResidentMemory()),oshi.PlatformEnumandoshi.PlatformEnumFFM(useoshi.util.PlatformEnum),SystemInfo.getCurrentPlatform()andSystemInfoFFM(useoshi.util.PlatformEnum.getCurrentPlatform()andoshi.ffm.SystemInfo), and misspelledGlobalConfigconstants - @dbwiddis.