From 6c6c7262ceffc89a251cfc00565933eabc01ec81 Mon Sep 17 00:00:00 2001 From: Kalvin Chau Date: Thu, 22 Jun 2017 13:26:41 -0700 Subject: [PATCH] updated depdency downloaders to exclude org.scala-lang.modules to prevent scala refelection issues TOREE-420 --- .../dependencies/CoursierDependencyDownloader.scala | 2 +- .../toree/dependencies/IvyDependencyDownloader.scala | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala b/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala index 598edbe17..d02c4135c 100644 --- a/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala +++ b/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala @@ -81,7 +81,7 @@ class CoursierDependencyDownloader extends DependencyDownloader { // Grab exclusions using base dependencies (always exclude scala lang) val exclusions: Set[(String, String)] = (if (excludeBaseDependencies) { getBaseDependencies.map(_.module).map(m => (m.organization, m.name)) - } else Nil).toSet ++ Set(("org.scala-lang", "*")) + } else Nil).toSet ++ Set(("org.scala-lang", "*"), ("org.scala-lang.modules", "*")) // Mark dependency that we want to download val start = Resolution(Set( diff --git a/kernel-api/src/main/scala/org/apache/toree/dependencies/IvyDependencyDownloader.scala b/kernel-api/src/main/scala/org/apache/toree/dependencies/IvyDependencyDownloader.scala index 56940c900..67d6f2fba 100644 --- a/kernel-api/src/main/scala/org/apache/toree/dependencies/IvyDependencyDownloader.scala +++ b/kernel-api/src/main/scala/org/apache/toree/dependencies/IvyDependencyDownloader.scala @@ -124,6 +124,14 @@ class IvyDependencyDownloader( scalaCompilerArtifactId, new RegexpPatternMatcher(), null ) + val scalaLangModuleId = new ModuleId("org.scala-lang.modules", "*") + val scalaLangArtifactId = new ArtifactId( + scalaLangModuleId, "*", "*", "*" + ) + val scalaLangExclusion = new DefaultExcludeRule( + scalaLangArtifactId, new RegexpPatternMatcher(), null + ) + // Create our dependency descriptor val dependencyDescriptor = new DefaultDependencyDescriptor( md, ModuleRevisionId.newInstance(groupId, artifactId, version), @@ -136,6 +144,7 @@ class IvyDependencyDownloader( md.addExcludeRule(sourcesExclusion) md.addExcludeRule(javadocExclusion) md.addExcludeRule(scalaCompilerExclusion) + md.addExcludeRule(scalaLangExclusion) // Exclude our base dependencies if marked to do so if (excludeBaseDependencies) {