Skip to content

Releases: AprismLab/AprismJDK

AprismJDK v26.5 - Runtime Performance

Choose a tag to compare

@StarsailsClover StarsailsClover released this 16 Sep 17:16
v26.5
37b9f46

AprismJDK v26.5

Fourth stable release focused on runtime performance.

Deliverables

Area What shipped
CDS tooling CdsArchive API + create-cds-archive.ps1 / run-with-cds.ps1
Startup benchmark StartupBenchmark + CI-runnable startup-benchmark.ps1
Container Multi-stage Dockerfile (fork build + minimal runtime)
Linux distro release.yml with SBOM generation
Memory analysis Heap footprint + jlink compact runtime measurements
Performance report docs/15-performance-report.md (EN + ZH)

Key measurements

Metric Stock Temurin 25 AprismJDK Verdict
Startup (source-launcher) 1718 ms 1712 ms equivalent
Throughput: string concat 5.02 ms 3.22 ms 36% faster
Throughput: math loop 5.32 ms 3.88 ms 27% faster
Heap footprint (idle) 2.1 MB 2.2 MB +0.1 MB
Agent overhead n/a ~50-65 ms within budget
Compact runtime ~550 MB 35.2 MB (jlink) brand preserved

Investigation results

  • CRaC: not in OpenJDK mainline; requires Azul CRaC fork. Deferred.
  • AOT cache (JEP 483): flags present but create phase fails on Windows. Deferred.
  • CDS: default archive works well; offsets the 21-module cost.
  • jlink compact: 35.2 MB (6% of full) with aprismjdk branding intact.

Artifacts

File For
AprismJDK-26.5-windows-x64-jdk.zip/.tar.gz Full fork image (Windows x64)
aprismate-26.5.jar Self-contained agent for stock JDK 21+
SHA256SUMS.txt Verify before use

764 tests, 0 failures. 5-patch reproducible series. GPL-2.0 + Classpath Exception.

AprismJDK v26.4 - Hot Iteration & Advanced Diagnostics

Choose a tag to compare

@StarsailsClover StarsailsClover released this 05 Sep 07:45
v26.4
5625286

AprismJDK v26.4

Third stable release focused on hot iteration and advanced diagnostics.

New capabilities (vs v26.3)

Package What it does
aprism.agent.reload Hot reload: atomic multi-class replacement with safe-evolution validation
aprism.agent.diag HTTP diagnostic server (/aprism/state, /aprism/health, etc.)
RuntimeExporterV2 History + diff + threshold alerts (heap pressure, deadlock detection)
jdk.aprismate.secure CycloneDX 1.5 SBOM generator (zero dependencies)
PerfRegression Performance regression detection for CI gating

Startup performance

Fork startup comparable to stock Temurin 25 (227ms vs 242ms average).
CDS archive mapped successfully despite 21 extra modules. Agent premain
adds ~50-65ms.

CI improvements

Streamlined from 12 jobs to 2 (ubuntu+windows test + full fork build
on linux with smoke test).

Artifacts

File For
AprismJDK-26.4-windows-x64-jdk.zip/.tar.gz Full fork image (Windows x64)
aprismate-26.4.jar Self-contained agent for stock JDK 21+
SHA256SUMS.txt Verify before use

764 tests, 0 failures. 5-patch reproducible series. GPL-2.0 + Classpath Exception.

AprismJDK v26.3 - Developer-Power Runtime

Choose a tag to compare

@StarsailsClover StarsailsClover released this 30 Aug 15:36
v26.3
8af003f

AprismJDK v26.3

Second stable release focused on developer-power runtime capabilities.

New capabilities (vs v26.2)

Package What it does
jdk.aprismate.invoke Reflection elimination: cached MethodHandle invokers + MicroBench harness
jdk.aprismate.export Structured runtime state JSON for AI agents - no mainstream JDK ships this
jdk.aprismate.tuning GC tuning presets (server / desktop / container / compact)
aprism.agent.optimize Bytecode pre-optimization engine (elision + probe-enter + SHA-256 disk cache)
aprism.agent.experiment Safe experimentation: try-transform + rollback
aprism.agent.startup Startup profiler (class-load waterfall)
jdk.aprismate.minecraft MC version catalog + detector (incidental consumer)

Performance

Fork is faster than stock Temurin 25 on all benchmarks:

Benchmark Stock (ms) Fork (ms) Ratio
string_concat 5.02 3.22 0.64x
math_loop 5.32 3.88 0.73x
arraylist_ops 2.05 1.92 0.94x

Verification

java -XX:+AprismateAgent -version
[AprismateAgent] attached via premain
aprismjdk version "25.2.1" 2025-09-16
AprismJDK Runtime Environment AJR (build 25.2.1)

Artifacts

File For
AprismJDK-26.3-windows-x64-jdk.zip/.tar.gz Full fork image (Windows x64)
aprismate-26.3.jar Self-contained agent for stock JDK 21+
SHA256SUMS.txt Verify before use

745 tests, 0 failures. 5-patch reproducible series. GPL-2.0 + Classpath Exception.

AprismJDK v26.2 GA - First Stable Release

Choose a tag to compare

@StarsailsClover StarsailsClover released this 25 Aug 15:09
v26.2
c85fe65

AprismJDK v26.2 GA

First stable release of AprismJDK / AJR (Aprism Java Runtime): an OpenJDK 25 fork built bottom-up for the Aprism ecosystem.

Highlights

  • Real OpenJDK fork (jdk-25+10) built natively on Windows via Cygwin, branded end-to-end (aprismjdk version "25.2.1" / AprismJDK Runtime Environment AJR)
  • jdk.aprismate module compiled INTO the image: 21 exported packages, capability descriptor wired (VmInfo.isAprismJdk()==true in-image)
  • AprismateAgent embedded: lib/aprismate.jar in every image. Both -javaagent:$JAVA_HOME/lib/aprismate.jar and the auto-load flag -XX:+AprismateAgent work out of the box
  • Portable agent: standalone aprismate-26.2.jar attaches to STOCK JDK 21+/25 with full premain functionality
  • Fail-safe contract enforced: agent failures roll back and never abort the host JVM
  • jdk.aprismate.invoke: MethodHandle-tier reflection elimination framework in-module
  • Reproducible 4-patch series + overlay sync; canonical scripts/configure-fork.sh
  • Compatibility sweep green (8 checks); full Gradle suite 678 tests on stock JDK 25

Verification (GA build)

java -XX:+AprismateAgent -version
[AprismateAgent] attached via premain
aprismjdk version "25.2.1" 2025-09-16
AprismJDK Runtime Environment AJR (build 25.2.1)
AprismJDK 64-Bit Server VM AJR (build 25.2.1, mixed mode, sharing)

Artifacts

File For
AprismJDK-26.2-windows-x64-jdk.zip/.tar.gz Full fork image (Windows x64)
aprismate-26.2.jar Agent-only attach on stock JDKs
SHA256SUMS.txt Verify before use

Linux x64 artifacts are built by CI against the same patch series and will be appended to this release when the workflow completes.

Known limitations

  • KI-2: compiling aprismate-api sources inside the fork duplicates packages shipped by the image module (self-hosting split-package). Authoritative suite runs on stock JDK; in-image behavior covered by smoke checks.
  • Java 17/21 support deferred to the MRJAR line (API surface requires FFM-final 22+).

GPL-2.0 with Classpath Exception, tracking upstream OpenJDK licensing.

v26.0 - First Stable Release of AprismJDK

Choose a tag to compare

@StarsailsClover StarsailsClover released this 10 Aug 21:58

v26.0 - First Stable Release of AprismJDK

Overview

AprismJDK v26.0 is the first stable release of the Aprism Java Development Kit, providing enhanced APIs and utilities for Java 17, 21, and 25. This release includes 9 major feature areas developed through the Alpha phase.


Feature Summary

1. Functional Programming API (Alpha.1)

  • Optional Enhancement: Advanced optional handling with OptionalExt
  • Result Type: Railway-oriented programming with Result<T, E>
  • Functional Utilities: Try, Lazy, and functional composition tools
  • Stream Extensions: Enhanced stream operations

2. Async Programming API (Alpha.2)

  • Promise System: Chainable async operations with Promise<T>
  • Async Utilities: Async helper class for common patterns
  • Scheduler System: Flexible task scheduling with multiple executors
  • CompletableFuture Extensions: Enhanced future operations

3. Collection Enhancement API (Alpha.3)

  • Immutable Collections: Thread-safe immutable lists, sets, and maps
  • Persistent Collections: Efficient structural sharing collections
  • Multimap Support: One-to-many key-value mappings
  • BiMap Support: Bidirectional key-value mappings
  • Collection Utilities: Rich utility methods for collection operations

4. String and Text Processing API (Alpha.4)

  • String Templates: Efficient string interpolation and formatting
  • Text Processing: Advanced text manipulation utilities
  • Pattern Matching: Enhanced regex and pattern operations
  • Case Conversion: Multiple case style conversions (camelCase, snake_case, etc.)

5. Date and Time Enhancement API (Alpha.5)

  • Duration Extensions: Human-readable duration handling
  • Time Range: Interval and range operations
  • Clock Utilities: Flexible time source management
  • Formatting Utilities: Enhanced date/time formatting

6. Validation Framework API (Alpha.6)

  • Validator System: Fluent validation API with Validator<T>
  • Built-in Validators: String, numeric, collection, date validators
  • Custom Validators: Easy creation of domain-specific validators
  • Validation Results: Detailed error reporting with ValidationResult
  • Composition: Combine validators with AND/OR logic

7. Configuration Management API (Alpha.7)

  • Hierarchical Config: Nested configuration with dot notation
  • Multiple Sources: Properties, YAML, JSON, and environment variables
  • Type Safety: Type-safe configuration access
  • Hot Reload: Dynamic configuration updates
  • Validation: Built-in configuration validation

8. Serialization API (Alpha.8)

  • Serializer Framework: Extensible serialization system
  • Built-in Serializers: String, primitives, collections, maps
  • Custom Serializers: Easy implementation of custom serializers
  • Binary Format: Efficient binary serialization
  • Annotations: @Serializable, @SerializedName, @Transient

9. Reflection Enhancement API (Alpha.9)

  • ClassInfo System: Type-safe class introspection
  • Field Operations: Enhanced field access and modification
  • Method Operations: Simplified method invocation
  • Constructor Operations: Easy instance creation
  • Performance: Thread-safe caching for improved performance

Technical Specifications

Supported Java Versions

  • Java 17 (LTS)
  • Java 21 (LTS)
  • Java 25

Module Structure

  • jdk.aprismate.functional - Functional programming utilities
  • jdk.aprismate.async - Asynchronous programming support
  • jdk.aprismate.collection - Enhanced collections
  • jdk.aprismate.text - String and text processing
  • jdk.aprismate.time - Date and time utilities
  • jdk.aprismate.validation - Validation framework
  • jdk.aprismate.config - Configuration management
  • jdk.aprismate.serialization - Serialization framework
  • jdk.aprismate.reflection - Reflection utilities

Testing

  • 500+ comprehensive unit tests
  • Full API coverage
  • Edge case validation
  • Performance benchmarks

Documentation

  • Complete API documentation
  • Usage examples for all features
  • Migration guides
  • Best practices

Installation

Maven

<dependency>
    <groupId>com.aprismlab</groupId>
    <artifactId>aprismate-api</artifactId>
    <version>26.0</version>
</dependency>

Gradle

implementation 'com.aprismlab:aprismate-api:26.0'

Migration from Alpha

All Alpha APIs remain stable in v26.0. No breaking changes were introduced.


Known Limitations

  • Serialization API supports basic types; complex object graphs require custom serializers
  • Configuration hot reload requires manual watcher setup
  • Reflection caching is unbounded; consider clearing cache in memory-constrained environments

Future Roadmap (v26.1)

  • HTTP Client Enhancement API
  • Database Access Layer API
  • Logging Framework Integration
  • Metrics and Monitoring API
  • Security and Cryptography API

Credits

Developed by AprismLab
Licensed under Apache License 2.0


Status: Stable Release - Production Ready

AprismJDK v26.1-Alpha.5 - BytecodeTransformer API

Choose a tag to compare

@StarsailsClover StarsailsClover released this 10 Aug 23:16

AprismJDK v26.1-Alpha.5

BytecodeTransformer Integration

Implements load-time bytecode transformation pipeline for mixin-style weaving and class manipulation.

New Features

  • BytecodeTransformer API (jdk.aprismate.agent.BytecodeTransformer)

    • Register/unregister ClassFileTransformers
    • Support for retransformation of loaded classes
    • Thread-safe transformer management
    • ASM 9.7.1 integration for bytecode manipulation
  • DefaultBytecodeTransformer Implementation

    • Thread-safe using CopyOnWriteArrayList
    • Maintains registration order
    • Comprehensive logging

Capabilities

  • Method injection at load time
  • Field addition to existing classes
  • Mixin-style weaving support
  • Multiple transformer chaining

Testing

  • 20+ BytecodeTransformer API tests
  • 5+ ASM transformation integration tests
  • Total: 213 tests passing

Documentation

See roadmap section v26.1-Alpha.5 for complete feature list.


Status: Pre-release (Alpha)
Next: v26.1-Alpha.6 - ThreadInsight & HeapInsight APIs

AprismJDK v26.1-Alpha.4 - Custom JVMTI Events

Choose a tag to compare

@StarsailsClover StarsailsClover released this 10 Aug 23:05

AprismJDK v26.1-Alpha.4

New Features

  • MethodHookRegistry API: Register custom method entry and exit hooks
  • EntryHook Interface: Callback for method entry events
  • ExitHook Interface: Callback for method exit events (with return value and exception)
  • DefaultMethodHookRegistry: Thread-safe implementation with concurrent hash maps
  • Hook Statistics: Track total invocations, failures, and hook counts
  • Agent Integration: Accessible via Agent.getMethodHookRegistry()

Technical Details

  • Thread-safe hook registration and invocation
  • Automatic failure handling with logging
  • Comprehensive test coverage (13 tests, all passing)
  • Compatible with Java 17, 21, and 25

Testing

All 56+ tests passed including:

  • Hook registration (entry/exit)
  • Hook invocation with proper parameter passing
  • Exception handling in hooks
  • Statistics tracking
  • Concurrent access safety

Known Limitations

  • This is a pure Java implementation
  • Native JVMTI integration will be added in future releases
  • Hooks are invoked manually via the registry (no automatic instrumentation yet)

Artifacts

  • �prismate-agent-v26.1-Alpha.4.jar - Java Agent
  • �prismate-api-v26.1-Alpha.4.jar - Public API
  • Source JARs included

Status: Pre-Release (Alpha 4 of 5 for v26.1)
Next: v26.1-Alpha.5 - Enhanced reflection APIs

AprismJDK v26.1-Alpha.3

Pre-release

Choose a tag to compare

@StarsailsClover StarsailsClover released this 10 Aug 22:55

AprismJDK v26.1-Alpha.3 Pre-Release

Agent Metrics API Implementation

This pre-release implements the Agent Metrics API, providing runtime metrics collection capabilities for the Aprismate agent.

Features

  • Agent Metrics API: Counter, gauge, and timer support
  • MetricRegistry: Interface and default implementation for metric management
  • AgentMetrics: Convenient facade for accessing and creating metrics
  • Comprehensive Tests: Full unit test coverage for all metrics components

Artifacts

  • \�prismate-api-v26.1-Alpha.3.jar\ - Core API module
  • \�prismate-agent-v26.1-Alpha.3.jar\ - Agent implementation module
  • Source and javadoc jars included for both modules

Technical Details

  • Based on OpenJDK 25
  • Java 17+ compatible
  • Release Date: 2026-08-11

Next Steps

The next release (v26.1-Alpha.4) will focus on implementing custom JVMTI events and event listeners.


Note: This is a pre-release version for testing and development purposes.

v26.1-Alpha.2

v26.1-Alpha.2 Pre-release
Pre-release

Choose a tag to compare

@StarsailsClover StarsailsClover released this 10 Aug 22:31

AprismJDK v26.1-Alpha.2

New Features

ClassRedefiner+ API

  • Runtime class modification capabilities
  • FieldDescriptor builder for dynamic field addition
  • MethodDescriptor builder for dynamic method addition
  • Runtime bytecode validation
  • ClassRedefinitionException for detailed error handling

API Enhancements

  • Added AgentLogger.warn(String, Throwable) overload for better exception logging

Test Coverage

  • 349 tests passing (3 skipped pending VM implementation)
  • Comprehensive unit tests for all new APIs
  • Integration tests for agent subsystems

Known Limitations

  • ClassRedefiner+ requires AprismJDK VM patches (not yet implemented in this alpha)
  • ClassRedefiner.isSupported() returns false on stock OpenJDK
  • Field/method addition features will be available in future releases with VM support

Artifacts

  • aprismate-agent-v26.1-Alpha.2.jar - Java Agent implementation
  • aprismate-api-v26.1-Alpha.2.jar - Public API library
  • aprismate-tests-v26.1-Alpha.2.jar - Test utilities

Next Steps

v26.1-Alpha.3 will focus on AgentMetrics API for performance monitoring and profiling.

AprismJDK v26.1-Alpha.1

Pre-release

Choose a tag to compare

@StarsailsClover StarsailsClover released this 10 Aug 22:16

AprismJDK v26.1-Alpha.1

First alpha release of v26.1 series.

New Features

Agent Logging API

  • File-based logging with fail-safe error handling
  • Support for INFO, WARN, ERROR, DEBUG levels
  • Configurable via \�prismate.agent.logFile\ system property
  • Thread-safe singleton implementation

Capability Query API

  • Query runtime capabilities (agent, transformation, hooks, etc.)
  • Builder pattern for capability configuration
  • Integration with VmInfo for capability checks
  • Predefined capability constants for v26.x features

Instrumentation Context

  • Access to \java.lang.instrument.Instrumentation\
  • Query transformation capabilities (retransform, redefine, native method prefix)
  • Integration with agent system

Async Promise API

  • CompletableFuture wrapper with functional operations
  • Support for \ hen, \catchError\ chaining
  • Simplified async programming model

Testing

  • 340 tests passed
  • Comprehensive unit tests for all new APIs
  • Mock-based testing for agent instrumentation

Artifacts

  • \�prismate-api-v26.0-Alpha.1.jar\ - Core API (62KB)
  • \�prismate-agent-v26.0-Alpha.1.jar\ - Agent implementation (2KB)
  • Source and Javadoc JARs included

Requirements

  • Java 17, 21, or 25
  • Compatible with OpenJDK and derivatives

Status

Pre-Release (Alpha 1) - Not recommended for production use

Next Steps

v26.1-Alpha.2 will focus on additional runtime capabilities and stabilization.