API CHANGE: This version implements thread-safe getters for OSHI attributes. As part of this change, support for serialization has been removed. In addition, setters have been removed from the API, as they were never intended for end user use.
The default configuration file has been renamed to oshi.properties
to prevent classpath conflicts.
- #943, #944, #948, #949, #950, #953, #968, #972: Add toString methods to API interface implementations - @agithyogendra, @rohitkukreja1508, @colinbobolin, @phillips0616, @BooSandy1994, @shivangi14, @fdmcneill2019, @dbwiddis.
- #959: Implement thread safety -- Hardware API overhaul. - @dbwiddis.
- #960: OSProcess constructor with PID. - @Potat0x.
- #962: Properly handle null WMI DateTime results. - @dbwiddis.
- #963: Move the ProcessorIdentifier inner class to the CentralProcessor class - @Praveen101997.
- #971: Fix handle leak in WindowsDisplay.java - @r10a.
- #977: Rename default configuration - @cilki.
- #989: Improve Windows current frequency stats. - @dbwiddis.
- #995: CoreFoundation, IOKit, DiskArbitration API overhaul. - @dbwiddis.
- Your contribution here
- #756: Require Java 8. - @dbwiddis.
- #773: Remove oshi-json artifact. - @dbwiddis.
- #774: API overhaul - ComputerSystem, Baseboard, and Firmware. - @dbwiddis.
- #775: API overhaul - GlobalMemory, new VirtualMemory. - @dbwiddis.
- #776: oshi-demo artifact. - @dbwiddis.
- #779: API overhaul - CentralProcessor, new LogicalProcessor. - @dbwiddis.
- #794: Add NUMA nodes to Logical Processors. - @dbwiddis.
- #838, #845, #911: JNA version updates. - @dbwiddis.
- #857: Fix CPU temperature - @rlouwerens.
- #901: Fix incorrect physical processor count on Linux. - @ellesummer.
- #914: Add System Boot Time. - @shannondavid.
- #916: Move Uptime and Boot Time to OperatingSystem class. - @dbwiddis.
- #917: API overhaul - Sensors. - @dbwiddis.
- #918: Removed time interval based caching. - @dbwiddis.
- #921: Removed static map based caching. - @dbwiddis.
- #922: Show OSProcess Bitness. - @dbwiddis.
- #926: Fix SMC datatype reading. - @dbwiddis.
- #928: Raspberry Pi compatibility fixes. - @dbwiddis.
- #929: Add isElevated check to OperatingSystem. - @dbwiddis.
- #931: Standardize attribute updating. - @dbwiddis.
- #763: Refactor PDH/WMI Fallback. - @dbwiddis.
- #766: Use query key to update counters in groups. - @dbwiddis.
- #767: Allow subclassing WmiQueryHandler with reflection. - @dbwiddis.
- #769: Close PDH handles after each query. - @dbwiddis.
- #839: JNA 5.3.0. - @dbwiddis.
- #845: JNA 5.3.1. - @dbwiddis.
- #728: Separate WMI Query Handling from Util. - @retomerz.
- #730: Fix Windows process token handle leak. - @dbwiddis.
- #731: Switch to MIT License, JNA 5.2.0. - @dbwiddis.
- #735: Windows XP Compatibility fixes. - @dbwiddis.
- #737: Properly handle redundant COM initialization. - @dbwiddis.
- #694: ComputerIdentifier Util Method - @Aashishthakur10.
- #699: Fix PerfData error handling - @dbwiddis.
- #703: Remove deprecated CentralProcessor serialNumber method - @dbwiddis.
- #704: Check for Virtual Machine - @haidong.
- #724: Refactor unsigned long bitmasking - [@LiborB] (https://github.com/LiborB).
- #685: Get Linux HZ from system config - @dbwiddis.
- #686: JNA 5.1.0 - @dbwiddis.
- #688: Fix Linux proc stat and pagesize parsing - @dbwiddis.
- #689: Optionally skip slow OSProcess fields - @dbwiddis.
- #690: Prioritize system-release for Fedora and CentOS version - @dbwiddis.
- #691: Cache OSProcesses on Linux - @dbwiddis.
- #656: JNA 5.0.0. - @dbwiddis.
- #659: Add free/total inode counts. - @Space2Man.
- #666: Recreate counter handles when invalid - @dbwiddis.
- #675: Solaris 10 network stats compatibility fix - @dbwiddis.
- #647: Fix Windows idle counter calculation. - @dbwiddis.
- #653: Fix transferTime in WindowsDisks by using 1-%Idle - @Space2Man.
- #630, #640, #645, #652, #655: Add Sound Card list. - @bilalAM.
- #636: Catch exception when english counters missing. - @dbwiddis.
- #639: Implement QueueLength metric in HWDiskStore. - @Space2Man.
- #592: Test for non-numeric doubles in JSON parsing. - @dbwiddis.
- #597: Fix Windows serialnumber fallback bug. - @dbwiddis.
- #603: Fix Process Uptime bug. - @anitakosman.
- #604: Fix Windows interrupt count bug. - @dbwiddis.
- #605: Update OSGi imports. - @dbwiddis.
- #608: Fix Windows context swith count bug. - @dbwiddis.
- #611: Fix proc stat parsing on older Linux distros. - @dbwiddis.
- #612: OSProcess toString. - @dbwiddis.
- #614: Remove unneeded debug query and fix a WMI cast error - @dbwiddis.
- #626: Fix calculation of Hz on Linux - @dbwiddis.
- #580: Windows process uptime wasn't updating. - @dbwiddis.
- #585: Fix WMI type mapping and BSTR allocation. - @dbwiddis.
- #586: Add PerfDataUtil.removeAllCounters. - @dbwiddis.
- #587: Localize PDH instance enumeration. - @dbwiddis.
- #588: WMI backup for all PDH Counters. - @dbwiddis.
- #571: CIM date broken for timezones east of GMT. - @dbwiddis.
- #573: Don't get PDH swap stats if no swap. - @dbwiddis.
- #574: Suppress repeat updates of failed PDH counters. - @dbwiddis.
- #575: Replace WMI value types with Variant types. - @dbwiddis.
- #577: Get Windows temperature from PDH counters. - @dbwiddis.
- #551: Check for zero-length PDH counter lists to avoid exceptions - @dbwiddis.
- #556: WMI timeouts, standardization, and simplification. - @dbwiddis.
- #557: Localize PDH Counter paths. - @dbwiddis.
- #561: Optimize Process CPU sort. - @dbwiddis.
- #564: Cache WMI connections. - @dbwiddis.
- #567: Cache USB devices. - @dbwiddis.
- #569: Remove threetenbp dependency. - @dbwiddis.
- #527: Correct process information caching and command line retrieval under Windows - @dustin-johnson.
- #533: Filter to CPU zone if multiple Windows Thermal sensors. - @dbwiddis.
- #542: Disabled Windows performance collection leads to empty Process cache - @MarcMil.
- #547: Remove DataTypeConverter dependency so OSHI builds on Java 9+ - @dbwiddis.
- #489: Switch from WMI to native methods for most Windows Process data. - @dbwiddis.
- #501: Added HWDiskStore.updateDiskStats. - @cjbrowne.
- #503: Expose memory page size to API. - @dbwiddis.
- #507: Replace WMI with (faster) PDH queries for WindowsCentralProcessor. - @dbwiddis.
- #508: Replace WMI with (faster) registry data for Windows Processes. - @dbwiddis.
- #509: Add pages swapped in/out to paging/swap file. - @dbwiddis.
- #518: Add OS bitness. - @dbwiddis.
- #446: Add getChildProcesses to OperatingSystem. - @jsimomaa
- #447, #471: Added context switches and interrupts - @jpbempel, @dbwiddis.
- #476: Count CPU Packages - @dbwiddis.
- #478: Windows RSS now reports Private Working Set, matching Task Manager - @dbwiddis.
- Updated to JNA 4.5.1
- #433: Performance improvements for getProcesses() on Linux - @bildechinger.
- #455: Open files/handles support - @spyhunter99.
- #459: New methods for querying for a list of specific pids - @spyhunter99.
- #464: OSGi fixes - @lprimak.
- #465: Include a shaded jar with all dependencies - @lprimak.
- #392: Fix NPE for processes terminating before iteration - @dbwiddis.
- #396: Fix issue on Mac OS X whereby the buffer size for the call to proc_listpids() was improperly calculated - @brettwooldridge
- Updated to JNA 4.5.0
- #336: Add Process Current Working Directory - @dbwiddis.
- #357: Prioritize OpenHardwareMonitor for Windows Sensors - @dbwiddis.
- #362: Add logical volume attribute to OSFileStore (Linux support only), providing a place for an alternate volume name. @darinhoward
- #363: Adding Steal Tick Type for Linux - @darinhoward.
- #375: Added OSGi bundle support - @swimmesberger
- Updated to JNA 4.4.0.
- Switch groupId to com.github.oshi
- #294, #305: Add NetworkParams for network parameter of OS - @chikei, @dbwiddis.
- #295: Make OSProcess (AbstractProcess.java) more easily extendible - @michaeldesigaud.
- #307: Deprecate CentralProcessor's getSystemSerialNumber method that duplicated ComputerSystem's getSerialNumber method. - @dbwiddis.
- #308: Add getProcessorID to CentralProcessor. - @dbwiddis.
- #309: Reduce C library duplication. - @dbwiddis.
- #317: Add user/uid, group/gid, and command line to OSProcess. - @dbwiddis.
- #262: Add bytesRead and bytesWritten to OSProcess - @plamenko.
- #264, #289: BIOS, manufacturer, and baseboard information - @lundefugl, @dbwiddis.
- #281: Improve Linux battery AC device exclusion - @dbwiddis.
- #282: Get Windows version from WMI - @dbwiddis.
- #283: Fix Linux block device stats on some distributions - @lu-ko.
- #284: Remove incorrect IOWait counter from WindowsCentralProcessor - @dbwiddis.
- #285: Rebrand Mac OS 10.12+ as macOS - @dbwiddis.
- #286: Reduce required calculations for LinuxProcess initialization - @dbwiddis.
- #290: Add input/output errors to Network IF - @dbwiddis.
- #243: Make Windows network statistics 64-bit - @dbwiddis.
- #244: Add timestamps to Disk and Network IO Stats - @dbwiddis.
- #253: Properly handle CoreStorage Volumes on OSX - @dbwiddis.
- #256: Use DeviceID to link Windows Disks and Partitions - @dbwiddis.
- #239: Fix exceptions on windows disks/partitions - @dbwiddis.
- #240: Check sysfs for Linux system serial number - @dbwiddis.
- #225: Bugfixes from Coverity, FindBugs, and PMD - @dbwiddis.
- #229: Solaris port - @dbwiddis.
- #232: FreeBSD port - @dbwiddis.
- #234: Add read/write count and active disk time to HWDiskStores - @dbwiddis.
- #235: Add partition information to HWDiskStores - @dbwiddis.
- #205: Separated oshi-core and oshi-json modules - @dbwiddis.
- #209: Move FileSystem and Processes to OperatingSystem - @dbwiddis.
- #210: Streamlined macOS FileSystem - @dbwiddis.
- #211: Combine IOwait and IRQ ticks into processor tick array - @dbwiddis.
- #213: Sort and Limit returned Processes - @dbwiddis.
- #214: Offer flat or tree USB listing - @dbwiddis.
- #216: Filter JSON output with properties - @dbwiddis.
- #219: NetworkIFs can now update stats - @dbwiddis.
- #223: JUnit Test overhaul, adds, refactoring - @dbwiddis.
- #199: Use WMI queries for raw data instead of maintaining PDH threads - @dbwiddis.
- Multiple efficiency improvements
- #190: Add VendorID and ProductID to UsbDevice - @dbwiddis.
- #193: Add read/write to Windows and OS X HWDiskStores - @dbwiddis.
- #194: Add volume name to OSFileStores - @henryx.
- #195: Fixed reading multiple (in particular external) displays on Mac - @dpagano.
- #197: Add UUID to OSFileStores - @dbwiddis.
- #198: macOS 10.12 (Sierra) - @dbwiddis.
- Created a Java 7 backport using threeten.org dependency released as 2.6-m-java7
- #186, #187, #188: Improve USB device trees - @dbwiddis.
- Created a Java 7 backport using threeten.org dependency released as 2.5.1-java7
- Upgraded to Java 8 base support
- #163: Update getFileStores() method to include mount point @henryx.
- #165: Added system-wide file descriptor counts - @cholland1989.
- #168: Switched WMI queries to use COM - @dbwiddis.
- #171: Added detailed process statistics - @dbwiddis.
- #176: Eliminate Swing threads in WindowsFileSystem - @henryx.
- #180: Made all system information classes serializable - @dbwiddis.
- #181: Added USB Device listing - @dbwiddis.
- #184: Improve Linux OS version parsing - @dbwiddis.
- #140: Added process and thread counts - @dbwiddis.
- #142: Added methods for getting swap (total and used) in the system - @henryx.
- #145: Refactored common code to abstract classes - @dbwiddis.
- #147, #149: Added disk information and statistics - @henryx, @dbwiddis.
- #150: Added filesystem types - @dbwiddis.
- #155, #157: Added network interface statistics - @henryx, @dbwiddis.
- #124: Read Windows Sensor info from Open Hardware Monitor as fallback - @dbwiddis.
- #129: Improve Linux version and code name parsing - @dbwiddis.
- #132, #133: Fix NPEs on Raspberry Pi - @pcollaog.
- #136: Updated CPU load average to use system call - @henryx.
- #137: Added iowait and irq ticks - @dbwiddis.
- #121: Added CPU temperature, fan speeds, and voltage - @dbwiddis.
- #123: Handle JSON nulls - @dbwiddis.
- #114: Memory information wasn't updating for Windows - @dbwiddis.
- #116: Added JSON output - @dbwiddis.
- #108: Added Display info from EDID - @dbwiddis.
- #111: Catch exceptions when Linux c library missing - @dbwiddis.
- #101: Refactored package structure for consistency - @dbwiddis.
- #103: Switched CentralProcessor to a single object for all processors - @dbwiddis.
- See UPGRADING.md for more details.
- #94: Upgraded JNA to 4.2.0 - @dbwiddis.
- #96: Read buffer immediately after Runtime.exec to prevent deadlock - @dbwiddis.
- #97: Add system serial number - @dbwiddis.
- #87: Added SLF4J logging, changed exception throwing to log errors to be robust to lack of permissions - @dbwiddis.
- #71, #72: Added support for Windows 10 & Windows Server 2016 - @laurent-r.
- #75: Added uptime information - @dbwiddis.
- #76: Better linux CPU processor counting - @dbwiddis.
- #78: Execute FileSystemView on Swing's Event Dispatch Thread - @dbwiddis.
- Upgraded to Java 7 base support
- Upgraded JNA to 4.1.0
- Brought over lessons learned from waffle for building project from source.
- #50: Added file store information - @dbwiddis.
- #51: Added CPU Ticks and switched to OperatingSystemMXBean for CPU load / load average - @dbwiddis.
- #62: Added Per-Processor CPU Load and Ticks - @dbwiddis.
- Added TODO list and enhanced README documentation - @ptitvert
- Added Travis-CI - @dblock.
- #3: Mavenized project - @le-yams.
- #5: Added Linux support - @ptitvert.
- #7: Added Mac OS X Support - @ptitvert.
- #13: Support for Windows 8.1 and Windows Server 2008 R2 - @NagyGa1.
- #15, #18: Added support for CPU load - @kamenitxan, @Sorceror.
- #25, #29: Included inactive/reclaimable memory amount in GlobalMemory#getAvailable on Mac/Linux - @dbwiddis.
- #27: Replaced all Mac OS X command line parsing with JNA or System properties - @dbwiddis.
- #30: Added processor vendor frequency information - @alessiofachechi.
- #32: Added battery state information - @dbwiddis.
- Added support for Windows 8 to
oshi.software.os.OperatingSystemVersion
,oshi.software.os.windows.nt.OSVersionInfoEx
- @laurent-r.
- Initial public release - @dblock.