You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Gwen Shapira (JIRA)" <ji...@apache.org> on 2015/01/19 23:48:34 UTC

[jira] [Created] (KAFKA-1882) Create extendable channel interface and default implementations

Gwen Shapira created KAFKA-1882:
-----------------------------------

             Summary: Create extendable channel interface and default implementations
                 Key: KAFKA-1882
                 URL: https://issues.apache.org/jira/browse/KAFKA-1882
             Project: Kafka
          Issue Type: Sub-task
            Reporter: Gwen Shapira
            Assignee: Gwen Shapira


For the security infrastructure, we need an extendible interface to replace SocketChannel.

KAFKA-1684 suggests extending SocketChannel itself, but since SocketChannel is part of Java's standard library, the interface changes between different Java versions, so extending it directly can become a compatibility issue.

Instead, we can implement a KafkaChannel interface, which will implement connect(), read(), write() and possibly other methods we use. 

We will replace direct use of SocketChannel in our code with use of KafkaChannel.

Different implementations of KafkaChannel will be instantiated based on the port/SecurityProtocol configuration. 

This patch will provide at least the PLAINTEXT implementation for KafkaChannel.

I will validate that the SSL implementation in KAFKA-1684 can be refactored to use a KafkaChannel interface rather than extend SocketChannel directly. However, the patch will not include the SSL channel itself.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)