From 41107da8641ee4306b8ad65f4c48da3a7367de4a Mon Sep 17 00:00:00 2001 From: Sean Owen Date: Wed, 27 Feb 2019 23:22:04 -0600 Subject: [PATCH 1/5] Use getPlatformClassloader as delegation parent in Java 9+, and fix/clarify fact that boot classloader is just 'null' --- .../org/apache/spark/sql/hive/HiveUtils.scala | 20 ++++++++------ .../hive/client/IsolatedClientLoader.scala | 26 ++++++++++++++----- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveUtils.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveUtils.scala index 38bbe643f5fac..a7f40c6bff0b9 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveUtils.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveUtils.scala @@ -19,8 +19,6 @@ package org.apache.spark.sql.hive import java.io.File import java.net.{URL, URLClassLoader} -import java.nio.charset.StandardCharsets -import java.sql.Timestamp import java.util.Locale import java.util.concurrent.TimeUnit @@ -28,12 +26,11 @@ import scala.collection.JavaConverters._ import scala.collection.mutable.HashMap import scala.language.implicitConversions +import org.apache.commons.lang3.{JavaVersion, SystemUtils} import org.apache.hadoop.conf.Configuration -import org.apache.hadoop.hive.common.`type`.HiveDecimal import org.apache.hadoop.hive.conf.HiveConf import org.apache.hadoop.hive.conf.HiveConf.ConfVars import org.apache.hadoop.hive.ql.session.SessionState -import org.apache.hadoop.hive.serde2.io.{DateWritable, TimestampWritable} import org.apache.hadoop.util.VersionInfo import org.apache.spark.{SparkConf, SparkContext} @@ -329,10 +326,17 @@ private[spark] object HiveUtils extends Logging { val classLoader = Utils.getContextOrSparkClassLoader val jars = allJars(classLoader) - if (jars.length == 0) { - throw new IllegalArgumentException( - "Unable to locate hive jars to connect to metastore. " + - s"Please set ${HIVE_METASTORE_JARS.key}.") + if (SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9)) { + // Do nothing. The system classloader is no longer a URLClassLoader in Java 9, + // so it won't match the case in allJars above. It no longer exposes URLs of + // the system classpath + } else { + // Verify at least one jar was found + if (jars.length == 0) { + throw new IllegalArgumentException( + "Unable to locate hive jars to connect to metastore. " + + s"Please set ${HIVE_METASTORE_JARS.key}.") + } } logInfo( diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala index efa97b2aa4e21..7984adcd7866f 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala @@ -25,6 +25,7 @@ import java.util import scala.util.Try import org.apache.commons.io.{FileUtils, IOUtils} +import org.apache.commons.lang3.{JavaVersion, SystemUtils} import org.apache.hadoop.conf.Configuration import org.apache.hadoop.hive.conf.HiveConf.ConfVars @@ -157,7 +158,6 @@ private[hive] object IsolatedClientLoader extends Logging { * @param isolationOn When true, custom versions of barrier classes will be constructed. Must be * true unless loading the version of hive that is on Sparks classloader. * @param sharesHadoopClasses When true, we will share Hadoop classes between Spark and - * @param rootClassLoader The system root classloader. Must not know about Hive classes. * @param baseClassLoader The spark classloader that is used to load shared classes. */ private[hive] class IsolatedClientLoader( @@ -168,15 +168,11 @@ private[hive] class IsolatedClientLoader( val config: Map[String, String] = Map.empty, val isolationOn: Boolean = true, val sharesHadoopClasses: Boolean = true, - val rootClassLoader: ClassLoader = ClassLoader.getSystemClassLoader.getParent.getParent, val baseClassLoader: ClassLoader = Thread.currentThread().getContextClassLoader, val sharedPrefixes: Seq[String] = Seq.empty, val barrierPrefixes: Seq[String] = Seq.empty) extends Logging { - // Check to make sure that the root classloader does not know about Hive. - assert(Try(rootClassLoader.loadClass("org.apache.hadoop.hive.conf.HiveConf")).isFailure) - /** All jars used by the hive specific classloader. */ protected def allJars = execJars.toArray @@ -191,8 +187,8 @@ private[hive] class IsolatedClientLoader( (sharesHadoopClasses && isHadoopClass) || name.startsWith("scala.") || (name.startsWith("com.google") && !name.startsWith("com.google.cloud")) || - name.startsWith("java.lang.") || - name.startsWith("java.net") || + name.startsWith("java.") || + name.startsWith("javax.") || sharedPrefixes.exists(name.startsWith) } @@ -214,6 +210,22 @@ private[hive] class IsolatedClientLoader( private[hive] val classLoader: MutableURLClassLoader = { val isolatedClassLoader = if (isolationOn) { + val rootClassLoader: ClassLoader = + if (SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9)) { + // In Java 9, the boot classloader can see few JDK classes. The intended parent + // classloader for delegation is now the platform classloader. + // See http://java9.wtf/class-loading/ + val platformCL = + classOf[ClassLoader].getMethod("getPlatformClassLoader"). + invoke(null).asInstanceOf[ClassLoader] + // Check to make sure that the root classloader does not know about Hive. + assert(Try(platformCL.loadClass("org.apache.hadoop.hive.conf.HiveConf")).isFailure) + platformCL + } else { + // The boot classloader is represented by null (the instance itself isn't accessible) + // and before Java 9 can see all JDK classes + null + } new URLClassLoader(allJars, rootClassLoader) { override def loadClass(name: String, resolve: Boolean): Class[_] = { val loaded = findLoadedClass(name) From 31e56ea96991689b224fafac44d795e5d6f1783f Mon Sep 17 00:00:00 2001 From: Sean Owen Date: Sun, 10 Mar 2019 23:22:26 -0500 Subject: [PATCH 2/5] Try using root classloader when no JARs are present in Java 9+ --- .../hive/client/IsolatedClientLoader.scala | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala index 7984adcd7866f..a64f19c0d010c 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala @@ -226,30 +226,34 @@ private[hive] class IsolatedClientLoader( // and before Java 9 can see all JDK classes null } - new URLClassLoader(allJars, rootClassLoader) { - override def loadClass(name: String, resolve: Boolean): Class[_] = { - val loaded = findLoadedClass(name) - if (loaded == null) doLoadClass(name, resolve) else loaded - } - def doLoadClass(name: String, resolve: Boolean): Class[_] = { - val classFileName = name.replaceAll("\\.", "/") + ".class" - if (isBarrierClass(name)) { - // For barrier classes, we construct a new copy of the class. - val bytes = IOUtils.toByteArray(baseClassLoader.getResourceAsStream(classFileName)) - logDebug(s"custom defining: $name - ${util.Arrays.hashCode(bytes)}") - defineClass(name, bytes, 0, bytes.length) - } else if (!isSharedClass(name)) { - logDebug(s"hive class: $name - ${getResource(classToPath(name))}") - super.loadClass(name, resolve) - } else { - // For shared classes, we delegate to baseClassLoader, but fall back in case the - // class is not found. - logDebug(s"shared class: $name") - try { - baseClassLoader.loadClass(name) - } catch { - case _: ClassNotFoundException => - super.loadClass(name, resolve) + if (allJars.isEmpty) { + rootClassLoader + } else { + new URLClassLoader(allJars, rootClassLoader) { + override def loadClass(name: String, resolve: Boolean): Class[_] = { + val loaded = findLoadedClass(name) + if (loaded == null) doLoadClass(name, resolve) else loaded + } + def doLoadClass(name: String, resolve: Boolean): Class[_] = { + val classFileName = name.replaceAll("\\.", "/") + ".class" + if (isBarrierClass(name)) { + // For barrier classes, we construct a new copy of the class. + val bytes = IOUtils.toByteArray(baseClassLoader.getResourceAsStream(classFileName)) + logDebug(s"custom defining: $name - ${util.Arrays.hashCode(bytes)}") + defineClass(name, bytes, 0, bytes.length) + } else if (!isSharedClass(name)) { + logDebug(s"hive class: $name - ${getResource(classToPath(name))}") + super.loadClass(name, resolve) + } else { + // For shared classes, we delegate to baseClassLoader, but fall back in case the + // class is not found. + logDebug(s"shared class: $name") + try { + baseClassLoader.loadClass(name) + } catch { + case _: ClassNotFoundException => + super.loadClass(name, resolve) + } } } } From 9dddcee57cc60eaac8e9500566cfbd3e99b171a3 Mon Sep 17 00:00:00 2001 From: Sean Owen Date: Mon, 11 Mar 2019 11:52:41 -0500 Subject: [PATCH 3/5] Update datanucleus for Java 11 compatibility --- pom.xml | 12 ++++++- sql/hive/pom.xml | 11 ++++++ .../hive/client/IsolatedClientLoader.scala | 35 ++++++++++--------- 3 files changed, 40 insertions(+), 18 deletions(-) diff --git a/pom.xml b/pom.xml index 160830946f5ce..19a4d829c1b26 100644 --- a/pom.xml +++ b/pom.xml @@ -174,7 +174,7 @@ 2.6 3.8.1 - 3.2.10 + 5.2.0-release 3.0.11 2.22.2 2.9.3 @@ -1869,6 +1869,16 @@ datanucleus-core ${datanucleus-core.version} + + org.datanucleus + datanucleus-api-jdo + ${datanucleus-core.version} + + + org.datanucleus + datanucleus-rdbms + ${datanucleus-core.version} + org.apache.thrift libthrift diff --git a/sql/hive/pom.xml b/sql/hive/pom.xml index 55afbe7c5d651..927e59cb3c290 100644 --- a/sql/hive/pom.xml +++ b/sql/hive/pom.xml @@ -157,6 +157,17 @@ org.datanucleus datanucleus-core + runtime + + + org.datanucleus + datanucleus-api-jdo + runtime + + + org.datanucleus + datanucleus-rdbms + runtime org.apache.thrift diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala index a64f19c0d010c..5ecb025ebdd7d 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala @@ -210,25 +210,26 @@ private[hive] class IsolatedClientLoader( private[hive] val classLoader: MutableURLClassLoader = { val isolatedClassLoader = if (isolationOn) { - val rootClassLoader: ClassLoader = - if (SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9)) { - // In Java 9, the boot classloader can see few JDK classes. The intended parent - // classloader for delegation is now the platform classloader. - // See http://java9.wtf/class-loading/ - val platformCL = - classOf[ClassLoader].getMethod("getPlatformClassLoader"). - invoke(null).asInstanceOf[ClassLoader] - // Check to make sure that the root classloader does not know about Hive. - assert(Try(platformCL.loadClass("org.apache.hadoop.hive.conf.HiveConf")).isFailure) - platformCL - } else { - // The boot classloader is represented by null (the instance itself isn't accessible) - // and before Java 9 can see all JDK classes - null - } if (allJars.isEmpty) { - rootClassLoader + // See HiveUtils; this is the Java 9+ + builtin mode scenario + baseClassLoader } else { + val rootClassLoader: ClassLoader = + if (SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9)) { + // In Java 9, the boot classloader can see few JDK classes. The intended parent + // classloader for delegation is now the platform classloader. + // See http://java9.wtf/class-loading/ + val platformCL = + classOf[ClassLoader].getMethod("getPlatformClassLoader"). + invoke(null).asInstanceOf[ClassLoader] + // Check to make sure that the root classloader does not know about Hive. + assert(Try(platformCL.loadClass("org.apache.hadoop.hive.conf.HiveConf")).isFailure) + platformCL + } else { + // The boot classloader is represented by null (the instance itself isn't accessible) + // and before Java 9 can see all JDK classes + null + } new URLClassLoader(allJars, rootClassLoader) { override def loadClass(name: String, resolve: Boolean): Class[_] = { val loaded = findLoadedClass(name) From b49d65d3f1ef4231fa82de978922348b14757f1a Mon Sep 17 00:00:00 2001 From: Sean Owen Date: Mon, 11 Mar 2019 13:21:21 -0500 Subject: [PATCH 4/5] Update JDO to 3.2 from datanucleus --- dev/deps/spark-deps-hadoop-2.7 | 10 +++++----- dev/deps/spark-deps-hadoop-3.1 | 10 +++++----- pom.xml | 15 +++++++++++++++ sql/hive/pom.xml | 7 ++++--- .../sql/hive/client/IsolatedClientLoader.scala | 2 +- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/dev/deps/spark-deps-hadoop-2.7 b/dev/deps/spark-deps-hadoop-2.7 index 53267ea0e36cd..b9a825552677e 100644 --- a/dev/deps/spark-deps-hadoop-2.7 +++ b/dev/deps/spark-deps-hadoop-2.7 @@ -50,9 +50,9 @@ core-1.1.2.jar curator-client-2.7.1.jar curator-framework-2.7.1.jar curator-recipes-2.7.1.jar -datanucleus-api-jdo-3.2.6.jar -datanucleus-core-3.2.10.jar -datanucleus-rdbms-3.2.9.jar +datanucleus-api-jdo-5.2.0-release.jar +datanucleus-core-5.2.0-release.jar +datanucleus-rdbms-5.2.0-release.jar derby-10.12.1.1.jar flatbuffers-java-1.9.0.jar generex-1.0.1.jar @@ -102,13 +102,13 @@ javassist-3.18.1-GA.jar javax.annotation-api-1.2.jar javax.inject-1.jar javax.inject-2.4.0-b34.jar +javax.jdo-3.2.0-m11.jar javax.servlet-api-3.1.0.jar javax.ws.rs-api-2.0.1.jar javolution-5.5.1.jar jaxb-api-2.2.2.jar jaxb-runtime-2.3.2.jar jcl-over-slf4j-1.7.16.jar -jdo-api-3.0.1.jar jersey-client-2.22.2.jar jersey-common-2.22.2.jar jersey-container-servlet-2.22.2.jar @@ -129,7 +129,6 @@ json4s-jackson_2.12-3.5.3.jar json4s-scalap_2.12-3.5.3.jar jsp-api-2.1.jar jsr305-3.0.0.jar -jta-1.1.jar jtransforms-2.4.0.jar jul-to-slf4j-1.7.16.jar kryo-shaded-4.0.2.jar @@ -189,6 +188,7 @@ stax-api-1.0.1.jar stream-2.7.0.jar stringtemplate-3.2.1.jar super-csv-2.2.0.jar +transaction-api-1.1.jar univocity-parsers-2.7.3.jar validation-api-1.1.0.Final.jar xbean-asm7-shaded-4.12.jar diff --git a/dev/deps/spark-deps-hadoop-3.1 b/dev/deps/spark-deps-hadoop-3.1 index 367bd45dd3679..a23f45e2005e7 100644 --- a/dev/deps/spark-deps-hadoop-3.1 +++ b/dev/deps/spark-deps-hadoop-3.1 @@ -47,9 +47,9 @@ core-1.1.2.jar curator-client-2.12.0.jar curator-framework-2.12.0.jar curator-recipes-2.12.0.jar -datanucleus-api-jdo-3.2.6.jar -datanucleus-core-3.2.10.jar -datanucleus-rdbms-3.2.9.jar +datanucleus-api-jdo-5.2.0-release.jar +datanucleus-core-5.2.0-release.jar +datanucleus-rdbms-5.2.0-release.jar derby-10.12.1.1.jar dnsjava-2.1.7.jar ehcache-3.3.1.jar @@ -101,6 +101,7 @@ javassist-3.18.1-GA.jar javax.annotation-api-1.2.jar javax.inject-1.jar javax.inject-2.4.0-b34.jar +javax.jdo-3.2.0-m11.jar javax.servlet-api-3.1.0.jar javax.ws.rs-api-2.0.1.jar javolution-5.5.1.jar @@ -108,7 +109,6 @@ jaxb-api-2.2.11.jar jaxb-runtime-2.3.2.jar jcip-annotations-1.0-1.jar jcl-over-slf4j-1.7.16.jar -jdo-api-3.0.1.jar jersey-client-2.22.2.jar jersey-common-2.22.2.jar jersey-container-servlet-2.22.2.jar @@ -129,7 +129,6 @@ json4s-jackson_2.12-3.5.3.jar json4s-scalap_2.12-3.5.3.jar jsp-api-2.1.jar jsr305-3.0.0.jar -jta-1.1.jar jtransforms-2.4.0.jar jul-to-slf4j-1.7.16.jar kerb-admin-1.0.1.jar @@ -208,6 +207,7 @@ stream-2.7.0.jar stringtemplate-3.2.1.jar super-csv-2.2.0.jar token-provider-1.0.1.jar +transaction-api-1.1.jar univocity-parsers-2.7.3.jar validation-api-1.1.0.Final.jar woodstox-core-5.0.3.jar diff --git a/pom.xml b/pom.xml index 19a4d829c1b26..cdcbd7eed8a75 100644 --- a/pom.xml +++ b/pom.xml @@ -1636,6 +1636,11 @@ org.slf4j slf4j-log4j12 + + + javax.jdo + jdo-api + @@ -1868,16 +1873,26 @@ org.datanucleus datanucleus-core ${datanucleus-core.version} + runtime org.datanucleus datanucleus-api-jdo ${datanucleus-core.version} + runtime org.datanucleus datanucleus-rdbms ${datanucleus-core.version} + runtime + + + + org.datanucleus + javax.jdo + 3.2.0-m11 + runtime org.apache.thrift diff --git a/sql/hive/pom.xml b/sql/hive/pom.xml index 927e59cb3c290..a1e90329235e7 100644 --- a/sql/hive/pom.xml +++ b/sql/hive/pom.xml @@ -157,17 +157,18 @@ org.datanucleus datanucleus-core - runtime org.datanucleus datanucleus-api-jdo - runtime org.datanucleus datanucleus-rdbms - runtime + + + org.datanucleus + javax.jdo org.apache.thrift diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala index 5ecb025ebdd7d..98999eb124006 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala @@ -188,7 +188,7 @@ private[hive] class IsolatedClientLoader( name.startsWith("scala.") || (name.startsWith("com.google") && !name.startsWith("com.google.cloud")) || name.startsWith("java.") || - name.startsWith("javax.") || + name.startsWith("javax.sql.") || sharedPrefixes.exists(name.startsWith) } From 3ad22b66220a9c3353931fe6b46bf87195869db3 Mon Sep 17 00:00:00 2001 From: Sean Owen Date: Tue, 12 Mar 2019 19:48:25 -0500 Subject: [PATCH 5/5] Revert datanucleus change --- dev/deps/spark-deps-hadoop-2.7 | 10 +++++----- dev/deps/spark-deps-hadoop-3.1 | 10 +++++----- pom.xml | 27 +-------------------------- sql/hive/pom.xml | 12 ------------ 4 files changed, 11 insertions(+), 48 deletions(-) diff --git a/dev/deps/spark-deps-hadoop-2.7 b/dev/deps/spark-deps-hadoop-2.7 index b9a825552677e..53267ea0e36cd 100644 --- a/dev/deps/spark-deps-hadoop-2.7 +++ b/dev/deps/spark-deps-hadoop-2.7 @@ -50,9 +50,9 @@ core-1.1.2.jar curator-client-2.7.1.jar curator-framework-2.7.1.jar curator-recipes-2.7.1.jar -datanucleus-api-jdo-5.2.0-release.jar -datanucleus-core-5.2.0-release.jar -datanucleus-rdbms-5.2.0-release.jar +datanucleus-api-jdo-3.2.6.jar +datanucleus-core-3.2.10.jar +datanucleus-rdbms-3.2.9.jar derby-10.12.1.1.jar flatbuffers-java-1.9.0.jar generex-1.0.1.jar @@ -102,13 +102,13 @@ javassist-3.18.1-GA.jar javax.annotation-api-1.2.jar javax.inject-1.jar javax.inject-2.4.0-b34.jar -javax.jdo-3.2.0-m11.jar javax.servlet-api-3.1.0.jar javax.ws.rs-api-2.0.1.jar javolution-5.5.1.jar jaxb-api-2.2.2.jar jaxb-runtime-2.3.2.jar jcl-over-slf4j-1.7.16.jar +jdo-api-3.0.1.jar jersey-client-2.22.2.jar jersey-common-2.22.2.jar jersey-container-servlet-2.22.2.jar @@ -129,6 +129,7 @@ json4s-jackson_2.12-3.5.3.jar json4s-scalap_2.12-3.5.3.jar jsp-api-2.1.jar jsr305-3.0.0.jar +jta-1.1.jar jtransforms-2.4.0.jar jul-to-slf4j-1.7.16.jar kryo-shaded-4.0.2.jar @@ -188,7 +189,6 @@ stax-api-1.0.1.jar stream-2.7.0.jar stringtemplate-3.2.1.jar super-csv-2.2.0.jar -transaction-api-1.1.jar univocity-parsers-2.7.3.jar validation-api-1.1.0.Final.jar xbean-asm7-shaded-4.12.jar diff --git a/dev/deps/spark-deps-hadoop-3.1 b/dev/deps/spark-deps-hadoop-3.1 index a23f45e2005e7..367bd45dd3679 100644 --- a/dev/deps/spark-deps-hadoop-3.1 +++ b/dev/deps/spark-deps-hadoop-3.1 @@ -47,9 +47,9 @@ core-1.1.2.jar curator-client-2.12.0.jar curator-framework-2.12.0.jar curator-recipes-2.12.0.jar -datanucleus-api-jdo-5.2.0-release.jar -datanucleus-core-5.2.0-release.jar -datanucleus-rdbms-5.2.0-release.jar +datanucleus-api-jdo-3.2.6.jar +datanucleus-core-3.2.10.jar +datanucleus-rdbms-3.2.9.jar derby-10.12.1.1.jar dnsjava-2.1.7.jar ehcache-3.3.1.jar @@ -101,7 +101,6 @@ javassist-3.18.1-GA.jar javax.annotation-api-1.2.jar javax.inject-1.jar javax.inject-2.4.0-b34.jar -javax.jdo-3.2.0-m11.jar javax.servlet-api-3.1.0.jar javax.ws.rs-api-2.0.1.jar javolution-5.5.1.jar @@ -109,6 +108,7 @@ jaxb-api-2.2.11.jar jaxb-runtime-2.3.2.jar jcip-annotations-1.0-1.jar jcl-over-slf4j-1.7.16.jar +jdo-api-3.0.1.jar jersey-client-2.22.2.jar jersey-common-2.22.2.jar jersey-container-servlet-2.22.2.jar @@ -129,6 +129,7 @@ json4s-jackson_2.12-3.5.3.jar json4s-scalap_2.12-3.5.3.jar jsp-api-2.1.jar jsr305-3.0.0.jar +jta-1.1.jar jtransforms-2.4.0.jar jul-to-slf4j-1.7.16.jar kerb-admin-1.0.1.jar @@ -207,7 +208,6 @@ stream-2.7.0.jar stringtemplate-3.2.1.jar super-csv-2.2.0.jar token-provider-1.0.1.jar -transaction-api-1.1.jar univocity-parsers-2.7.3.jar validation-api-1.1.0.Final.jar woodstox-core-5.0.3.jar diff --git a/pom.xml b/pom.xml index cdcbd7eed8a75..160830946f5ce 100644 --- a/pom.xml +++ b/pom.xml @@ -174,7 +174,7 @@ 2.6 3.8.1 - 5.2.0-release + 3.2.10 3.0.11 2.22.2 2.9.3 @@ -1636,11 +1636,6 @@ org.slf4j slf4j-log4j12 - - - javax.jdo - jdo-api - @@ -1873,26 +1868,6 @@ org.datanucleus datanucleus-core ${datanucleus-core.version} - runtime - - - org.datanucleus - datanucleus-api-jdo - ${datanucleus-core.version} - runtime - - - org.datanucleus - datanucleus-rdbms - ${datanucleus-core.version} - runtime - - - - org.datanucleus - javax.jdo - 3.2.0-m11 - runtime org.apache.thrift diff --git a/sql/hive/pom.xml b/sql/hive/pom.xml index a1e90329235e7..55afbe7c5d651 100644 --- a/sql/hive/pom.xml +++ b/sql/hive/pom.xml @@ -158,18 +158,6 @@ org.datanucleus datanucleus-core - - org.datanucleus - datanucleus-api-jdo - - - org.datanucleus - datanucleus-rdbms - - - org.datanucleus - javax.jdo - org.apache.thrift libthrift