-
Notifications
You must be signed in to change notification settings - Fork 22
Home
Traditionally, OpenJDK tightly couples the Java Virtual Machine (JVM) and the Java class libraries, releasing and evolving them in lockstep. Across the industry, however, many enterprise and legacy workloads require long-established APIs and application compatibility to be preserved, while still seeking the benefits of cutting-edge JVM features—such as improved performance, enhanced security, and advanced runtime diagnostics. For these users, the ability to independently upgrade the JVM without forcing a migration of the entire class library stack is particularly compelling.
- Accelerated Performance Innovation: The JVM can adopt new optimizations and runtime features without waiting for class library updates.
- Enhanced Compatibility: Legacy applications built on older APIs can still leverage modern JVM performance and security enhancements.
- Modularity: Organizations can independently select JVM and class library versions to best match their requirements.
While independent evolution delivers flexibility, it also introduces notable maintenance challenges:
- Increased Complexity: Divergence between the JVM and class libraries can give rise to subtle compatibility issues, particularly around internal APIs and non-standard behaviors.
- Testing Burden: Ensuring full compatibility across all combinations of JVM and class library versions demands extensive testing, especially around security and edge-case behavior.
CompoundVM is designed to enable modern JVMs to run on established JDK class libraries, drawing on proven industry precedents. This approach, however, is not universally applicable. We do not recommend uncritically adopting a decoupled JVM and class library maintenance model; users should carefully evaluate compatibility, supportability, and testing requirements against their specific use cases. CompoundVM is best suited for environments where legacy APIs must be preserved while runtime performance and capabilities require modernization.
Visit the Wiki to learn more about installation, usage modes, and development practices for CompoundVM.