From 24371bae15c141a81099552d255e4594b16663e5 Mon Sep 17 00:00:00 2001 From: Ryan Blue Date: Fri, 29 May 2020 13:16:18 -0700 Subject: [PATCH 1/2] Exclude Guava from the compile classpath. --- build.gradle | 7 +++++++ core/src/main/java/org/apache/iceberg/BaseFile.java | 6 +++--- core/src/main/java/org/apache/iceberg/GenericDataFile.java | 2 +- .../main/java/org/apache/iceberg/GenericDeleteFile.java | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 0208727c609f..a6fa1708e516 100644 --- a/build.gradle +++ b/build.gradle @@ -59,6 +59,13 @@ subprojects { configurations { testCompile.extendsFrom compileOnly + + compileClasspath { + if (project.name != 'iceberg-bundled-guava') { + exclude group: 'com.google.guava', module: 'guava' + } + } + all { exclude group: 'org.slf4j', module: 'slf4j-log4j12' exclude group: 'org.mortbay.jetty' diff --git a/core/src/main/java/org/apache/iceberg/BaseFile.java b/core/src/main/java/org/apache/iceberg/BaseFile.java index 7b0341831a10..ba03afe2bf11 100644 --- a/core/src/main/java/org/apache/iceberg/BaseFile.java +++ b/core/src/main/java/org/apache/iceberg/BaseFile.java @@ -19,9 +19,6 @@ package org.apache.iceberg; -import com.google.common.base.MoreObjects; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import java.io.Serializable; import java.nio.ByteBuffer; import java.util.Arrays; @@ -33,6 +30,9 @@ import org.apache.avro.generic.IndexedRecord; import org.apache.avro.specific.SpecificData; import org.apache.iceberg.avro.AvroSchemaUtil; +import org.apache.iceberg.relocated.com.google.common.base.MoreObjects; +import org.apache.iceberg.relocated.com.google.common.collect.Lists; +import org.apache.iceberg.relocated.com.google.common.collect.Maps; import org.apache.iceberg.types.Type; import org.apache.iceberg.types.Types; import org.apache.iceberg.util.ByteBuffers; diff --git a/core/src/main/java/org/apache/iceberg/GenericDataFile.java b/core/src/main/java/org/apache/iceberg/GenericDataFile.java index 4e8658745460..716bdf3a6e27 100644 --- a/core/src/main/java/org/apache/iceberg/GenericDataFile.java +++ b/core/src/main/java/org/apache/iceberg/GenericDataFile.java @@ -19,11 +19,11 @@ package org.apache.iceberg; -import com.google.common.collect.ImmutableMap; import java.nio.ByteBuffer; import java.util.List; import org.apache.avro.Schema; import org.apache.iceberg.avro.AvroSchemaUtil; +import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap; import org.apache.iceberg.types.Types; class GenericDataFile extends BaseFile implements DataFile { diff --git a/core/src/main/java/org/apache/iceberg/GenericDeleteFile.java b/core/src/main/java/org/apache/iceberg/GenericDeleteFile.java index f4a28d0fe346..426360f834e7 100644 --- a/core/src/main/java/org/apache/iceberg/GenericDeleteFile.java +++ b/core/src/main/java/org/apache/iceberg/GenericDeleteFile.java @@ -20,10 +20,10 @@ package org.apache.iceberg; -import com.google.common.collect.ImmutableMap; import java.nio.ByteBuffer; import org.apache.avro.Schema; import org.apache.iceberg.avro.AvroSchemaUtil; +import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap; import org.apache.iceberg.types.Types; class GenericDeleteFile extends BaseFile implements DeleteFile { From 47b40d0c8ccee6f776288ca01fe8f8614d9a84e3 Mon Sep 17 00:00:00 2001 From: Ryan Blue Date: Fri, 29 May 2020 14:02:47 -0700 Subject: [PATCH 2/2] Allow Guava in iceberg-spark compile classpath. --- build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index a6fa1708e516..95872a8689f2 100644 --- a/build.gradle +++ b/build.gradle @@ -61,7 +61,9 @@ subprojects { testCompile.extendsFrom compileOnly compileClasspath { - if (project.name != 'iceberg-bundled-guava') { + // do not exclude Guava so the bundle project can reference classes. + // the Spark module is also excluded because this breaks the Scala compiler + if (project.name != 'iceberg-bundled-guava' && project.name != 'iceberg-spark') { exclude group: 'com.google.guava', module: 'guava' } }