Change all subprojects to use 'implementation' dependencies
- All projects now explicitly declare all dependencies to other
subprojects. This makes issues more visible, guards for accidental
addition of new dependencies, and leaks much less transitive
dependencies on the compile classpathes.
- All usages of 'runtime' to declare dependencies have been replaced
- All projects are now `java-library` (and declare this explicitly)
- Most remaining Groovy scripts are translated to Kotlin
- The old 'compile' and 'runtime' configurations are not
configured/created anymore for the 'testFixture' and 'integTest'
- Some obsolete dependencies (see previous commits) are removed
- 'api' is used scarcely on purpose as the current project structure is
not well designed for this. The projects contain code for several
concerns of the build tool and thus putting complete projects on the
API of others exposes too much. They should be split up along
functional concerns first.
22 May 19 8ab371109b8d75117edcb1fa93a3bf92ee764dad
Remove support for nice incompatible error message
Previously, users trying to load the tooling API with Java 6 or 7 would
get a nice error message letting them know that Java 8 was required to
run the tooling API.
Now this will fail in the classical way as the bytecode cannot be loaded
by a JVM < 8.
11 May 19 d8006bfb97e5de224ccd0e808470e6ea8c780a18