V3.0.0: Essentials (Upcoming)
Changed name from “greenrobot-common” to “greenrobot Essentials,” or just “Essentials”.
- Changed root package “org.greenrobot.essentials”, new sub-package “collections”
- Changed Maven artifact to org.greenrobot:essentials
- Method renames and removals, especially in StringUtils
- Removed the less useful hashing classes CombinedChecksum, FNVJ32, and FNVJ64
- Added CircularByteBuffer for efficient buffering in producer/consumer scenarios (e.g. pipelining)
- Added PipelineOutputStream as a replacement for Java’s PipedOutputStream fixing some issues, e.g. performance on Android
- Methods to query all values in LongHashSet and LongHashMap
- Improved Multimaps: more flexible setup, query total count of elements
- Synchronized versions of LongHashSet and LongHashMap
- Added appending to files in FileUtils
- Better String hexing support: optimized hex creation, added hex parsing
- String joining now allows any separator
- Fix: Correctly initialize Murmur3F with negative seeds
- Minor ObjectCache improvements: added statistics (hits, misses, …), getting removes entries with cleared references proactively
- Improved ObjectCache: now supports soft/weak/strong references, maximum size (clearing the entries putted first), and time-based expiration
- New: Multimaps (ListMap and SetMap)
- Murmur3F: added update methods for long values
- Added LimitedInputStream: limits bytes that can be read from an InputStream (useful if your stream contains separate sections of known lengths)
First open source release called “greenrobot-common”.
Versions before 2.0.0
Used internally only inside greenrobot.
History: The roots go back to 2009 when we started a general purpose library for Android. In 2013, we noticed that parts of our Android library would be useful for some Java projects we do. So we moved the parts that don’t depend on Android into a new project.