Prior to this commit, with Gradle >= 8.1, we were seeing some NoClassDefFoundError related to the sun/reflect/Reflection class when running integrationTest. The error was caused because Gradle was picking the integrationTestRuntimeClasspath instead of runtimeElements, and the integrationTestRuntimeClasspath does not have the proper transitive dependencies.
This commit moves the sourceSet declaration before the configurations declaration, allowing Gradle to create the named configuration automatically using the role with the allowed usage it expects, preventing integrationTestRuntimeClasspath from being selected. The related issue in Gradle is https://github.com/gradle/gradle/issues/26461
Issue gh-13408
This change applies repository content filtering to configured
repositories, reducing the time spent during dependency resolution.
This fixes an issue where requests for 'org.opensaml',
'net.shibboleth.utilities' and 'net.minidev' dependencies were being
made in the Spring releases repositories, resulting in many failed
requests during dependency resolution and increased resolution times.
Closes gh-13582
- Gradle projects contain cycles which comes from dependencies to
test sources which is not a problem in gradle but eclipse metadata
generation is getting confused. Thus we need settings to relax errors
org.eclipse.jdt.core.circularClasspath=warning
org.eclipse.jdt.core.incompleteClasspath=warning
- Additionally .classpath entries needs to be changes having
without_test_code=false
test=false
- Aspects end up getting source dirs `build/classes/java/main`
and `build/resources/main` which never have sources. Vscode complains
about that, eclipse is fine. Remove those from entries.
- In tests `htmlunit` depends on `xml-apis`. `xml-apis` are now part
of jdk and eclipse complains about that. Excluse these in a gradle build.
- Both eclipse and vscode don't currently work with buildship, due to
project cycles and buildship cannot be configured. It's possible to
create metadata from `eclipse` task manually which then can be imported.
For this we need to disable automatic import in vscode using buildship.
This goes to `.vscode/settings.json` workspace config.
- Then with these changes user can do something like
git clean -fxd && ./gradlew clean build cleanEclipse eclipse -x checkstyleNohttp -x test -x integrationTest
and import projects manually.