Skip to content

Update API part 3#68

Merged
JavaSaBr merged 12 commits into
developfrom
update-api-part-3
May 16, 2026
Merged

Update API part 3#68
JavaSaBr merged 12 commits into
developfrom
update-api-part-3

Conversation

@JavaSaBr
Copy link
Copy Markdown
Owner

@JavaSaBr JavaSaBr commented May 16, 2026

Changes Summary

1. Logger API expansion and migration path

  • Added new formatter contract Logger.N2IntFactory<A, B> for (A, B, int) message composition
  • Added warn(...) overloads mirroring existing warning(...) API, including message, throwable, and typed factory overloads
  • Added print(...) overload for N2IntFactory and corresponding debug(...) / warn(...) usage path
  • Kept warning(...) overloads as deprecated forward-compatible aliases

2. Collections and dictionary updates

  • Added paginated value extraction API: Dictionary.values(MutableArray<V> container, int startIndex, int limit)
  • Applied dictionary/internal optimizations and refactoring across hash-based dictionary implementations and related utilities
  • Updated collector implementations (ArrayCollectors, DictionaryCollectors) and related collection internals
  • Added/extended dictionary test coverage across immutable and mutable dictionary variants

3. Operating system detection and common utilities

  • Reworked OS model to immutable OperatingSystem record
  • Refactored OperatingSystemResolver to return resolved OperatingSystem directly with updated Linux/macOS/Darwin detection flow
  • Fixed path-handling behavior in Linux distribution fallback file lookup
  • Updated utility helpers (Utils, ThreadUtils, ClassUtils, ObjectUtils, StringUtils) and aligned logger usage with new warning API

4. Cross-module refactoring and cleanup

  • Applied API and implementation cleanups across classpath, compiler, concurrent executors, geometry, I/O, network, plugin-system, and logger implementation modules
  • Updated CI workflow and repository docs (README.md, .github/workflows/develop.yml)
  • Added repository skill guidance: .github/skills/branch-review.md

Testing & Validation

  • Recommended full validation before merge: ./gradlew clean build
  • Module-focused validation can be used for fast iteration (e.g., :rlib-logger-api:build, :rlib-collections:build, :rlib-common:build)

Copilot AI review requested due to automatic review settings May 16, 2026 07:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Bumps the project version to 10.0.alpha15, updates GitHub Actions versions, and introduces a paginated values(container, startIndex, limit) API on Dictionary with implementations for the three hash-based dictionaries. Also refactors ThreadUtils to use Lombok's @CustomLog and changes sleep(long) to return a boolean indicating interruption.

Changes:

  • Add a partitioned values(...) accessor to Dictionary and implement it in all three AbstractHashBased*Dictionary classes, with matching parameterized tests; also add a shared toString() to the int/long variants.
  • Change ThreadUtils.sleep to return boolean (interrupted flag) and switch logger to Lombok @CustomLog.
  • Bump version to 10.0.alpha15 and upgrade actions/checkout, actions/setup-java, and gradle/actions/* in the develop workflow.

Reviewed changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
rlib-collections/.../Dictionary.java Adds new paginated values(container, startIndex, limit) API
rlib-collections/.../impl/AbstractHashBasedRefToRefDictionary.java Implements paginated values; minor toString whitespace cleanup
rlib-collections/.../impl/AbstractHashBasedLongToRefDictionary.java Implements paginated values; adds toString
rlib-collections/.../impl/AbstractHashBasedIntToRefDictionary.java Implements paginated values; adds toString
rlib-collections/.../MutableRefToRefDictionaryTest.java Adds test for paginated values iteration
rlib-collections/.../MutableLongToRefDictionaryTest.java Adds test for paginated values iteration
rlib-collections/.../MutableIntToRefDictionaryTest.java Adds test for paginated values iteration
rlib-collections/.../RefToRefDictionaryTest.java Whitespace-only change
rlib-common/.../ThreadUtils.java Switches to @CustomLog; sleep now returns boolean
build.gradle Version bump to 10.0.alpha15
README.md Doc version bump to 10.0.alpha15
.github/workflows/develop.yml Upgrades third-party action versions

Comment thread rlib-common/src/main/java/javasabr/rlib/common/util/ThreadUtils.java Outdated
@github-actions
Copy link
Copy Markdown

Overall Project 55.63% -0.05% 🍏
Files changed 94.88% 🍏

File Coverage
AbstractHashBasedRefToRefDictionary.java 94.86% -0.35% 🍏
AbstractHashBasedLongToRefDictionary.java 91.48% -0.35% 🍏
AbstractHashBasedIntToRefDictionary.java 91.45% -0.35% 🍏
ThreadUtils.java 0% -64.71%

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 69 out of 70 changed files in this pull request and generated 3 comments.

Comment thread rlib-logger-api/src/main/java/javasabr/rlib/logger/api/Logger.java Outdated
@github-actions
Copy link
Copy Markdown

Overall Project 56.68% -1.76% 🍏
Files changed 61.37% 🍏

File Coverage
OperatingSystem.java 100% 🍏
LoggerLevel.java 100% 🍏
DefaultReversedArgsArrayIterationFunctions.java 100% 🍏
NumberedEnumMap.java 98.89% 🍏
LinkedEntryUtils.java 96.02% -3.98% 🍏
AbstractHashBasedRefToRefDictionary.java 94.95% 🍏
AbstractHashBasedLongToRefDictionary.java 89.58% -0.89% 🍏
AbstractHashBasedIntToRefDictionary.java 89.53% -0.89% 🍏
AbstractArray.java 84.63% 🍏
DefaultServerNetwork.java 84.25% 🍏
StringUtils.java 83.72% 🍏
CopyOnWriteMutableArray.java 81.32% 🍏
Logger.java 78.34% 🍏
AbstractNetworkPacket.java 77.91% 🍏
AbstractArrayBasedDeque.java 75.86% 🍏
FileUtils.java 68.25% -2%
DefaultLoggerService.java 67.69% 🍏
ClassPathScannerImpl.java 65.45% -10.55%
ExtensionPointManager.java 64.46% -11.57%
AbstractNetworkPacketReader.java 63.22% -2.48%
IdBasedReadableNetworkPacketRegistry.java 62.81% 🍏
NetworkUtils.java 59.6% 🍏
LongToRefDictionary.java 58.73% 🍏
IntToRefDictionary.java 58.73% 🍏
OperatingSystemResolver.java 57.67% -38.08%
LoggerManager.java 52.54% 🍏
ClassUtils.java 47.9% -2.4%
ArrayCollectors.java 46.3% 🍏
BasePluginSystem.java 38.79% -8.88%
DictionaryCollectors.java 37.62% -9.9% 🍏
Quaternion4f.java 21.71% 🍏
ObjectUtils.java 19.35% -9.68%
Utils.java 14.97% -2.23%
ReuseBytesInputStream.java 4.65% -1.55%
FolderFileListener.java 0% -40.38%
RedirectImageOutputStream.java 0% -3.7%
CoordsUtils.java 0% 🍏
ThreadUtils.java 0% -64.71%
ConcurrentUtils.java 0% -16.33%
AbstractReusableWritableNetworkPacket.java 0% -2%
AxisAlignedBoundingBox.java 0% -2.46%
AbstractBounding.java 0% -5.63%
ThreadPoolTaskExecutor.java 0% -3.98%
SingleThreadPeriodicTaskExecutor.java 0% -2.96%
SingleThreadTaskExecutor.java 0% -4.55%
ManifestClassPathScannerImpl.java 0% -11.45%
Ray3f.java 0% -23.68%

@github-actions
Copy link
Copy Markdown

Overall Project 56.71% -1.83% 🍏
Files changed 61.59% 🍏

File Coverage
OperatingSystem.java 100% 🍏
LoggerLevel.java 100% 🍏
DefaultReversedArgsArrayIterationFunctions.java 100% 🍏
NumberedEnumMap.java 98.89% 🍏
LinkedEntryUtils.java 96.02% -3.98% 🍏
AbstractHashBasedRefToRefDictionary.java 94.95% 🍏
AbstractHashBasedLongToRefDictionary.java 89.58% -0.89% 🍏
AbstractHashBasedIntToRefDictionary.java 89.53% -0.89% 🍏
AbstractArray.java 84.63% 🍏
DefaultServerNetwork.java 84.25% 🍏
StringUtils.java 83.72% 🍏
CopyOnWriteMutableArray.java 81.32% 🍏
Logger.java 78.34% 🍏
AbstractNetworkPacket.java 77.91% 🍏
AbstractArrayBasedDeque.java 75.86% 🍏
FileUtils.java 68.25% -2%
DefaultLoggerService.java 67.69% 🍏
ClassPathScannerImpl.java 65.45% -10.55%
ExtensionPointManager.java 64.46% -11.57%
AbstractNetworkPacketReader.java 63.22% -2.48%
IdBasedReadableNetworkPacketRegistry.java 62.81% 🍏
NetworkUtils.java 59.6% 🍏
OperatingSystemResolver.java 59.12% -37.79%
LongToRefDictionary.java 58.73% 🍏
IntToRefDictionary.java 58.73% 🍏
LoggerManager.java 52.54% 🍏
ClassUtils.java 47.9% -2.4%
ArrayCollectors.java 46.3% 🍏
BasePluginSystem.java 38.79% -8.88%
DictionaryCollectors.java 37.62% -9.9% 🍏
Quaternion4f.java 21.71% 🍏
ObjectUtils.java 19.35% -9.68%
Utils.java 14.97% -2.23%
ReuseBytesInputStream.java 4.65% -1.55%
FolderFileListener.java 0% -40.38%
RedirectImageOutputStream.java 0% -3.7%
CoordsUtils.java 0% 🍏
ThreadUtils.java 0% -64.71%
ConcurrentUtils.java 0% -16.33%
AbstractReusableWritableNetworkPacket.java 0% -2%
AxisAlignedBoundingBox.java 0% -2.46%
AbstractBounding.java 0% -5.63%
ThreadPoolTaskExecutor.java 0% -3.98%
SingleThreadPeriodicTaskExecutor.java 0% -2.96%
SingleThreadTaskExecutor.java 0% -4.55%
ManifestClassPathScannerImpl.java 0% -11.45%
Ray3f.java 0% -23.68%

@JavaSaBr JavaSaBr merged commit c067bec into develop May 16, 2026
6 checks passed
@JavaSaBr JavaSaBr deleted the update-api-part-3 branch May 16, 2026 17:30
@github-actions
Copy link
Copy Markdown

Overall Project 56.71% -1.83% 🍏
Files changed 61.59% 🍏

File Coverage
OperatingSystem.java 100% 🍏
LoggerLevel.java 100% 🍏
DefaultReversedArgsArrayIterationFunctions.java 100% 🍏
NumberedEnumMap.java 98.89% 🍏
LinkedEntryUtils.java 96.02% -3.98% 🍏
AbstractHashBasedRefToRefDictionary.java 94.95% 🍏
AbstractHashBasedLongToRefDictionary.java 89.58% -0.89% 🍏
AbstractHashBasedIntToRefDictionary.java 89.53% -0.89% 🍏
AbstractArray.java 84.63% 🍏
DefaultServerNetwork.java 84.25% 🍏
StringUtils.java 83.72% 🍏
CopyOnWriteMutableArray.java 81.32% 🍏
Logger.java 78.34% 🍏
AbstractNetworkPacket.java 77.91% 🍏
AbstractArrayBasedDeque.java 75.86% 🍏
FileUtils.java 68.25% -2%
DefaultLoggerService.java 67.69% 🍏
ClassPathScannerImpl.java 65.45% -10.55%
ExtensionPointManager.java 64.46% -11.57%
AbstractNetworkPacketReader.java 63.22% -2.48%
IdBasedReadableNetworkPacketRegistry.java 62.81% 🍏
NetworkUtils.java 59.6% 🍏
OperatingSystemResolver.java 59.12% -37.79%
LongToRefDictionary.java 58.73% 🍏
IntToRefDictionary.java 58.73% 🍏
LoggerManager.java 52.54% 🍏
ClassUtils.java 47.9% -2.4%
ArrayCollectors.java 46.3% 🍏
BasePluginSystem.java 38.79% -8.88%
DictionaryCollectors.java 37.62% -9.9% 🍏
Quaternion4f.java 21.71% 🍏
ObjectUtils.java 19.35% -9.68%
Utils.java 14.97% -2.23%
ReuseBytesInputStream.java 4.65% -1.55%
FolderFileListener.java 0% -40.38%
RedirectImageOutputStream.java 0% -3.7%
CoordsUtils.java 0% 🍏
ThreadUtils.java 0% -64.71%
ConcurrentUtils.java 0% -16.33%
AbstractReusableWritableNetworkPacket.java 0% -2%
AxisAlignedBoundingBox.java 0% -2.46%
AbstractBounding.java 0% -5.63%
ThreadPoolTaskExecutor.java 0% -3.98%
SingleThreadPeriodicTaskExecutor.java 0% -2.96%
SingleThreadTaskExecutor.java 0% -4.55%
ManifestClassPathScannerImpl.java 0% -11.45%
Ray3f.java 0% -23.68%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants