You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by al...@apache.org on 2017/12/05 15:52:49 UTC

flink git commit: [FLINK-8186] Exclude flink-avro from flink-dist; fix AvroUtils loading

Repository: flink
Updated Branches:
  refs/heads/release-1.4 155149855 -> 612f07bbd


[FLINK-8186] Exclude flink-avro from flink-dist; fix AvroUtils loading

Before, AvroUtils were loaded when the class was loaded which didn't
take into account the user-code ClassLoader. Now, we try loading avro
utils with the Thread context ClassLoader.


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/612f07bb
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/612f07bb
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/612f07bb

Branch: refs/heads/release-1.4
Commit: 612f07bbd2dc9aa1abf01ebf817c8341c1ad7a10
Parents: 1551498
Author: Aljoscha Krettek <al...@gmail.com>
Authored: Mon Dec 4 16:14:56 2017 +0100
Committer: Aljoscha Krettek <al...@gmail.com>
Committed: Tue Dec 5 16:51:12 2017 +0100

----------------------------------------------------------------------
 .../flink/api/java/typeutils/AvroUtils.java       | 18 ++++++------------
 flink-dist/pom.xml                                | 10 ----------
 2 files changed, 6 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/612f07bb/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroUtils.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroUtils.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroUtils.java
index 2983be0..0677338 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroUtils.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroUtils.java
@@ -37,12 +37,14 @@ public abstract class AvroUtils {
 
 	private static final String AVRO_KRYO_UTILS = "org.apache.flink.formats.avro.utils.AvroKryoSerializerUtils";
 
-	private static final AvroUtils INSTANCE = loadAvroKryoUtils();
-
-	private static AvroUtils loadAvroKryoUtils() {
+	/**
+	 * Returns either the default {@link AvroUtils} which throw an exception in cases where Avro
+	 * would be needed or loads the specific utils for Avro from flink-avro.
+	 */
+	public static AvroUtils getAvroUtils() {
 		// try and load the special AvroUtils from the flink-avro package
 		try {
-			Class<?> clazz = Class.forName(AVRO_KRYO_UTILS, false, AvroUtils.class.getClassLoader());
+			Class<?> clazz = Class.forName(AVRO_KRYO_UTILS, false, Thread.currentThread().getContextClassLoader());
 			return clazz.asSubclass(AvroUtils.class).getConstructor().newInstance();
 		} catch (ClassNotFoundException e) {
 			// cannot find the utils, return the default implementation
@@ -52,14 +54,6 @@ public abstract class AvroUtils {
 		}
 	}
 
-	/**
-	 * Returns either the default {@link AvroUtils} which throw an exception in cases where Avro
-	 * would be needed or loads the specific utils for Avro from flink-avro.
-	 */
-	public static AvroUtils getAvroUtils() {
-		return INSTANCE;
-	}
-
 	// ------------------------------------------------------------------------
 
 	/**

http://git-wip-us.apache.org/repos/asf/flink/blob/612f07bb/flink-dist/pom.xml
----------------------------------------------------------------------
diff --git a/flink-dist/pom.xml b/flink-dist/pom.xml
index 95b244c..124481f 100644
--- a/flink-dist/pom.xml
+++ b/flink-dist/pom.xml
@@ -81,12 +81,6 @@ under the License.
 
 		<dependency>
 			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-avro</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
 			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
 			<version>${project.version}</version>
 		</dependency>
@@ -498,10 +492,6 @@ under the License.
 							</artifactSet>
 							<relocations>
 								<relocation>
-									<pattern>org.codehaus.jackson</pattern>
-									<shadedPattern>org.apache.flink.formats.avro.shaded.org.codehaus.jackson</shadedPattern>
-								</relocation>
-								<relocation>
 									<!-- relocate jackson services, which isn't done by flink-shaded-jackson -->
 									<pattern>com.fasterxml.jackson</pattern>
 									<shadedPattern>org.apache.flink.shaded.jackson2.com.fasterxml.jackson</shadedPattern>