<feed xmlns='http://www.w3.org/2005/Atom'>
<title>DropOut/src-tauri/src/core/java/detection.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-01-30T16:05:22Z</updated>
<entry>
<title>feat(java): add mise version manager support and refactor detection logic</title>
<updated>2026-01-30T16:05:22Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-01-30T16:05:22Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=50de0891a02c5a782efe592cf58508707bffbe56'/>
<id>urn:sha1:50de0891a02c5a782efe592cf58508707bffbe56</id>
<content type='text'>
- Add scan_java_dir() helper to filter symlinks and scan directories
- Implement find_mise_java() for ~/.local/share/mise/installs/java/
- Refactor find_sdkman_java() to scan candidates dir instead of 'current'
- Fix import paths to use absolute crate::core::java:: paths
- Add mise detection to Linux and macOS candidates

Reviewed-by: Claude Sonnet 4.5
</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>
