You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ew...@apache.org on 2018/06/15 21:52:43 UTC

[kafka] branch trunk updated: KAFKA-7056: Moved Connect’s new numeric converters to runtime (KIP-305)

This is an automated email from the ASF dual-hosted git repository.

ewencp pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new fab8b7e  KAFKA-7056: Moved Connect’s new numeric converters to runtime (KIP-305)
fab8b7e is described below

commit fab8b7e676bcaf4faf84d563ab48e3ebee61b4ab
Author: Randall Hauch <rh...@gmail.com>
AuthorDate: Fri Jun 15 14:52:28 2018 -0700

    KAFKA-7056: Moved Connect’s new numeric converters to runtime (KIP-305)
    
    KIP-305 added numeric converters to Connect, but these were added in Connect’s API module in the same package as the `StringConverter`. This commit moves them into the Runtime module and into the `converters` package where the `ByteArrayConverter` already lives. These numeric converters have not yet been included in a release, and so they can be moved without concern.
    
    All of Connect’s converters must be referenced in worker / connector configurations and are therefore part of the API, but otherwise do not need to be in the “api” module as they do not need to be instantiated or directly used by extensions. This change makes them more similar to and aligned with the `ByteArrayConverter`.
    
    It also gives us the opportunity to move them into the “api” module in the future (keeping the same package name), should we ever want or need to do so. However, if we were to start out with them in the “api” module, we would never be able to move them out into the “runtime” module, even if we kept the same package name. Therefore, moving them to “runtime” now gives us a bit more flexibility.
    
    This PR moves the unit tests for the numeric converters accordingly, and updates the `PluginsUtil` and `PluginUtilsTest` as well.
    
    Author: Randall Hauch <rh...@gmail.com>
    
    Reviewers: Konstantine Karantasis <ko...@confluent.io>, Ewen Cheslack-Postava <ew...@confluent.io>
    
    Closes #5222 from rhauch/kafka-7056
---
 .../org/apache/kafka/connect/converters}/DoubleConverter.java  |  4 +++-
 .../org/apache/kafka/connect/converters}/FloatConverter.java   |  4 +++-
 .../org/apache/kafka/connect/converters}/IntegerConverter.java |  4 +++-
 .../org/apache/kafka/connect/converters}/LongConverter.java    |  4 +++-
 .../org/apache/kafka/connect/converters}/NumberConverter.java  |  6 +++++-
 .../kafka/connect/converters}/NumberConverterConfig.java       |  3 ++-
 .../org/apache/kafka/connect/converters}/ShortConverter.java   |  4 +++-
 .../apache/kafka/connect/runtime/isolation/PluginUtils.java    |  5 -----
 .../apache/kafka/connect/converters}/DoubleConverterTest.java  |  2 +-
 .../apache/kafka/connect/converters}/FloatConverterTest.java   |  2 +-
 .../apache/kafka/connect/converters}/IntegerConverterTest.java |  2 +-
 .../apache/kafka/connect/converters}/LongConverterTest.java    |  2 +-
 .../apache/kafka/connect/converters}/NumberConverterTest.java  |  2 +-
 .../apache/kafka/connect/converters}/ShortConverterTest.java   |  2 +-
 .../kafka/connect/runtime/isolation/PluginUtilsTest.java       | 10 +++++-----
 15 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/DoubleConverter.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/DoubleConverter.java
similarity index 91%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/DoubleConverter.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/DoubleConverter.java
index 04019a7..684caa1 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/DoubleConverter.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/DoubleConverter.java
@@ -14,11 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.DoubleDeserializer;
 import org.apache.kafka.common.serialization.DoubleSerializer;
 import org.apache.kafka.connect.data.Schema;
+import org.apache.kafka.connect.storage.Converter;
+import org.apache.kafka.connect.storage.HeaderConverter;
 
 /**
  * {@link Converter} and {@link HeaderConverter} implementation that only supports serializing to and deserializing from double values.
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/FloatConverter.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/FloatConverter.java
similarity index 91%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/FloatConverter.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/FloatConverter.java
index 16bf0e0..3f92b96 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/FloatConverter.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/FloatConverter.java
@@ -14,11 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.FloatDeserializer;
 import org.apache.kafka.common.serialization.FloatSerializer;
 import org.apache.kafka.connect.data.Schema;
+import org.apache.kafka.connect.storage.Converter;
+import org.apache.kafka.connect.storage.HeaderConverter;
 
 /**
  * {@link Converter} and {@link HeaderConverter} implementation that only supports serializing to and deserializing from float values.
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/IntegerConverter.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/IntegerConverter.java
similarity index 91%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/IntegerConverter.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/IntegerConverter.java
index 6f3c78a..f5388ce 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/IntegerConverter.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/IntegerConverter.java
@@ -14,11 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.IntegerDeserializer;
 import org.apache.kafka.common.serialization.IntegerSerializer;
 import org.apache.kafka.connect.data.Schema;
+import org.apache.kafka.connect.storage.Converter;
+import org.apache.kafka.connect.storage.HeaderConverter;
 
 /**
  * {@link Converter} and {@link HeaderConverter} implementation that only supports serializing to and deserializing from integer values.
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/LongConverter.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/LongConverter.java
similarity index 91%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/LongConverter.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/LongConverter.java
index 600c304..f91f4fa 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/LongConverter.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/LongConverter.java
@@ -14,11 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.LongDeserializer;
 import org.apache.kafka.common.serialization.LongSerializer;
 import org.apache.kafka.connect.data.Schema;
+import org.apache.kafka.connect.storage.Converter;
+import org.apache.kafka.connect.storage.HeaderConverter;
 
 /**
  * {@link Converter} and {@link HeaderConverter} implementation that only supports serializing to and deserializing from long values.
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/NumberConverter.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/NumberConverter.java
similarity index 94%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/NumberConverter.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/NumberConverter.java
index 9180444..131a097 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/NumberConverter.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/NumberConverter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.config.ConfigDef;
 import org.apache.kafka.common.errors.SerializationException;
@@ -23,6 +23,10 @@ import org.apache.kafka.common.serialization.Serializer;
 import org.apache.kafka.connect.data.Schema;
 import org.apache.kafka.connect.data.SchemaAndValue;
 import org.apache.kafka.connect.errors.DataException;
+import org.apache.kafka.connect.storage.Converter;
+import org.apache.kafka.connect.storage.ConverterType;
+import org.apache.kafka.connect.storage.HeaderConverter;
+import org.apache.kafka.connect.storage.StringConverterConfig;
 
 import java.io.IOException;
 import java.util.HashMap;
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/NumberConverterConfig.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/NumberConverterConfig.java
similarity index 93%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/NumberConverterConfig.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/NumberConverterConfig.java
index 2f7019d..49ad986 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/NumberConverterConfig.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/NumberConverterConfig.java
@@ -14,9 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.config.ConfigDef;
+import org.apache.kafka.connect.storage.ConverterConfig;
 
 import java.util.Map;
 
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/storage/ShortConverter.java b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/ShortConverter.java
similarity index 91%
rename from connect/api/src/main/java/org/apache/kafka/connect/storage/ShortConverter.java
rename to connect/runtime/src/main/java/org/apache/kafka/connect/converters/ShortConverter.java
index 9a769ff..1c455b1 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/storage/ShortConverter.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/converters/ShortConverter.java
@@ -14,11 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.ShortDeserializer;
 import org.apache.kafka.common.serialization.ShortSerializer;
 import org.apache.kafka.connect.data.Schema;
+import org.apache.kafka.connect.storage.Converter;
+import org.apache.kafka.connect.storage.HeaderConverter;
 
 /**
  * {@link Converter} and {@link HeaderConverter} implementation that only supports serializing to and deserializing from short values.
diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/PluginUtils.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/PluginUtils.java
index 7468220..9c4151b 100644
--- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/PluginUtils.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/PluginUtils.java
@@ -127,11 +127,6 @@ public class PluginUtils {
             + "|json\\..*"
             + "|file\\..*"
             + "|converters\\..*"
-            + "|storage\\.DoubleConverter"
-            + "|storage\\.FloatConverter"
-            + "|storage\\.IntegerConverter"
-            + "|storage\\.LongConverter"
-            + "|storage\\.ShortConverter"
             + "|storage\\.StringConverter"
             + "|rest\\.basic\\.auth\\.extension\\.BasicAuthSecurityRestExtension"
             + ")"
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/storage/DoubleConverterTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/DoubleConverterTest.java
similarity index 97%
rename from connect/api/src/test/java/org/apache/kafka/connect/storage/DoubleConverterTest.java
rename to connect/runtime/src/test/java/org/apache/kafka/connect/converters/DoubleConverterTest.java
index 1744083..acc3dde 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/storage/DoubleConverterTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/DoubleConverterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.DoubleSerializer;
 import org.apache.kafka.common.serialization.Serializer;
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/storage/FloatConverterTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/FloatConverterTest.java
similarity index 97%
rename from connect/api/src/test/java/org/apache/kafka/connect/storage/FloatConverterTest.java
rename to connect/runtime/src/test/java/org/apache/kafka/connect/converters/FloatConverterTest.java
index 57a1860..e95ff56 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/storage/FloatConverterTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/FloatConverterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.FloatSerializer;
 import org.apache.kafka.common.serialization.Serializer;
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/storage/IntegerConverterTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/IntegerConverterTest.java
similarity index 97%
rename from connect/api/src/test/java/org/apache/kafka/connect/storage/IntegerConverterTest.java
rename to connect/runtime/src/test/java/org/apache/kafka/connect/converters/IntegerConverterTest.java
index 33fbe60..0c9ed28 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/storage/IntegerConverterTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/IntegerConverterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.IntegerSerializer;
 import org.apache.kafka.common.serialization.Serializer;
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/storage/LongConverterTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/LongConverterTest.java
similarity index 97%
rename from connect/api/src/test/java/org/apache/kafka/connect/storage/LongConverterTest.java
rename to connect/runtime/src/test/java/org/apache/kafka/connect/converters/LongConverterTest.java
index 8f41bb5..35d26b7 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/storage/LongConverterTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/LongConverterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.LongSerializer;
 import org.apache.kafka.common.serialization.Serializer;
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/storage/NumberConverterTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/NumberConverterTest.java
similarity index 98%
rename from connect/api/src/test/java/org/apache/kafka/connect/storage/NumberConverterTest.java
rename to connect/runtime/src/test/java/org/apache/kafka/connect/converters/NumberConverterTest.java
index 2936a71..2bd0732 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/storage/NumberConverterTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/NumberConverterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.Serializer;
 import org.apache.kafka.connect.data.Schema;
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/storage/ShortConverterTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/ShortConverterTest.java
similarity index 97%
rename from connect/api/src/test/java/org/apache/kafka/connect/storage/ShortConverterTest.java
rename to connect/runtime/src/test/java/org/apache/kafka/connect/converters/ShortConverterTest.java
index 871f398..d1237c9 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/storage/ShortConverterTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/converters/ShortConverterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kafka.connect.storage;
+package org.apache.kafka.connect.converters;
 
 import org.apache.kafka.common.serialization.Serializer;
 import org.apache.kafka.common.serialization.ShortSerializer;
diff --git a/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation/PluginUtilsTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation/PluginUtilsTest.java
index a17520f..216e3ce 100644
--- a/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation/PluginUtilsTest.java
+++ b/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation/PluginUtilsTest.java
@@ -147,19 +147,19 @@ public class PluginUtilsTest {
                 "org.apache.kafka.connect.converters.ByteArrayConverter")
         );
         assertTrue(PluginUtils.shouldLoadInIsolation(
-                "org.apache.kafka.connect.storage.DoubleConverter")
+                "org.apache.kafka.connect.converters.DoubleConverter")
         );
         assertTrue(PluginUtils.shouldLoadInIsolation(
-                "org.apache.kafka.connect.storage.FloatConverter")
+                "org.apache.kafka.connect.converters.FloatConverter")
         );
         assertTrue(PluginUtils.shouldLoadInIsolation(
-                "org.apache.kafka.connect.storage.IntegerConverter")
+                "org.apache.kafka.connect.converters.IntegerConverter")
         );
         assertTrue(PluginUtils.shouldLoadInIsolation(
-                "org.apache.kafka.connect.storage.LongConverter")
+                "org.apache.kafka.connect.converters.LongConverter")
         );
         assertTrue(PluginUtils.shouldLoadInIsolation(
-                "org.apache.kafka.connect.storage.ShortConverter")
+                "org.apache.kafka.connect.converters.ShortConverter")
         );
         assertTrue(PluginUtils.shouldLoadInIsolation(
                 "org.apache.kafka.connect.storage.StringConverter")

-- 
To stop receiving notification emails like this one, please contact
ewencp@apache.org.