Allow buildSrc classes to be implemented in Kotlin #86

Closed
bamboo opened this Issue Jul 1, 2016 · 0 comments

Projects

None yet

1 participant

@bamboo
Member
bamboo commented Jul 1, 2016

Depends on #38
It's related to #84

@bamboo bamboo added this to the 0.3.0 milestone Jul 1, 2016
@bamboo bamboo added a commit that closed this issue Jul 19, 2016
@bamboo bamboo Use isolated ClassLoader for Kotlin jars
Due to the lack of isolation between gradle-script-kotlin and the
compiled buildscript(s), referenced Kotlin types could leak into
different ClassLoader scopes causing all sorts of loader constraint
violations. That lack of isolation also meant that only the specific
version of Kotlin shipped with gsk could ever be used.

This commit mitigates these limitations by subverting the ClassLoader
delegation model when Kotlin jars are detected in the buildscript
classpath. In that case, all jars in the script classpath together with
the Kotlin jars are segregated into a ClassLoader that will first try to
load classes locally before delegating to its parent from the
ClassLoader scope hierarchy.

This solution is only a stepping stone and comes with its own set of
limitations, buildscript block and script body cannot exchange Kotlin
library values for one. A better solution will demand more isolation
between gradle-script-kotlin and core.

Resolves #84
Resolves #86
Resolves #25
a37751a
@bamboo bamboo closed this in a37751a Jul 19, 2016
@bamboo bamboo self-assigned this Jul 19, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment