Skip to content

Implement BuildLayoutParameters so hermit Gradle is used by all IDE execution paths#113

Merged
jvmakine merged 1 commit intocashapp:mainfrom
joshfriend:jfriend/fix-java-issues
Mar 2, 2026
Merged

Implement BuildLayoutParameters so hermit Gradle is used by all IDE execution paths#113
jvmakine merged 1 commit intocashapp:mainfrom
joshfriend:jfriend/fix-java-issues

Conversation

@joshfriend
Copy link
Copy Markdown
Collaborator

GradleExecutionHelper and high-level APIs like ExternalSystemUtil.runTask resolve the Gradle distribution via GradleExecutionAware.getBuildLayoutParameters, which previously returned null from this plugin, causing the IDE to fall back to its bundled Gradle when no wrapper properties file exists. Also adds a path-existence guard in HermitJdkUpdater to surface a user-facing error instead of crashing when the JDK home doesn't exist on disk.

@joshfriend joshfriend force-pushed the jfriend/fix-java-issues branch from e790f25 to b36a398 Compare February 5, 2026 21:13
@joshfriend joshfriend force-pushed the jfriend/fix-java-issues branch from 245def7 to b36a398 Compare February 6, 2026 01:06
log.debug("waiting for 'hermit install' to be finished before continuing with Gradle preparation")

val start = System.currentTimeMillis()
val deadlineNanos = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(TIMEOUT_MS)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why does this need to be changed?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It doesn't have to, I just thought I would clean it up while I was here to use a monotonic clock source. Can split this into a separate PR though.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

…xecution paths

GradleExecutionHelper and high-level APIs like ExternalSystemUtil.runTask resolve
the Gradle distribution via GradleExecutionAware.getBuildLayoutParameters, which
previously returned null from this plugin, causing the IDE to fall back to its
bundled Gradle when no wrapper properties file exists. Also adds a path-existence
guard in HermitJdkUpdater to surface a user-facing error instead of crashing when
the JDK home doesn't exist on disk.
@joshfriend joshfriend force-pushed the jfriend/fix-java-issues branch from b36a398 to 29e991c Compare February 6, 2026 14:47
@jvmakine jvmakine enabled auto-merge (squash) March 2, 2026 18:59
@jvmakine jvmakine merged commit c87c888 into cashapp:main Mar 2, 2026
6 of 7 checks passed
@joshfriend joshfriend deleted the jfriend/fix-java-issues branch March 3, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants