[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15967138#comment-15967138
 ] 

ASF GitHub Bot commented on ZOOKEEPER-2755:
-------------------------------------------

GitHub user eolivelli opened a pull request:

    https://github.com/apache/zookeeper/pull/227

    ZOOKEEPER-2755 Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn

    Little refactoring to use only SocketAddress instead of RemoteSocketAddress 
and make it possible to create subclasses of ClientCnxnSocketNetty and 
NettyServerCnxn which leverage built-in Netty 'local' channels.
    
    Such Netty local channels do not create real sockets and so allow a simple 
standalone ZooKeeper server + ZooKeeper client to be run on the same JVM 
without binding to real TCP endpoints and run concurrent test processes of the 
same application without dealing with random ports.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/eolivelli/zookeeper 
ZOOKEEPER-2755-localaddress

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/zookeeper/pull/227.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #227
    
----
commit fa306e830964b187f11aa5d08770feeaca72cd48
Author: eolivelli <eolive...@apache.org>
Date:   2017-04-13T04:55:43Z

    ZOOKEEPER-2755 Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn 
in order to use Netty Local transport

----


> Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn in order to use 
> Netty Local transport
> -------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2755
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2755
>             Project: ZooKeeper
>          Issue Type: New Feature
>          Components: java client, server
>    Affects Versions: 3.5.2
>            Reporter: Enrico Olivelli
>
> ClientCnxnSocketNetty and NettyServerCnxn use explicitly InetSocketAddress 
> class to work with network addresses.
> We can do a little refactoring to use only SocketAddress and make it possible 
> to create subclasses of ClientCnxnSocketNetty and NettyServerCnxn which 
> leverage built-in Netty 'local' channels. 
> Such Netty local channels do not create real sockets and so allow a simple 
> ZooKeeper server + ZooKeeper client to be run on the same JVM without binding 
> to real TCP endpoints.
> Usecases:
> Ability to run concurrently on the same machine tests of projects which use 
> ZooKeeper (usually in unit tests the server and the client run inside the 
> same JVM) without dealing with random ports and in general using less network 
> resources
> Run simplified (standalone, all processes in the same JVM) versions of 
> applications which need a working ZooKeeper ensemble to run.
> Note:
> Embedding ZooKeeper server + client on the same JVM has many risks and in 
> general I think we should encourage users to do so, so I in this patch I will 
> not provide official implementations of ClientCnxnSocketNetty and 
> NettyServerCnxn. There will be implementations only inside the test packages, 
> in order to test that most of the features are working with custom socket 
> factories and in particular with the 'LocalAddress' specific subclass of 
> SocketAddress.
> Note:
> the 'Local' sockets feature will be available on Netty 4 too



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to