Javolution
![]() | |
Developer(s) | Jean-Marie Dautelle |
---|---|
Stable release | 6.0.0
/ August 18, 2013 |
Repository | |
Written in | Java C++ |
Operating system | Cross-platform |
Size | 470 KB (archived) |
Type | Real-Time Library |
License | BSD |
Website | http://javolution.org |
Javolution is a real-time library aiming to make Java or Java-Like/C++ applications faster and more time predictable. Indeed, time-predictability can easily be ruined by the use of the standard library (lazy initialization, array resizing, etc.) which is not acceptable for safety-critical systems. The open source Javolution library addresses these concerns[1] for the Java platform and native applications. It provides numerous high-performance classes and utilities useful to non real-time applications as well. Such as:
- Collections [2] classes, supporting custom views [3], closure-based iterations, map-reduce paradigm, parallel computing, etc.
- Worst case execution time behavior documented using Real-Time [4] Java annotations.
- Fractal structures [5] to maintain high-performance regardless of the size of the data.
- OSGi contexts [6] allowing cross cutting concerns (concurrency, logging, security, ...) to be addressed at run-time through OSGi published services without polluting the application code (Separation of concerns).
- Algorithmic parallel computing support with concurrent contexts. [7]
- Struct/Union [8] base classes for direct interfacing with native applications.
- Immutability and Value-Type [9] support.
- Perfometer [10] utility classes to measure worst-case execution time with high precision.
- Real-Time StAX-like implementation (javolution.xml.stream [11]) (does not implement StAX-API, but resembles it, uses similar naming) which does not force object creation.
- XML marshalling/unmarshalling [12].
- Simple yet powerful configuration management [13] for your application.
Since version 6.0, Javolution makes it easy to port [14] any Java source code to C++ for Cross-platform native compilation. OSGi and JUnit have been ported and are included with the core C++ distribution.
All modules (Java and native) are built using maven.
References
- ^ Fully Time Deterministic Java
- ^ javolution.util
- ^ Collection Views
- ^ Realtime Annotation
- ^ Fractal Table
- ^ OSGi Contexts
- ^ Concurrent Contexts
- ^ Struct/Union
- ^ Immutable/ValueType
- ^ Perfometer Utility
- ^ XML Stream Support
- ^ XML marshalling/unmarshalling
- ^ Javolution Configuration Management
- ^ Javolution C++ Overview
External links
- Javolution Website
- Fully Time Deterministic Java - AIAA Space 2007 Conference
- Validating Java for Safety-Critical Applications - AIAA Space 2005 Conference
- Turbo-Charging Java for Real-Time Applications - Java Developer Journal Article