flink-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rmetz...@apache.org
Subject [4/5] flink git commit: [FLINK-3093] Introduce annotations for interface stability in remaining modules
Date Fri, 05 Feb 2016 13:44:29 GMT
http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
index 08ee5fe..86e45f4 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple12;
 
+@Public
 public class Tuple12Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> {
 
 	private List<Tuple12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
index be8d8ff..d01bea6 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple13;
 
+@Public
 public class Tuple13Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> {
 
 	private List<Tuple13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
index 4f26af4..35ea880 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple14;
 
+@Public
 public class Tuple14Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> {
 
 	private List<Tuple14<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple15Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple15Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple15Builder.java
index 2ab1d0a..0ef7092 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple15Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple15Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple15;
 
+@Public
 public class Tuple15Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> {
 
 	private List<Tuple15<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple16Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple16Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple16Builder.java
index 5b4fba2..c6b8b28 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple16Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple16Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple16;
 
+@Public
 public class Tuple16Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> {
 
 	private List<Tuple16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple17Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple17Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple17Builder.java
index 68ba92b..7dc55e2 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple17Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple17Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple17;
 
+@Public
 public class Tuple17Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> {
 
 	private List<Tuple17<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple18Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple18Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple18Builder.java
index d4ee37c..a55fb79 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple18Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple18Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple18;
 
+@Public
 public class Tuple18Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> {
 
 	private List<Tuple18<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple19Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple19Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple19Builder.java
index baf00ce..3c38601 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple19Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple19Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple19;
 
+@Public
 public class Tuple19Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> {
 
 	private List<Tuple19<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple1Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple1Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple1Builder.java
index f16a9d1..841f2c8 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple1Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple1Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple1;
 
+@Public
 public class Tuple1Builder<T0> {
 
 	private List<Tuple1<T0>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple20Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple20Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple20Builder.java
index 41bb974..5d08c0d 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple20Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple20Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple20;
 
+@Public
 public class Tuple20Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> {
 
 	private List<Tuple20<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple21Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple21Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple21Builder.java
index f24b7ec..cdcf806 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple21Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple21Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple21;
 
+@Public
 public class Tuple21Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> {
 
 	private List<Tuple21<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple22Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple22Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple22Builder.java
index 710fe50..1745940 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple22Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple22Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple22;
 
+@Public
 public class Tuple22Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> {
 
 	private List<Tuple22<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple23Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple23Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple23Builder.java
index a81e6c1..75e554d 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple23Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple23Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple23;
 
+@Public
 public class Tuple23Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> {
 
 	private List<Tuple23<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple24Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple24Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple24Builder.java
index 2b6fa4c..d89e6be 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple24Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple24Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple24;
 
+@Public
 public class Tuple24Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> {
 
 	private List<Tuple24<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple25Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple25Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple25Builder.java
index 2ab94fb..a1b8ad7 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple25Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple25Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple25;
 
+@Public
 public class Tuple25Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> {
 
 	private List<Tuple25<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple2Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple2Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple2Builder.java
index aa8ad9e..5631218 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple2Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple2Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple2;
 
+@Public
 public class Tuple2Builder<T0, T1> {
 
 	private List<Tuple2<T0, T1>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple3Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple3Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple3Builder.java
index 024c3c9..988e526 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple3Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple3Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple3;
 
+@Public
 public class Tuple3Builder<T0, T1, T2> {
 
 	private List<Tuple3<T0, T1, T2>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple4Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple4Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple4Builder.java
index f889dcb..7151115 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple4Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple4Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple4;
 
+@Public
 public class Tuple4Builder<T0, T1, T2, T3> {
 
 	private List<Tuple4<T0, T1, T2, T3>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple5Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple5Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple5Builder.java
index 9f0725c..2a05518 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple5Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple5Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple5;
 
+@Public
 public class Tuple5Builder<T0, T1, T2, T3, T4> {
 
 	private List<Tuple5<T0, T1, T2, T3, T4>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple6Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple6Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple6Builder.java
index 2320fdd..7eb6cc4 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple6Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple6Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple6;
 
+@Public
 public class Tuple6Builder<T0, T1, T2, T3, T4, T5> {
 
 	private List<Tuple6<T0, T1, T2, T3, T4, T5>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple7Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple7Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple7Builder.java
index 278526b..4157cf7 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple7Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple7Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple7;
 
+@Public
 public class Tuple7Builder<T0, T1, T2, T3, T4, T5, T6> {
 
 	private List<Tuple7<T0, T1, T2, T3, T4, T5, T6>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple8Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple8Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple8Builder.java
index e09acde..6f7e87e 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple8Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple8Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple8;
 
+@Public
 public class Tuple8Builder<T0, T1, T2, T3, T4, T5, T6, T7> {
 
 	private List<Tuple8<T0, T1, T2, T3, T4, T5, T6, T7>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple9Builder.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple9Builder.java b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple9Builder.java
index cea4e41..c592a11 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple9Builder.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple9Builder.java
@@ -28,8 +28,10 @@ package org.apache.flink.api.java.tuple.builder;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple9;
 
+@Public
 public class Tuple9Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8> {
 
 	private List<Tuple9<T0, T1, T2, T3, T4, T5, T6, T7, T8>> tuples = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroTypeInfo.java
index 5f74513..3a93dfb 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/AvroTypeInfo.java
@@ -20,6 +20,8 @@
 package org.apache.flink.api.java.typeutils;
 
 import org.apache.avro.specific.SpecificRecordBase;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 
 import java.lang.reflect.Type;
@@ -39,7 +41,9 @@ import java.util.List;
  * This class is checked by the AvroPojoTest.
  * @param <T>
  */
+@Public
 public class AvroTypeInfo<T extends SpecificRecordBase> extends PojoTypeInfo<T> {
+	@Experimental
 	public AvroTypeInfo(Class<T> typeClass) {
 		super(typeClass, generateFieldsFromAvroSchema(typeClass));
 	}

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EitherTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EitherTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EitherTypeInfo.java
index 74d850b..fdd101c 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EitherTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EitherTypeInfo.java
@@ -18,6 +18,8 @@
 
 package org.apache.flink.api.java.typeutils;
 
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 import org.apache.flink.api.common.typeutils.TypeSerializer;
@@ -30,6 +32,7 @@ import org.apache.flink.types.Either;
  * @param <L> the Left value type
  * @param <R> the Right value type
  */
+@Public
 public class EitherTypeInfo<L, R> extends TypeInformation<Either<L, R>> {
 
 	private static final long serialVersionUID = 1L;
@@ -38,43 +41,51 @@ public class EitherTypeInfo<L, R> extends TypeInformation<Either<L, R>> {
 
 	private final TypeInformation<R> rightType;
 
+	@Experimental
 	public EitherTypeInfo(TypeInformation<L> leftType, TypeInformation<R> rightType) {
 		this.leftType = leftType;
 		this.rightType = rightType;
 	}
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public int getArity() {
 		return 1;
 	}
 
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return 1;
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
+	@Experimental
 	public Class<Either<L, R>> getTypeClass() {
 		return (Class<Either<L, R>>) (Class<?>) Either.class;
 	}
 
 	@Override
+	@Experimental
 	public boolean isKeyType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public TypeSerializer<Either<L, R>> createSerializer(ExecutionConfig config) {
 		return new EitherSerializer<L, R>(leftType.createSerializer(config),
 				rightType.createSerializer(config));

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EnumTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EnumTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EnumTypeInfo.java
index de59c36..eb8dd6d 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EnumTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/EnumTypeInfo.java
@@ -19,6 +19,7 @@
 package org.apache.flink.api.java.typeutils;
 
 import com.google.common.base.Preconditions;
+import org.apache.flink.annotation.Experimental;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.typeinfo.AtomicType;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
@@ -26,18 +27,21 @@ import org.apache.flink.api.common.typeutils.TypeComparator;
 import org.apache.flink.api.common.typeutils.TypeSerializer;
 import org.apache.flink.api.common.typeutils.base.EnumComparator;
 import org.apache.flink.api.common.typeutils.base.EnumSerializer;
+import org.apache.flink.annotation.Public;
 
 /**
  * A {@link TypeInformation} for java enumeration types. 
  *
  * @param <T> The type represented by this type information.
  */
+@Public
 public class EnumTypeInfo<T extends Enum<T>> extends TypeInformation<T> implements AtomicType<T> {
 
 	private static final long serialVersionUID = 8936740290137178660L;
 	
 	private final Class<T> typeClass;
 
+	@Experimental
 	public EnumTypeInfo(Class<T> typeClass) {
 		Preconditions.checkNotNull(typeClass, "Enum type class must not be null.");
 
@@ -49,41 +53,49 @@ public class EnumTypeInfo<T extends Enum<T>> extends TypeInformation<T> implemen
 	}
 
 	@Override
+	@Experimental
 	public TypeComparator<T> createComparator(boolean sortOrderAscending, ExecutionConfig executionConfig) {
 		return new EnumComparator<T>(sortOrderAscending);
 	}
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public int getArity() {
 		return 1;
 	}
 	
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return 1;
 	}
 
 	@Override
+	@Experimental
 	public Class<T> getTypeClass() {
 		return this.typeClass;
 	}
 
 	@Override
+	@Experimental
 	public boolean isKeyType() {
 		return true;
 	}
 
 	@Override
+	@Experimental
 	public TypeSerializer<T> createSerializer(ExecutionConfig executionConfig) {
 		return new EnumSerializer<T>(typeClass);
 	}

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/GenericTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/GenericTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/GenericTypeInfo.java
index 7e7aa68..7e66928 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/GenericTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/GenericTypeInfo.java
@@ -19,6 +19,8 @@
 package org.apache.flink.api.java.typeutils;
 
 import com.google.common.base.Preconditions;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.typeinfo.AtomicType;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
@@ -28,53 +30,63 @@ import org.apache.flink.api.java.typeutils.runtime.GenericTypeComparator;
 import org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer;
 
 
+@Public
 public class GenericTypeInfo<T> extends TypeInformation<T> implements AtomicType<T> {
 
 	private static final long serialVersionUID = -7959114120287706504L;
 	
 	private final Class<T> typeClass;
 
+	@Experimental
 	public GenericTypeInfo(Class<T> typeClass) {
 		this.typeClass = Preconditions.checkNotNull(typeClass);
 	}
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public int getArity() {
 		return 1;
 	}
 	
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return 1;
 	}
 
 	@Override
+	@Experimental
 	public Class<T> getTypeClass() {
 		return typeClass;
 	}
 	
 	@Override
+	@Experimental
 	public boolean isKeyType() {
 		return Comparable.class.isAssignableFrom(typeClass);
 	}
 
 	@Override
+	@Experimental
 	public TypeSerializer<T> createSerializer(ExecutionConfig config) {
 		return new KryoSerializer<T>(this.typeClass, config);
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
+	@Experimental
 	public TypeComparator<T> createComparator(boolean sortOrderAscending, ExecutionConfig executionConfig) {
 		if (isKeyType()) {
 			@SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/InputTypeConfigurable.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/InputTypeConfigurable.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/InputTypeConfigurable.java
index f8b4247..5958e29 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/InputTypeConfigurable.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/InputTypeConfigurable.java
@@ -19,6 +19,7 @@
 package org.apache.flink.api.java.typeutils;
 
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 
@@ -29,6 +30,7 @@ import org.apache.flink.api.common.typeinfo.TypeInformation;
  * called when the output format is used with an output method such as
  * {@link org.apache.flink.api.java.DataSet#output(org.apache.flink.api.common.io.OutputFormat)}.
  */
+@Public
 public interface InputTypeConfigurable {
 
 	/**

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ObjectArrayTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ObjectArrayTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ObjectArrayTypeInfo.java
index 150c976..024fe59 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ObjectArrayTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ObjectArrayTypeInfo.java
@@ -20,12 +20,16 @@ package org.apache.flink.api.java.typeutils;
 
 import java.lang.reflect.Array;
 
-import com.google.common.base.Preconditions;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 import org.apache.flink.api.common.typeutils.TypeSerializer;
 import org.apache.flink.api.common.typeutils.base.GenericArraySerializer;
 
+import com.google.common.base.Preconditions;
+
+@Public
 public class ObjectArrayTypeInfo<T, C> extends TypeInformation<T> {
 
 	private static final long serialVersionUID = 1L;
@@ -41,42 +45,50 @@ public class ObjectArrayTypeInfo<T, C> extends TypeInformation<T> {
 	// --------------------------------------------------------------------------------------------
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public int getArity() {
 		return 1;
 	}
 
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return 1;
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
+	@Experimental
 	public Class<T> getTypeClass() {
 		return arrayType;
 	}
 
+	@Experimental
 	public TypeInformation<C> getComponentInfo() {
 		return componentInfo;
 	}
 
 	@Override
+	@Experimental
 	public boolean isKeyType() {
 		return false;
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
+	@Experimental
 	public TypeSerializer<T> createSerializer(ExecutionConfig executionConfig) {
 		return (TypeSerializer<T>) new GenericArraySerializer<C>(
 			componentInfo.getTypeClass(),
@@ -114,6 +126,7 @@ public class ObjectArrayTypeInfo<T, C> extends TypeInformation<T> {
 
 	// --------------------------------------------------------------------------------------------
 
+	@Experimental
 	public static <T, C> ObjectArrayTypeInfo<T, C> getInfoFor(Class<T> arrayClass, TypeInformation<C> componentInfo) {
 		Preconditions.checkNotNull(arrayClass);
 		Preconditions.checkNotNull(componentInfo);
@@ -131,6 +144,7 @@ public class ObjectArrayTypeInfo<T, C> extends TypeInformation<T> {
 	 * {@link java.lang.reflect.Type} or {@link java.lang.Class}.
 	 */
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public static <T, C> ObjectArrayTypeInfo<T, C> getInfoFor(TypeInformation<C> componentInfo) {
 		Preconditions.checkNotNull(componentInfo);
 

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/PojoTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/PojoTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/PojoTypeInfo.java
index cc0d239..39d3bcd 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/PojoTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/PojoTypeInfo.java
@@ -29,6 +29,8 @@ import java.util.regex.Pattern;
 
 import com.google.common.base.Preconditions;
 
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.operators.Keys.ExpressionKeys;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
@@ -54,6 +56,7 @@ import org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer;
  * 
  * @param <T> The type represented by this type information.
  */
+@Public
 public class PojoTypeInfo<T> extends CompositeType<T> {
 	
 	private static final long serialVersionUID = 1L;
@@ -71,6 +74,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	
 	private final int totalFields;
 
+	@Experimental
 	public PojoTypeInfo(Class<T> typeClass, List<PojoField> fields) {
 		super(typeClass);
 
@@ -96,27 +100,32 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	}
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public int getArity() {
 		return fields.length;
 	}
 	
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return totalFields;
 	}
 
 	@Override
+	@Experimental
 	public boolean isSortKeyType() {
 		// Support for sorting POJOs that implement Comparable is not implemented yet.
 		// Since the order of fields in a POJO type is not well defined, sorting on fields
@@ -126,6 +135,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	
 
 	@Override
+	@Experimental
 	public void getFlatFields(String fieldExpression, int offset, List<FlatFieldDescriptor> result) {
 
 		Matcher matcher = PATTERN_NESTED_FIELDS_WILDCARD.matcher(fieldExpression);
@@ -202,6 +212,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 
 	@SuppressWarnings("unchecked")
 	@Override
+	@Experimental
 	public <X> TypeInformation<X> getTypeAt(String fieldExpression) {
 
 		Matcher matcher = PATTERN_NESTED_FIELDS.matcher(fieldExpression);
@@ -242,6 +253,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	}
 
 	@Override
+	@Experimental
 	public <X> TypeInformation<X> getTypeAt(int pos) {
 		if (pos < 0 || pos >= this.fields.length) {
 			throw new IndexOutOfBoundsException();
@@ -257,6 +269,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	}
 
 	// used for testing. Maybe use mockito here
+	@Experimental
 	public PojoField getPojoFieldAt(int pos) {
 		if (pos < 0 || pos >= this.fields.length) {
 			throw new IndexOutOfBoundsException();
@@ -264,6 +277,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 		return this.fields[pos];
 	}
 
+	@Experimental
 	public String[] getFieldNames() {
 		String[] result = new String[fields.length];
 		for (int i = 0; i < fields.length; i++) {
@@ -273,6 +287,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	}
 
 	@Override
+	@Experimental
 	public int getFieldIndex(String fieldName) {
 		for (int i = 0; i < fields.length; i++) {
 			if (fields[i].getField().getName().equals(fieldName)) {
@@ -283,6 +298,7 @@ public class PojoTypeInfo<T> extends CompositeType<T> {
 	}
 
 	@Override
+	@Experimental
 	public TypeSerializer<T> createSerializer(ExecutionConfig config) {
 		if(config.isForceKryoEnabled()) {
 			return new KryoSerializer<T>(getTypeClass(), config);

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ResultTypeQueryable.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ResultTypeQueryable.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ResultTypeQueryable.java
index 5e0cbed..847c4f1 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ResultTypeQueryable.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ResultTypeQueryable.java
@@ -18,6 +18,7 @@
 
 package org.apache.flink.api.java.typeutils;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 
 /**
@@ -26,6 +27,7 @@ import org.apache.flink.api.common.typeinfo.TypeInformation;
  * that is otherwise performed and is useful in situations where the produced data type may vary
  * depending on parametrization.
  */
+@Public
 public interface ResultTypeQueryable<T> {
 
 	/**

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
index 30710e5..4d1927d 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
@@ -24,6 +24,8 @@ import java.util.Collections;
 
 import com.google.common.base.Preconditions;
 import com.google.common.primitives.Ints;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.functions.InvalidTypesException;
 import org.apache.flink.api.common.typeinfo.BasicTypeInfo;
@@ -43,6 +45,7 @@ import org.apache.flink.types.Value;
  *
  * @param <T> The type of the tuple.
  */
+@Public
 public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 	
 	private static final long serialVersionUID = 1L;
@@ -50,10 +53,12 @@ public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 	protected final String[] fieldNames;
 
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public TupleTypeInfo(TypeInformation<?>... types) {
 		this((Class<T>) Tuple.getTupleClass(types.length), types);
 	}
 
+	@Experimental
 	public TupleTypeInfo(Class<T> tupleType, TypeInformation<?>... types) {
 		super(tupleType, types);
 
@@ -69,11 +74,13 @@ public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 	}
 
 	@Override
+	@Experimental
 	public String[] getFieldNames() {
 		return fieldNames;
 	}
 
 	@Override
+	@Experimental
 	public int getFieldIndex(String fieldName) {
 		int fieldIndex = Integer.parseInt(fieldName.substring(1));
 		if (fieldIndex >= getArity()) {
@@ -84,6 +91,7 @@ public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 
 	@SuppressWarnings("unchecked")
 	@Override
+	@Experimental
 	public TupleSerializer<T> createSerializer(ExecutionConfig executionConfig) {
 		if (getTypeClass() == Tuple0.class) {
 			return (TupleSerializer<T>) Tuple0Serializer.INSTANCE;
@@ -191,6 +199,7 @@ public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 
 	// --------------------------------------------------------------------------------------------
 
+	@Experimental
 	public static <X extends Tuple> TupleTypeInfo<X> getBasicTupleTypeInfo(Class<?>... basicTypes) {
 		if (basicTypes == null || basicTypes.length == 0) {
 			throw new IllegalArgumentException();
@@ -216,6 +225,7 @@ public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 	}
 
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public static <X extends Tuple> TupleTypeInfo<X> getBasicAndBasicValueTupleTypeInfo(Class<?>... basicTypes) {
 		if (basicTypes == null || basicTypes.length == 0) {
 			throw new IllegalArgumentException();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
index d4ea24c..de3503b 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
@@ -32,7 +32,9 @@ import java.util.List;
 import org.apache.avro.specific.SpecificRecordBase;
 
 import org.apache.commons.lang3.ClassUtils;
-
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Internal;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.functions.CoGroupFunction;
 import org.apache.flink.api.common.functions.CrossFunction;
 import org.apache.flink.api.common.functions.FlatJoinFunction;
@@ -71,6 +73,7 @@ import com.google.common.base.Preconditions;
  * A utility for reflection analysis on classes, to determine the return type of implementations of transformation
  * functions.
  */
+@Public
 public class TypeExtractor {
 
 	/*
@@ -104,11 +107,13 @@ public class TypeExtractor {
 	// --------------------------------------------------------------------------------------------
 	//  Function specific methods
 	// --------------------------------------------------------------------------------------------
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getMapReturnTypes(MapFunction<IN, OUT> mapInterface, TypeInformation<IN> inType) {
 		return getMapReturnTypes(mapInterface, inType, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getMapReturnTypes(MapFunction<IN, OUT> mapInterface, TypeInformation<IN> inType,
 			String functionName, boolean allowMissing)
 	{
@@ -116,136 +121,151 @@ public class TypeExtractor {
 	}
 	
 
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getFlatMapReturnTypes(FlatMapFunction<IN, OUT> flatMapInterface, TypeInformation<IN> inType) {
 		return getFlatMapReturnTypes(flatMapInterface, inType, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getFlatMapReturnTypes(FlatMapFunction<IN, OUT> flatMapInterface, TypeInformation<IN> inType,
 			String functionName, boolean allowMissing)
 	{
 		return getUnaryOperatorReturnType((Function) flatMapInterface, FlatMapFunction.class, false, true, inType, functionName, allowMissing);
 	}
 
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getFoldReturnTypes(FoldFunction<IN, OUT> foldInterface, TypeInformation<IN> inType)
 	{
 		return getFoldReturnTypes(foldInterface, inType, null, false);
 	}
 
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getFoldReturnTypes(FoldFunction<IN, OUT> foldInterface, TypeInformation<IN> inType, String functionName, boolean allowMissing)
 	{
 		return getUnaryOperatorReturnType((Function) foldInterface, FoldFunction.class, false, false, inType, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getMapPartitionReturnTypes(MapPartitionFunction<IN, OUT> mapPartitionInterface, TypeInformation<IN> inType) {
 		return getMapPartitionReturnTypes(mapPartitionInterface, inType, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getMapPartitionReturnTypes(MapPartitionFunction<IN, OUT> mapPartitionInterface, TypeInformation<IN> inType,
 			String functionName, boolean allowMissing)
 	{
 		return getUnaryOperatorReturnType((Function) mapPartitionInterface, MapPartitionFunction.class, true, true, inType, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getGroupReduceReturnTypes(GroupReduceFunction<IN, OUT> groupReduceInterface, TypeInformation<IN> inType) {
 		return getGroupReduceReturnTypes(groupReduceInterface, inType, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getGroupReduceReturnTypes(GroupReduceFunction<IN, OUT> groupReduceInterface, TypeInformation<IN> inType,
 			String functionName, boolean allowMissing)
 	{
 		return getUnaryOperatorReturnType((Function) groupReduceInterface, GroupReduceFunction.class, true, true, inType, functionName, allowMissing);
 	}
 
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getGroupCombineReturnTypes(GroupCombineFunction<IN, OUT> combineInterface, TypeInformation<IN> inType) {
 		return getGroupCombineReturnTypes(combineInterface, inType, null, false);
 	}
 
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getGroupCombineReturnTypes(GroupCombineFunction<IN, OUT> combineInterface, TypeInformation<IN> inType,
 																			String functionName, boolean allowMissing)
 	{
 		return getUnaryOperatorReturnType((Function) combineInterface, GroupCombineFunction.class, true, true, inType, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getFlatJoinReturnTypes(FlatJoinFunction<IN1, IN2, OUT> joinInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type)
 	{
 		return getFlatJoinReturnTypes(joinInterface, in1Type, in2Type, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getFlatJoinReturnTypes(FlatJoinFunction<IN1, IN2, OUT> joinInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type, String functionName, boolean allowMissing)
 	{
 		return getBinaryOperatorReturnType((Function) joinInterface, FlatJoinFunction.class, false, true,
 				in1Type, in2Type, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getJoinReturnTypes(JoinFunction<IN1, IN2, OUT> joinInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type)
 	{
 		return getJoinReturnTypes(joinInterface, in1Type, in2Type, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getJoinReturnTypes(JoinFunction<IN1, IN2, OUT> joinInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type, String functionName, boolean allowMissing)
 	{
 		return getBinaryOperatorReturnType((Function) joinInterface, JoinFunction.class, false, false,
 				in1Type, in2Type, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getCoGroupReturnTypes(CoGroupFunction<IN1, IN2, OUT> coGroupInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type)
 	{
 		return getCoGroupReturnTypes(coGroupInterface, in1Type, in2Type, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getCoGroupReturnTypes(CoGroupFunction<IN1, IN2, OUT> coGroupInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type, String functionName, boolean allowMissing)
 	{
 		return getBinaryOperatorReturnType((Function) coGroupInterface, CoGroupFunction.class, true, true,
 				in1Type, in2Type, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getCrossReturnTypes(CrossFunction<IN1, IN2, OUT> crossInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type)
 	{
 		return getCrossReturnTypes(crossInterface, in1Type, in2Type, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getCrossReturnTypes(CrossFunction<IN1, IN2, OUT> crossInterface,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type, String functionName, boolean allowMissing)
 	{
 		return getBinaryOperatorReturnType((Function) crossInterface, CrossFunction.class, false, false,
 				in1Type, in2Type, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getKeySelectorTypes(KeySelector<IN, OUT> selectorInterface, TypeInformation<IN> inType) {
 		return getKeySelectorTypes(selectorInterface, inType, null, false);
 	}
-	
+
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getKeySelectorTypes(KeySelector<IN, OUT> selectorInterface,
 			TypeInformation<IN> inType, String functionName, boolean allowMissing)
 	{
 		return getUnaryOperatorReturnType((Function) selectorInterface, KeySelector.class, false, false, inType, functionName, allowMissing);
 	}
-	
-	
+
+	@Experimental
 	public static <T> TypeInformation<T> getPartitionerTypes(Partitioner<T> partitioner) {
 		return getPartitionerTypes(partitioner, null, false);
 	}
-	
+
+	@Experimental
 	public static <T> TypeInformation<T> getPartitionerTypes(Partitioner<T> partitioner, String functionName, boolean allowMissing) {
 		return new TypeExtractor().privateCreateTypeInfo(Partitioner.class, partitioner.getClass(), 0, null, null);
 	}
 	
 	
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public static <IN> TypeInformation<IN> getInputFormatTypes(InputFormat<IN, ?> inputFormatInterface) {
 		if (inputFormatInterface instanceof ResultTypeQueryable) {
 			return ((ResultTypeQueryable<IN>) inputFormatInterface).getProducedType();
@@ -258,6 +278,7 @@ public class TypeExtractor {
 	// --------------------------------------------------------------------------------------------
 	
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public static <IN, OUT> TypeInformation<OUT> getUnaryOperatorReturnType(Function function, Class<?> baseClass, 
 			boolean hasIterable, boolean hasCollector, TypeInformation<IN> inType,
 			String functionName, boolean allowMissing)
@@ -295,6 +316,7 @@ public class TypeExtractor {
 	}
 	
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> getBinaryOperatorReturnType(Function function, Class<?> baseClass,
 			boolean hasIterables, boolean hasCollector, TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type,
 			String functionName, boolean allowMissing)
@@ -366,6 +388,7 @@ public class TypeExtractor {
 	 * @return type information
 	 */
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public static <OUT> TypeInformation<OUT> createTypeInfo(Object instance, Class<?> baseClass, Class<?> clazz, int returnParamPos) {
 		if (instance instanceof ResultTypeQueryable) {
 			return ((ResultTypeQueryable<OUT>) instance).getProducedType();
@@ -373,7 +396,8 @@ public class TypeExtractor {
 			return createTypeInfo(baseClass, clazz, returnParamPos, null, null);
 		}
 	}
-	
+
+	@Experimental
 	public static <IN1, IN2, OUT> TypeInformation<OUT> createTypeInfo(Class<?> baseClass, Class<?> clazz, int returnParamPos,
 			TypeInformation<IN1> in1Type, TypeInformation<IN2> in2Type) {
 		TypeInformation<OUT> ti =  new TypeExtractor().privateCreateTypeInfo(baseClass, clazz, returnParamPos, in1Type, in2Type);
@@ -765,7 +789,8 @@ public class TypeExtractor {
 	// --------------------------------------------------------------------------------------------
 	//  Extract type parameters
 	// --------------------------------------------------------------------------------------------
-	
+
+	@Experimental
 	public static Type getParameterType(Class<?> baseClass, Class<?> clazz, int pos) {
 		return getParameterType(baseClass, null, clazz, pos);
 	}
@@ -1556,6 +1581,7 @@ public class TypeExtractor {
 	 * This is required because class.getFields() is not returning fields defined
 	 * in parent classes.
 	 */
+	@Experimental
 	public static List<Field> getAllDeclaredFields(Class<?> clazz) {
 		List<Field> result = new ArrayList<Field>();
 		while (clazz != null) {
@@ -1574,7 +1600,8 @@ public class TypeExtractor {
 		}
 		return result;
 	}
-	
+
+	@Experimental
 	public static Field getDeclaredField(Class<?> clazz, String name) {
 		for (Field field : getAllDeclaredFields(clazz)) {
 			if (field.getName().equals(name)) {
@@ -1607,7 +1634,7 @@ public class TypeExtractor {
 		return result;
 	}
 
-	// not public to users
+	@Internal
 	public static Class<?> typeToClass(Type t) {
 		if (t instanceof Class) {
 			return (Class<?>)t;
@@ -1618,7 +1645,7 @@ public class TypeExtractor {
 		throw new IllegalArgumentException("Cannot convert type to class");
 	}
 
-	// not public to users
+	@Internal
 	public static boolean isClassType(Type t) {
 		return t instanceof Class<?> || t instanceof ParameterizedType;
 	}

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeInfoParser.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeInfoParser.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeInfoParser.java
index b89a830..33d0b69 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeInfoParser.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeInfoParser.java
@@ -24,13 +24,14 @@ import java.util.ArrayList;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.typeinfo.BasicArrayTypeInfo;
 import org.apache.flink.api.common.typeinfo.BasicTypeInfo;
 import org.apache.flink.api.common.typeinfo.PrimitiveArrayTypeInfo;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 import org.apache.flink.types.Value;
 
-
+@Public
 public class TypeInfoParser {
 	private static final String TUPLE_PACKAGE = "org.apache.flink.api.java.tuple";
 	private static final String VALUE_PACKAGE = "org.apache.flink.types";

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ValueTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ValueTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ValueTypeInfo.java
index 5187de7..9f30716 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ValueTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/ValueTypeInfo.java
@@ -19,6 +19,8 @@
 package org.apache.flink.api.java.typeutils;
 
 import com.google.common.base.Preconditions;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.functions.InvalidTypesException;
 import org.apache.flink.api.common.typeinfo.AtomicType;
@@ -48,6 +50,7 @@ import org.apache.flink.types.Value;
  *
  * @param <T> The type of the class represented by this type information.
  */
+@Public
 public class ValueTypeInfo<T extends Value> extends TypeInformation<T> implements AtomicType<T> {
 
 	private static final long serialVersionUID = 1L;
@@ -64,7 +67,8 @@ public class ValueTypeInfo<T extends Value> extends TypeInformation<T> implement
 	public static final ValueTypeInfo<StringValue> STRING_VALUE_TYPE_INFO = new ValueTypeInfo<>(StringValue.class);
 
 	private final Class<T> type;
-	
+
+	@Experimental
 	public ValueTypeInfo(Class<T> type) {
 		this.type = Preconditions.checkNotNull(type);
 
@@ -74,25 +78,30 @@ public class ValueTypeInfo<T extends Value> extends TypeInformation<T> implement
 	}
 	
 	@Override
+	@Experimental
 	public int getArity() {
 		return 1;
 	}
 
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return 1;
 	}
 	
 	@Override
+	@Experimental
 	public Class<T> getTypeClass() {
 		return this.type;
 	}
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
+	@Experimental
 	public boolean isBasicValueType() {
 		return type.equals(StringValue.class) || type.equals(ByteValue.class) || type.equals(ShortValue.class) || type.equals(CharValue.class) ||
 				type.equals(DoubleValue.class) || type.equals(FloatValue.class) || type.equals(IntValue.class) || type.equals(LongValue.class) ||
@@ -100,17 +109,20 @@ public class ValueTypeInfo<T extends Value> extends TypeInformation<T> implement
 	}
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 	
 	@Override
+	@Experimental
 	public boolean isKeyType() {
 		return Comparable.class.isAssignableFrom(type);
 	}
 
 	@Override
 	@SuppressWarnings("unchecked")
+	@Experimental
 	public TypeSerializer<T> createSerializer(ExecutionConfig executionConfig) {
 		if (CopyableValue.class.isAssignableFrom(type)) {
 			return (TypeSerializer<T>) createCopyableValueSerializer(type.asSubclass(CopyableValue.class));
@@ -122,6 +134,7 @@ public class ValueTypeInfo<T extends Value> extends TypeInformation<T> implement
 	
 	@SuppressWarnings({ "unchecked", "rawtypes" })
 	@Override
+	@Experimental
 	public TypeComparator<T> createComparator(boolean sortOrderAscending, ExecutionConfig executionConfig) {
 		if (!isKeyType()) {
 			throw new RuntimeException("The type " + type.getName() + " is not Comparable.");
@@ -171,7 +184,8 @@ public class ValueTypeInfo<T extends Value> extends TypeInformation<T> implement
 	}
 	
 	// --------------------------------------------------------------------------------------------
-	
+
+	@Experimental
 	static <X extends Value> TypeInformation<X> getValueTypeInfo(Class<X> typeClass) {
 		if (Value.class.isAssignableFrom(typeClass) && !typeClass.equals(Value.class)) {
 			return new ValueTypeInfo<X>(typeClass);

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/api/java/typeutils/WritableTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/WritableTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/WritableTypeInfo.java
index 6c140d9..3899f18 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/WritableTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/WritableTypeInfo.java
@@ -19,6 +19,8 @@
 package org.apache.flink.api.java.typeutils;
 
 import com.google.common.base.Preconditions;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.functions.InvalidTypesException;
 import org.apache.flink.api.common.typeinfo.AtomicType;
@@ -35,12 +37,14 @@ import org.apache.hadoop.io.Writable;
  *
  * @param <T> The type of the class represented by this type information.
  */
+@Public
 public class WritableTypeInfo<T extends Writable> extends TypeInformation<T> implements AtomicType<T> {
 	
 	private static final long serialVersionUID = 1L;
 	
 	private final Class<T> typeClass;
-	
+
+	@Experimental
 	public WritableTypeInfo(Class<T> typeClass) {
 		this.typeClass = Preconditions.checkNotNull(typeClass);
 
@@ -51,6 +55,7 @@ public class WritableTypeInfo<T extends Writable> extends TypeInformation<T> imp
 
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	@Override
+	@Experimental
 	public TypeComparator<T> createComparator(boolean sortOrderAscending, ExecutionConfig executionConfig) {
 		if(Comparable.class.isAssignableFrom(typeClass)) {
 			return new WritableComparator(sortOrderAscending, typeClass);
@@ -62,36 +67,43 @@ public class WritableTypeInfo<T extends Writable> extends TypeInformation<T> imp
 	}
 
 	@Override
+	@Experimental
 	public boolean isBasicType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public boolean isTupleType() {
 		return false;
 	}
 
 	@Override
+	@Experimental
 	public int getArity() {
 		return 1;
 	}
 	
 	@Override
+	@Experimental
 	public int getTotalFields() {
 		return 1;
 	}
 
 	@Override
+	@Experimental
 	public Class<T> getTypeClass() {
 		return this.typeClass;
 	}
 
 	@Override
+	@Experimental
 	public boolean isKeyType() {
 		return Comparable.class.isAssignableFrom(typeClass);
 	}
 
 	@Override
+	@Experimental
 	public TypeSerializer<T> createSerializer(ExecutionConfig executionConfig) {
 		return new WritableSerializer<T>(typeClass);
 	}
@@ -126,7 +138,8 @@ public class WritableTypeInfo<T extends Writable> extends TypeInformation<T> imp
 	}
 	
 	// --------------------------------------------------------------------------------------------
-	
+
+	@Experimental
 	static <T extends Writable> TypeInformation<T> getWritableTypeInfo(Class<T> typeClass) {
 		if (Writable.class.isAssignableFrom(typeClass) && !typeClass.equals(Writable.class)) {
 			return new WritableTypeInfo<T>(typeClass);

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/types/Either.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/types/Either.java b/flink-core/src/main/java/org/apache/flink/types/Either.java
index 361802b..d61b228 100644
--- a/flink-core/src/main/java/org/apache/flink/types/Either.java
+++ b/flink-core/src/main/java/org/apache/flink/types/Either.java
@@ -18,6 +18,8 @@
 
 package org.apache.flink.types;
 
+import org.apache.flink.annotation.Public;
+
 /**
  * This type represents a value of one two possible types, Left or Right (a
  * disjoint union), inspired by Scala's Either type.
@@ -27,6 +29,7 @@ package org.apache.flink.types;
  * @param <R>
  *            the type of Right
  */
+@Public
 public abstract class Either<L, R> {
 
 	/**

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/main/java/org/apache/flink/types/Nothing.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/types/Nothing.java b/flink-core/src/main/java/org/apache/flink/types/Nothing.java
index 285ffcc..590df15 100644
--- a/flink-core/src/main/java/org/apache/flink/types/Nothing.java
+++ b/flink-core/src/main/java/org/apache/flink/types/Nothing.java
@@ -15,13 +15,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-
 package org.apache.flink.types;
 
+import org.apache.flink.annotation.Public;
+
  /**
  * A type for (synthetic) operators that do not output data. For example, data sinks.
  */
+@Public
 public class Nothing {
 	private Nothing() {}
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-core/src/test/java/org/apache/flink/api/java/tuple/TupleGenerator.java
----------------------------------------------------------------------
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/tuple/TupleGenerator.java b/flink-core/src/test/java/org/apache/flink/api/java/tuple/TupleGenerator.java
index 8b149bd..e783a1d 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/tuple/TupleGenerator.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/tuple/TupleGenerator.java
@@ -167,6 +167,7 @@ class TupleGenerator {
 		// package and imports
 		w.println("package " + PACKAGE + ';');
 		w.println();
+		w.println("import PublicInterface;");
 		w.println("import org.apache.flink.util.StringUtils;");
 		w.println();
 
@@ -185,6 +186,7 @@ class TupleGenerator {
 			w.println(" * @param <" + GEN_TYPE_PREFIX + i + "> The type of field " + i);
 		}
 		w.println(" */");
+		w.println("@PublicInterface");
 		w.print("public class " + className + "<");
 		for (int i = 0; i < numFields; i++) {
 			if (i > 0) {
@@ -443,10 +445,12 @@ class TupleGenerator {
 		w.println("import java.util.ArrayList;");
 		w.println("import java.util.List;");
 		w.println();
+		w.println("import PublicInterface;");
 		w.println("import " + PACKAGE + ".Tuple" + numFields + ";");
 		w.println();
 
 		// class declaration
+		w.println("@PublicInterface");
 		w.print("public class " + className);
 		printGenericsString(w, numFields);
 		w.println(" {");

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/pom.xml
----------------------------------------------------------------------
diff --git a/flink-java/pom.xml b/flink-java/pom.xml
index 3203d75..25cd0ff 100644
--- a/flink-java/pom.xml
+++ b/flink-java/pom.xml
@@ -75,9 +75,9 @@ under the License.
 		
 	</dependencies>
 
-	<!-- Because flink-scala and flink-avro uses it in tests -->
 	<build>
 		<plugins>
+			<!-- Because flink-scala and flink-avro uses it in tests -->
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-jar-plugin</artifactId>

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/DataSet.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/DataSet.java b/flink-java/src/main/java/org/apache/flink/api/java/DataSet.java
index 6bcdb52..e205bef 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/DataSet.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/DataSet.java
@@ -19,6 +19,8 @@
 package org.apache.flink.api.java;
 
 import com.google.common.base.Preconditions;
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.InvalidProgramException;
 import org.apache.flink.api.common.JobExecutionResult;
 import org.apache.flink.api.common.accumulators.SerializedListAccumulator;
@@ -102,6 +104,8 @@ import java.util.List;
  *
  * @param <T> The type of the DataSet, i.e., the type of the elements of the DataSet.
  */
+
+@Public
 public abstract class DataSet<T> {
 	
 	protected final ExecutionEnvironment context;
@@ -1638,6 +1642,7 @@ public abstract class DataSet<T> {
 	 * @deprecated Use {@link #printOnTaskManager(String)} instead.
 	 */
 	@Deprecated
+	@Experimental
 	public DataSink<T> print(String sinkIdentifier) {
 		return output(new PrintingOutputFormat<T>(sinkIdentifier, false));
 	}
@@ -1654,6 +1659,7 @@ public abstract class DataSet<T> {
 	 *             {@link PrintingOutputFormat} instead.
 	 */
 	@Deprecated
+	@Experimental
 	public DataSink<T> printToErr(String sinkIdentifier) {
 		return output(new PrintingOutputFormat<T>(sinkIdentifier, true));
 	}

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironment.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironment.java b/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironment.java
index 253ffa3..7fc45b3 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironment.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironment.java
@@ -23,6 +23,9 @@ import com.esotericsoftware.kryo.Serializer;
 import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Internal;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.api.common.InvalidProgramException;
 import org.apache.flink.api.common.JobExecutionResult;
@@ -93,6 +96,7 @@ import java.util.List;
  * @see LocalEnvironment
  * @see RemoteEnvironment
  */
+@Public
 public abstract class ExecutionEnvironment {
 
 	/** The logger used by the environment and its subclasses */
@@ -184,6 +188,7 @@ public abstract class ExecutionEnvironment {
 	 *
 	 * @param numberOfExecutionRetries The number of times the system will try to re-execute failed tasks.
 	 */
+	@Experimental
 	public void setNumberOfExecutionRetries(int numberOfExecutionRetries) {
 		config.setNumberOfExecutionRetries(numberOfExecutionRetries);
 	}
@@ -195,6 +200,7 @@ public abstract class ExecutionEnvironment {
 	 *
 	 * @return The number of times the system will try to re-execute failed tasks.
 	 */
+	@Experimental
 	public int getNumberOfExecutionRetries() {
 		return config.getNumberOfExecutionRetries();
 	}
@@ -219,6 +225,7 @@ public abstract class ExecutionEnvironment {
 	 * @return The JobID of this environment.
 	 * @see #getIdString()
 	 */
+	@Experimental
 	public JobID getId() {
 		return this.jobID;
 	}
@@ -229,6 +236,7 @@ public abstract class ExecutionEnvironment {
 	 * @return The JobID as a string.
 	 * @see #getId()
 	 */
+	@Experimental
 	public String getIdString() {
 		return this.jobID.toString();
 	}
@@ -239,6 +247,7 @@ public abstract class ExecutionEnvironment {
 	 *
 	 * @param timeout The timeout, in seconds.
 	 */
+	@Experimental
 	public void setSessionTimeout(long timeout) {
 		throw new IllegalStateException("Support for sessions is currently disabled. " +
 				"It will be enabled in future Flink versions.");
@@ -256,6 +265,7 @@ public abstract class ExecutionEnvironment {
 	 *
 	 * @return The session timeout, in seconds.
 	 */
+	@Experimental
 	public long getSessionTimeout() {
 		return sessionTimeout;
 	}
@@ -263,6 +273,7 @@ public abstract class ExecutionEnvironment {
 	/**
 	 * Starts a new session, discarding the previous data flow and all of its intermediate results.
 	 */
+	@Experimental
 	public abstract void startNewSession() throws Exception;
 
 	// --------------------------------------------------------------------------------------------
@@ -547,6 +558,7 @@ public abstract class ExecutionEnvironment {
 	 * Creates a {@link DataSet} from the given {@link org.apache.hadoop.mapred.FileInputFormat}. The
 	 * given inputName is set on the given job.
 	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> readHadoopFile(org.apache.hadoop.mapred.FileInputFormat<K,V> mapredInputFormat, Class<K> key, Class<V> value, String inputPath, JobConf job) {
 		DataSource<Tuple2<K, V>> result = createHadoopInput(mapredInputFormat, key, value, job);
 
@@ -559,6 +571,7 @@ public abstract class ExecutionEnvironment {
 	 * Creates a {@link DataSet} from {@link org.apache.hadoop.mapred.SequenceFileInputFormat}
 	 * A {@link org.apache.hadoop.mapred.JobConf} with the given inputPath is created.
  	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> readSequenceFile(Class<K> key, Class<V> value, String inputPath) throws IOException {
 		return readHadoopFile(new org.apache.hadoop.mapred.SequenceFileInputFormat<K, V>(), key, value, inputPath);
 	}
@@ -567,6 +580,7 @@ public abstract class ExecutionEnvironment {
 	 * Creates a {@link DataSet} from the given {@link org.apache.hadoop.mapred.FileInputFormat}. A
 	 * {@link org.apache.hadoop.mapred.JobConf} with the given inputPath is created.
 	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> readHadoopFile(org.apache.hadoop.mapred.FileInputFormat<K,V> mapredInputFormat, Class<K> key, Class<V> value, String inputPath) {
 		return readHadoopFile(mapredInputFormat, key, value, inputPath, new JobConf());
 	}
@@ -574,6 +588,7 @@ public abstract class ExecutionEnvironment {
 	/**
 	 * Creates a {@link DataSet} from the given {@link org.apache.hadoop.mapred.InputFormat}.
 	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> createHadoopInput(org.apache.hadoop.mapred.InputFormat<K,V> mapredInputFormat, Class<K> key, Class<V> value, JobConf job) {
 		HadoopInputFormat<K, V> hadoopInputFormat = new HadoopInputFormat<>(mapredInputFormat, key, value, job);
 
@@ -584,6 +599,7 @@ public abstract class ExecutionEnvironment {
 	 * Creates a {@link DataSet} from the given {@link org.apache.hadoop.mapreduce.lib.input.FileInputFormat}. The
 	 * given inputName is set on the given job.
 	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> readHadoopFile(org.apache.hadoop.mapreduce.lib.input.FileInputFormat<K,V> mapreduceInputFormat, Class<K> key, Class<V> value, String inputPath, Job job) throws IOException {
 		DataSource<Tuple2<K, V>> result = createHadoopInput(mapreduceInputFormat, key, value, job);
 
@@ -597,6 +613,7 @@ public abstract class ExecutionEnvironment {
 	 * Creates a {@link DataSet} from the given {@link org.apache.hadoop.mapreduce.lib.input.FileInputFormat}. A
 	 * {@link org.apache.hadoop.mapreduce.Job} with the given inputPath is created.
 	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> readHadoopFile(org.apache.hadoop.mapreduce.lib.input.FileInputFormat<K,V> mapreduceInputFormat, Class<K> key, Class<V> value, String inputPath) throws IOException {
 		return readHadoopFile(mapreduceInputFormat, key, value, inputPath, Job.getInstance());
 	}
@@ -604,6 +621,7 @@ public abstract class ExecutionEnvironment {
 	/**
 	 * Creates a {@link DataSet} from the given {@link org.apache.hadoop.mapreduce.InputFormat}.
 	 */
+	@Experimental
 	public <K,V> DataSource<Tuple2<K, V>> createHadoopInput(org.apache.hadoop.mapreduce.InputFormat<K,V> mapreduceInputFormat, Class<K> key, Class<V> value, Job job) {
 		org.apache.flink.api.java.hadoop.mapreduce.HadoopInputFormat<K, V> hadoopInputFormat = new org.apache.flink.api.java.hadoop.mapreduce.HadoopInputFormat<>(mapreduceInputFormat, key, value, job);
 
@@ -890,6 +908,7 @@ public abstract class ExecutionEnvironment {
 	 * 
 	 * @return The program's plan.
 	 */
+	@Internal
 	public Plan createProgramPlan() {
 		return createProgramPlan(null);
 	}
@@ -905,6 +924,7 @@ public abstract class ExecutionEnvironment {
 	 * @param jobName The name attached to the plan (displayed in logs and monitoring).
 	 * @return The program's plan.
 	 */
+	@Internal
 	public Plan createProgramPlan(String jobName) {
 		return createProgramPlan(jobName, true);
 	}
@@ -920,6 +940,7 @@ public abstract class ExecutionEnvironment {
 	 * @param clearSinks Whether or not to start a new stage of execution.
 	 * @return The program's plan.
 	 */
+	@Internal
 	public Plan createProgramPlan(String jobName, boolean clearSinks) {
 		if (this.sinks.isEmpty()) {
 			if (wasExecuted) {
@@ -1014,6 +1035,7 @@ public abstract class ExecutionEnvironment {
 	 * 
 	 * @param sink The sink to add for execution.
 	 */
+	@Internal
 	void registerDataSink(DataSink<?> sink) {
 		this.sinks.add(sink);
 	}
@@ -1050,6 +1072,7 @@ public abstract class ExecutionEnvironment {
 	 * memory. parallelism will always be 1. This is useful during implementation and for debugging.
 	 * @return A Collection Environment
 	 */
+	@Experimental
 	public static CollectionEnvironment createCollectionsEnvironment(){
 		CollectionEnvironment ce = new CollectionEnvironment();
 		ce.setParallelism(1);
@@ -1195,6 +1218,7 @@ public abstract class ExecutionEnvironment {
 	 * @return True, if it is possible to explicitly instantiate a LocalEnvironment or a
 	 *         RemoteEnvironment, false otherwise.
 	 */
+	@Internal
 	public static boolean areExplicitEnvironmentsAllowed() {
 		return contextEnvironmentFactory == null;
 	}

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironmentFactory.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironmentFactory.java b/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironmentFactory.java
index 5472887..b75835f 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironmentFactory.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/ExecutionEnvironmentFactory.java
@@ -18,9 +18,12 @@
 
 package org.apache.flink.api.java;
 
+import org.apache.flink.annotation.Public;
+
 /**
  * Factory class for execution environments.
  */
+@Public
 public interface ExecutionEnvironmentFactory {
 	
 	/**

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/LocalEnvironment.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/LocalEnvironment.java b/flink-java/src/main/java/org/apache/flink/api/java/LocalEnvironment.java
index 93050e5..8c7d6b8 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/LocalEnvironment.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/LocalEnvironment.java
@@ -18,6 +18,8 @@
 
 package org.apache.flink.api.java;
 
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.InvalidProgramException;
 import org.apache.flink.api.common.JobExecutionResult;
 import org.apache.flink.api.common.JobID;
@@ -36,6 +38,7 @@ import org.apache.flink.configuration.Configuration;
  * and {@link ExecutionEnvironment#createLocalEnvironment(int)}. The former version will pick a
  * default parallelism equal to the number of hardware contexts in the local machine.
  */
+@Public
 public class LocalEnvironment extends ExecutionEnvironment {
 	
 	/** The user-defined configuration for the local execution */
@@ -106,6 +109,7 @@ public class LocalEnvironment extends ExecutionEnvironment {
 	}
 
 	@Override
+	@Experimental
 	public void startNewSession() throws Exception {
 		if (executor != null) {
 			// we need to end the previous session

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/RemoteEnvironment.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/RemoteEnvironment.java b/flink-java/src/main/java/org/apache/flink/api/java/RemoteEnvironment.java
index 4b61426..5dd2988 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/RemoteEnvironment.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/RemoteEnvironment.java
@@ -18,6 +18,8 @@
 
 package org.apache.flink.api.java;
 
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.InvalidProgramException;
 import org.apache.flink.api.common.JobExecutionResult;
 import org.apache.flink.api.common.JobID;
@@ -39,6 +41,7 @@ import java.net.URL;
  * must be attached to the remote environment as JAR files, to allow the environment to ship the
  * classes into the cluster for the distributed execution.
  */
+@Public
 public class RemoteEnvironment extends ExecutionEnvironment {
 	
 	/** The hostname of the JobManager */
@@ -180,6 +183,7 @@ public class RemoteEnvironment extends ExecutionEnvironment {
 	}
 
 	@Override
+	@Experimental
 	public void startNewSession() throws Exception {
 		dispose();
 		jobID = JobID.generate();

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/aggregation/Aggregations.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/aggregation/Aggregations.java b/flink-java/src/main/java/org/apache/flink/api/java/aggregation/Aggregations.java
index 48f1b27..403a2b3 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/aggregation/Aggregations.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/aggregation/Aggregations.java
@@ -18,9 +18,9 @@
 
 package org.apache.flink.api.java.aggregation;
 
-/**
- *
- */
+import org.apache.flink.annotation.Public;
+
+@Public
 public enum Aggregations {
 	
 	SUM (new SumAggregationFunction.SumAggregationFunctionFactory()),

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/functions/FunctionAnnotation.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/functions/FunctionAnnotation.java b/flink-java/src/main/java/org/apache/flink/api/java/functions/FunctionAnnotation.java
index a92560e..dd00c31 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/functions/FunctionAnnotation.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/functions/FunctionAnnotation.java
@@ -26,6 +26,9 @@ import java.lang.annotation.Retention;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.flink.annotation.Experimental;
+import org.apache.flink.annotation.Internal;
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.common.InvalidProgramException;
 
 /**
@@ -76,6 +79,7 @@ import org.apache.flink.api.common.InvalidProgramException;
  * </b>
  *
  */
+@Public
 public class FunctionAnnotation {
 
 	/**
@@ -306,6 +310,7 @@ public class FunctionAnnotation {
 	 */
 	@Target(ElementType.TYPE)
 	@Retention(RetentionPolicy.RUNTIME)
+	@Experimental
 	public @interface ReadFields {
 		String[] value();
 	}
@@ -336,6 +341,7 @@ public class FunctionAnnotation {
 	 */
 	@Target(ElementType.TYPE)
 	@Retention(RetentionPolicy.RUNTIME)
+	@Experimental
 	public @interface ReadFieldsFirst {
 		String[] value();
 	}
@@ -366,6 +372,7 @@ public class FunctionAnnotation {
 	 */
 	@Target(ElementType.TYPE)
 	@Retention(RetentionPolicy.RUNTIME)
+	@Experimental
 	public @interface ReadFieldsSecond {
 		String[] value();
 	}
@@ -382,6 +389,7 @@ public class FunctionAnnotation {
 	 */
 	@Target(ElementType.TYPE)
 	@Retention(RetentionPolicy.RUNTIME)
+	@Experimental
 	public @interface SkipCodeAnalysis {
 	}
 
@@ -400,6 +408,7 @@ public class FunctionAnnotation {
 	 * @param udfClass The user defined function, represented by its class.
 	 * @return	The DualInputSemanticProperties containing the forwarded fields.
 	 */
+	@Internal
 	public static Set<Annotation> readSingleForwardAnnotations(Class<?> udfClass) {
 		ForwardedFields forwardedFields = udfClass.getAnnotation(ForwardedFields.class);
 		NonForwardedFields nonForwardedFields = udfClass.getAnnotation(NonForwardedFields.class);
@@ -429,7 +438,7 @@ public class FunctionAnnotation {
 	 * @param udfClass The user defined function, represented by its class.
 	 * @return	The DualInputSemanticProperties containing the forwarded fields.
 	 */
-
+	@Internal
 	public static Set<Annotation> readDualForwardAnnotations(Class<?> udfClass) {
 
 		// get readSet annotation from stub

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopInputFormat.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopInputFormat.java b/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopInputFormat.java
index b0c4c42..e4cf91e 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopInputFormat.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopInputFormat.java
@@ -20,6 +20,7 @@ package org.apache.flink.api.java.hadoop.mapred;
 
 import java.io.IOException;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.typeutils.TypeExtractor;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 import org.apache.flink.api.java.tuple.Tuple2;
@@ -35,6 +36,7 @@ import org.apache.hadoop.mapred.JobConf;
  * @param <K> Type of the key
  * @param <V> Type of the value.
  */
+@Public
 public class HadoopInputFormat<K, V> extends HadoopInputFormatBase<K, V, Tuple2<K,V>> implements ResultTypeQueryable<Tuple2<K,V>> {
 	
 	private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/flink/blob/b54499b1/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopOutputFormat.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopOutputFormat.java b/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopOutputFormat.java
index b406dae..d936a51 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopOutputFormat.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/hadoop/mapred/HadoopOutputFormat.java
@@ -20,6 +20,7 @@ package org.apache.flink.api.java.hadoop.mapred;
 
 import java.io.IOException;
 
+import org.apache.flink.annotation.Public;
 import org.apache.flink.api.java.tuple.Tuple2;
 import org.apache.hadoop.mapred.JobConf;
 import org.apache.hadoop.mapred.OutputCommitter;
@@ -32,6 +33,7 @@ import org.apache.hadoop.mapred.OutputCommitter;
  * @param <K> Type of the key
  * @param <V> Type of the value.
  */
+@Public
 public class HadoopOutputFormat<K,V> extends HadoopOutputFormatBase<K, V, Tuple2<K, V>> {
 
 	private static final long serialVersionUID = 1L;


Mime
View raw message