Open jamesfredley opened 1 month ago
We need a new version of com.github.erdi:webdriver-binaries-gradle-plugin that uses a version of grolifant with this change
that does not call OperatingSystem.getExecutableName() which was removed in grolifant:3.0.1 https://ysb33rorg.gitlab.io/grolifant/3.0.1/docs/changelog.html
/** Returns OS-specific decorated exe name.
*
* @param executablePath Name of exe
* @return Returns an appropriately decorated exe
* @deprecated Use{ @link #getExecutableNames(String) } instead
*/
@Deprecated
abstract String getExecutableName(String executablePath)
/** Returns list of possible OS-specific decorated exe names.
*
* @param executablePath Name of exe
* @return Returns a list of possible appropriately decorated exes
*/
abstract List<String> getExecutableNames(String executablePath)
/** Locates the given exe in the system path.
* @param name Name of exe to search for.
* @return Executable location of {@code null} if not found.
*/
File findInPath(String name) {
for (String exeName : getExecutableNames(name)) {
if (exeName.contains(pathSeparator)) {
File candidate = new File(exeName)
if (candidate.file) {
return candidate
}
} else {
for (File dir : (path)) {
File candidate = new File(dir, exeName)
if (candidate.file) {
return candidate
}
}
}
}
null
}
How it was used by the various operating system implementations:
PR submitted to https://github.com/erdi/webdriver-binaries-gradle-plugin/pull/44
The work around is to adjust gradle/wrapper/gradle-wrapper.properties to version 8.6.
https://blog.gradle.org/portal-jcenter-impact
This does not appear to occur if you have locally cached versions before the JCenter retirement. github actions caches dependencies also, so they are OK for now.
But on a new environment or if you delete .m2 and .gradle caches you will see this issue.
Current guess is that artifacts on maven central are different than the ones that were on JCenter. Micronaut ran into a similar issue, but they used an older version of web driver and the required jars for that exist on https://repo.grails.org/ui/native/core/org/ysb33r/gradle/grolifant/
The work around is to use Gradle 8.6, before they moved org/gradle/wrapper/ExclusiveFileAccessManager to https://github.com/gradle/gradle/blob/master/platforms/core-runtime/files/src/main/java/org/gradle/internal/file/locking/ExclusiveFileAccessManager.java
Related issues:
https://github.com/erdi/webdriver-binaries-gradle-plugin/issues/43 https://github.com/micronaut-projects/micronaut-core/discussions/10988 https://github.com/micronaut-projects/micronaut-core/pull/10990 - micronaut was using an older version of the web driver plugin and the required jars for that exist on https://repo.grails.org/ui/native/core/org/ysb33r/gradle/grolifant/
micronaut was using an older version with different id than grails: https://plugins.gradle.org/search?term=webdriver-binaries