<feed xmlns='http://www.w3.org/2005/Atom'>
<title>DropOut/src-tauri/src/core/java/providers/adoptium.rs, branch main</title>
<subtitle>This is a new Minecraft launcher that is currently in development. It is designed to be a modern, fast and efficient launcher. It is written in Rust. Aims to be a Reproducible Minecraft Workspace Manager.</subtitle>
<id>https://git.hydroroll.team/DropOut/atom?h=main</id>
<link rel='self' href='https://git.hydroroll.team/DropOut/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/'/>
<updated>2026-02-18T07:08:40Z</updated>
<entry>
<title>refactor(client): rewrite macros to generate client</title>
<updated>2026-02-18T07:08:40Z</updated>
<author>
<name>苏向夜</name>
<email>fu050409@163.com</email>
</author>
<published>2026-02-18T07:08:40Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=1a103de2f1ef75cd73347953cbe27e14606df871'/>
<id>urn:sha1:1a103de2f1ef75cd73347953cbe27e14606df871</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(java): enhance Adoptium structs with TypeScript support</title>
<updated>2026-01-30T07:05:06Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-30T07:05:06Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=2d830365f1424b8e4137dd3fbe239ba3d8b458a9'/>
<id>urn:sha1:2d830365f1424b8e4137dd3fbe239ba3d8b458a9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: resolve rebase conflicts and compilation errors</title>
<updated>2026-01-29T02:20:10Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-29T02:20:10Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=5d630a24bed07dca20b6ddf55ffe4be36399ad0f'/>
<id>urn:sha1:5d630a24bed07dca20b6ddf55ffe4be36399ad0f</id>
<content type='text'>
- Export JavaError from java module
- Fix type mismatches in Adoptium provider methods
- Add type annotations for reqwest json() calls
- Remove non-existent cache_version field from JavaCatalog
- Fix resolve_java_for_launch call signature (remove extra window param)
- Add error conversion to String for Tauri commands
- Fix import for save_catalog_cache in adoptium.rs

Reviewed-by: Claude Sonnet 4.5
</content>
</entry>
<entry>
<title>refactor(java): improve error handling and logging</title>
<updated>2026-01-29T02:05:11Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-29T01:34:16Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=c46d6c51b8bec6a52ca66087ef9b8edc48d809a3'/>
<id>urn:sha1:c46d6c51b8bec6a52ca66087ef9b8edc48d809a3</id>
<content type='text'>
- Extract JavaError to dedicated error.rs module
- Add serde defaults for JavaInstallation optional fields
- Replace unwrap() with proper error propagation
- Add detailed logging for Java resolution priority chain
- Improve error mapping in validation (NotFound vs VerificationFailed)

Reviewed-by: Claude Sonnet 4.5
</content>
</entry>
<entry>
<title>feat(java): implement cache versioning, size limits, and automatic cleanup</title>
<updated>2026-01-29T02:03:59Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-27T04:56:59Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=68a493ef22cb0558a05dd3881c7d8cb4999d9679'/>
<id>urn:sha1:68a493ef22cb0558a05dd3881c7d8cb4999d9679</id>
<content type='text'>
- Add CACHE_VERSION constant for cache format compatibility tracking
- Add MAX_CACHE_SIZE_BYTES limit (10 MB) to prevent unbounded cache growth
- Add cache_version field to JavaCatalog struct with default value
- Implement cache version validation in load_cached_catalog()
- Implement cache size enforcement in save_catalog_cache()
- Add cleanup_expired_caches() for background cache cleanup
- Add enforce_cache_size_limit() to validate cache file sizes
- Add is_cache_version_compatible() helper function
- Automatically clean up expired caches on load and clear operations
- Validate cache version before using cached data

Fixes:
- Cache expiration without automatic cleanup (now cleaned on load)
- Missing cache version control (now validates format compatibility)
- Unbounded cache size growth (now limited to 10 MB)

Reviewed-by: Claude 3.5 Sonnet
</content>
</entry>
<entry>
<title>feat(java): Enhance Java detection and error handling</title>
<updated>2026-01-29T02:02:44Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-27T02:56:21Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=f4078c987a3899d4031acb49d72aa418432e046d'/>
<id>urn:sha1:f4078c987a3899d4031acb49d72aa418432e046d</id>
<content type='text'>
- Added support for detecting Java installations from SDKMAN! in `find_sdkman_java`.
- Improved `run_which_command_with_timeout` to handle command timeouts gracefully.
- Introduced a unified `JavaError` enum for consistent error handling across Java operations.
- Updated functions to return `Result` types instead of `Option` for better error reporting.
- Enhanced `load_cached_catalog` and `save_catalog_cache` to use `JavaError`.
- Refactored `fetch_java_catalog`, `fetch_java_release`, and `fetch_available_versions` to return `JavaError`.
- Improved validation functions to return detailed errors when checking Java installations.
- Added tests for version parsing and compatibility checks.
- Updated `resolve_java_for_launch` to handle instance-specific and global Java paths.
</content>
</entry>
<entry>
<title>refactor(java): simplify version compatibility logic and improve error handling</title>
<updated>2026-01-29T02:01:26Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-26T18:03:49Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=6bb967f05b2dd32dc1cd1b849a6089bc80667aec'/>
<id>urn:sha1:6bb967f05b2dd32dc1cd1b849a6089bc80667aec</id>
<content type='text'>
- Extract version compatibility check into shared validation function
- Remove duplicated version checking code across multiple modules
- Simplify Java detection timeout logic in detection.rs
- Expand vendor detection to support more JDK distributions (Dragonwell, Kona, Semeru, BiSheng, etc.)
- Refactor start_game to use priority-based Java resolution
- Improve error handling in Adoptium provider task collection

Reviewed-by: Claude Sonnet 4.5
</content>
</entry>
<entry>
<title>refactor(java): address Sourcery AI code review feedback</title>
<updated>2026-01-29T01:56:30Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-25T09:28:46Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=83e9e3c6067c8a2016676d461c17835d4da8b7ab'/>
<id>urn:sha1:83e9e3c6067c8a2016676d461c17835d4da8b7ab</id>
<content type='text'>
- Centralize strip_unc_prefix into java/mod.rs to eliminate duplication across detection.rs and validation.rs
- Remove unused JAVA_CHECK_TIMEOUT constant from validation.rs
- Implement actual timeout mechanism in run_which_command_with_timeout() using try_wait() loop
- Parallelize Adoptium API requests for better catalog fetch performance

Fixes:
- Multiple strip_unc_prefix implementations consolidated
- Timeout constant now properly enforced in which/where command execution
- Catalog fetching now uses concurrent tokio::spawn tasks instead of sequential await

Reviewed-by: Claude Sonnet 4.5
</content>
</entry>
<entry>
<title>refactor(java): modularize Java detection and management system</title>
<updated>2026-01-29T01:53:33Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-25T03:52:35Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=d7ddf3710f6aff40d0595430f5f49255c89fdca1'/>
<id>urn:sha1:d7ddf3710f6aff40d0595430f5f49255c89fdca1</id>
<content type='text'>
- Split monolithic java.rs (1089 lines) into focused modules
  - detection: Java installation discovery
  - validation: Version validation and requirements checking
  - priority: Installation selection priority logic
  - provider: Java download provider trait
  - providers: Provider implementations (Adoptium)
  - persistence: Cache and catalog management
- Add java_path_override field to Instance struct for per-instance Java configuration
- Export JavaInstallation at core module level

This refactoring improves maintainability and prepares for multi-vendor Java provider support.

Reviewed-by: Claude Sonnet 4.5
</content>
</entry>
</feed>
