Remove JDK7 features from Resolver shim.

This commit is contained in:
Josh Suereth 2014-04-04 20:25:37 -04:00
parent 80c09619bf
commit 8bd930cbe5
1 changed files with 9 additions and 2 deletions

View File

@ -25,15 +25,22 @@ private object ConvertResolver
* checksum-friendly URL publishing shim.
*/
private object ChecksumFriendlyURLResolver {
import java.lang.reflect.AccessibleObject
// TODO - When we dump JDK6 support we can remove this hackery
// import java.lang.reflect.AccessibleObject
type AccessibleObject = {
def setAccessible(value: Boolean): Unit
}
private def reflectiveLookup[A <: AccessibleObject](f: Class[_] => A): Option[A] =
try {
val cls = classOf[RepositoryResolver]
val thing = f(cls)
import scala.language.reflectiveCalls
thing.setAccessible(true)
Some(thing)
} catch {
case e: java.lang.ReflectiveOperationException => None
case (_: java.lang.NoSuchFieldException) |
(_: java.lang.SecurityException) |
(_: java.lang.NoSuchMethodException) => None
}
private val signerNameField: Option[java.lang.reflect.Field] =
reflectiveLookup(_.getDeclaredField("signerName"))