Package net.tomp2p.connection

Examples of net.tomp2p.connection.ChannelCreator


     */
    @Ignore
    @Test
    public void sendPingTCPDiscover() throws IOException, InterruptedException {
        Peer sender = null;
        ChannelCreator cc = null;
        try {
            PeerAddress pa = new PeerAddress(Number160.ZERO, Inet4Address.getByName(IP), PORT, PORT);
            sender = new PeerBuilder(new Number160("0x9876")).ports(PORT).enableMaintenance(false)
                    .start();
            PingRPC handshake = new PingRPC(sender.peerBean(), sender.connectionBean());
            FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 1);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();
            FutureResponse fr = handshake.pingTCPDiscover(pa, cc, new DefaultConnectionConfiguration());
            fr.awaitUninterruptibly();
            Assert.assertEquals(true, fr.isSuccess());
            Thread.sleep(WAIT);
        } finally {
            if (cc != null) {
                cc.shutdown().await();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
        }
View Full Code Here


     */
    @Ignore
    @Test
    public void sendPingTCPProbe() throws IOException, InterruptedException {
        Peer sender = null;
        ChannelCreator cc = null;
        try {
            PeerAddress pa = new PeerAddress(Number160.ZERO, Inet4Address.getByName(IP), PORT, PORT);
            sender = new PeerBuilder(new Number160("0x9876")).ports(PORT).enableMaintenance(false)
                    .start();
            PingRPC handshake = new PingRPC(sender.peerBean(), sender.connectionBean());
            FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 1);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();
            FutureResponse fr = handshake.pingTCPProbe(pa, cc, new DefaultConnectionConfiguration());
            fr.awaitUninterruptibly();
            Assert.assertEquals(true, fr.isSuccess());
            Thread.sleep(WAIT);
        } finally {
            if (cc != null) {
                cc.shutdown().await();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
        }
View Full Code Here

    }

    private void testDirectMessage(boolean wait) throws Exception {
        Peer sender = null;
        Peer recv1 = null;
        ChannelCreator cc = null;
        final AtomicInteger replyComplete = new AtomicInteger(0);
        final AtomicInteger replyNotComplete = new AtomicInteger(0);
        final AtomicInteger progressComplete = new AtomicInteger(0);
        final AtomicInteger progressNotComplete = new AtomicInteger(0);
        try {

            PeerBuilder pm1 = new PeerBuilder(new Number160("0x50")).p2pId(55).ports(2424);
            ChannelServerConfiguration css = pm1.createDefaultChannelServerConfiguration();
            css.idleTCPSeconds(Integer.MAX_VALUE);
            pm1.channelServerConfiguration(css);
            sender = pm1.start();

            PeerBuilder pm2 = new PeerBuilder(new Number160("0x20")).p2pId(55).ports(8088);
            pm2.channelServerConfiguration(css);
            recv1 = pm2.start();

            recv1.rawDataReply(new RawDataReply() {

                @Override
                public Buffer reply(PeerAddress sender, Buffer requestBuffer, boolean complete)
                        throws Exception {
                    System.err.println("reply 2 ? " + complete);
                    ByteBuf replyBuffer = Unpooled.buffer(50);
                    replyBuffer.writerIndex(50);
                    if (complete) {
                        replyComplete.incrementAndGet();
                        return new Buffer(replyBuffer, 100);
                    } else {
                        replyNotComplete.incrementAndGet();
                        return new Buffer(replyBuffer, 100);
                    }
                }
            });

            FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 1);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();

            SendDirectBuilder sendDirectBuilder = new SendDirectBuilder(sender, (PeerAddress) null);
            sendDirectBuilder.streaming();
            sendDirectBuilder.idleTCPSeconds(Integer.MAX_VALUE);

            byte[] me = new byte[50];
            Buffer b = new Buffer(Unpooled.compositeBuffer(), 100);
            b.addComponent(Unpooled.wrappedBuffer(me));
            if (!wait) {
                ByteBuf replyBuffer = Unpooled.buffer(50);
                replyBuffer.writerIndex(50);
                b.addComponent(replyBuffer);
            }
            sendDirectBuilder.buffer(b);
            sendDirectBuilder.progressListener(new ProgressListener() {
                @Override
                public void progress(final Message interMediateMessage) {
                    if (interMediateMessage.isDone()) {
                        progressComplete.incrementAndGet();
                        System.err.println("progress 1 ? done");
                    } else {
                        progressNotComplete.incrementAndGet();
                        System.err.println("progress 1 ? not done");
                    }
                }
            });

            FutureResponse fr = sender.directDataRPC().send(recv1.peerAddress(), sendDirectBuilder, cc);
            if (wait) {
                Thread.sleep(500);
                ByteBuf replyBuffer = Unpooled.buffer(50);
                replyBuffer.writerIndex(50);
                b.addComponent(replyBuffer);
            }
            fr.progress();
            System.err.println("progres");
            // we are not done yet!

            // now we are done
            fr.awaitUninterruptibly();

            if (wait) {
                Assert.assertEquals(1, progressComplete.get());
                Assert.assertEquals(1, progressNotComplete.get());
                Assert.assertEquals(1, replyComplete.get());
                Assert.assertEquals(1, replyNotComplete.get());
            } else {
                Assert.assertEquals(1, progressComplete.get());
                Assert.assertEquals(1, progressNotComplete.get());
                Assert.assertEquals(2, replyComplete.get());
                Assert.assertEquals(0, replyNotComplete.get());
            }

            Assert.assertEquals(true, fr.isSuccess());
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
            if (recv1 != null) {
View Full Code Here

    @Test
    public void testDirectMessage1() throws Exception {
        Peer sender = null;
        Peer recv1 = null;
        ChannelCreator cc = null;
        try {
            sender = new PeerBuilder(new Number160("0x50")).p2pId(55).ports(2424).start();
            recv1 = new PeerBuilder(new Number160("0x20")).p2pId(55).ports(8088).start();
            recv1.objectDataReply(new ObjectDataReply() {
                @Override
                public Object reply(PeerAddress sender, Object request) throws Exception {
                    return "yes";
                }
            });

            FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 2);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();

            SendDirectBuilder sendDirectBuilder = new SendDirectBuilder(sender, (PeerAddress) null);
            sendDirectBuilder.object("test");

            FutureResponse fd1 = sender.directDataRPC()
                    .send(recv1.peerAddress(), sendDirectBuilder, cc);
            FutureResponse fd2 = sender.directDataRPC()
                    .send(recv1.peerAddress(), sendDirectBuilder, cc);

            fd1.awaitUninterruptibly();
            fd2.awaitUninterruptibly();

            System.err.println(fd1.failedReason());
            Assert.assertEquals(true, fd1.isSuccess());
            Assert.assertEquals(true, fd2.isSuccess());

            Object ret = fd1.responseMessage().buffer(0).object();
            Assert.assertEquals("yes", ret);
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
            if (recv1 != null) {
View Full Code Here

        }
    }

    private void testRouting1(boolean tcp, Type request) throws Exception {
        Peer[] peers = null;
        ChannelCreator cc = null;
        try {
            // setup
            peers = createSpecialPeers(7);
            addToPeerMap(peers[0], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[1], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress());
            addToPeerMap(peers[2], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress());
            addToPeerMap(peers[3], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress());
            addToPeerMap(peers[4], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress(),
                    peers[5].peerAddress());
            // do testing
            if (tcp) {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(0, 2);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            } else {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(2, 0);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            }

            RoutingBuilder routingBuilder = new RoutingBuilder();
            if (tcp) {
                routingBuilder.forceTCP(true);
            }
            routingBuilder.locationKey(peers[6].peerID());
            routingBuilder.maxDirectHits(0);
            routingBuilder.setMaxNoNewInfo(0);
            routingBuilder.maxFailures(0);
            routingBuilder.maxSuccess(100);
            routingBuilder.parallel(2);

            FutureRouting fr = peers[0].distributedRouting().route(routingBuilder, request, cc);

            // new RoutingBuilder(peers[6].getPeerID(), null, null, 0, 0, 0, 100, 2, false), Type.REQUEST_2, cc);
            fr.awaitUninterruptibly();
            // do verification
            Assert.assertEquals(true, fr.isSuccess());
            SortedSet<PeerAddress> ns = fr.potentialHits();
            Assert.assertEquals(peers[5].peerAddress(), ns.first());
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            for (Peer n : peers) {
                n.shutdown().await();
            }
        }
View Full Code Here

    @Test
    public void testOrder() throws Exception {
        Peer sender = null;
        Peer recv1 = null;
        ChannelCreator cc = null;
        try {
            sender = new PeerBuilder(new Number160("0x9876")).p2pId(55).ports(2424).start();
            recv1 = new PeerBuilder(new Number160("0x1234")).p2pId(55).ports(8088).start();
            recv1.objectDataReply(new ObjectDataReply() {
                @Override
                public Object reply(PeerAddress sender, Object request) throws Exception {
                    Integer i = (Integer) request;
                    System.err.println("got " + i);
                    return i + 1;
                }
            });
            for (int i = 0; i < 500; i++) {

                FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 1);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();

                SendDirectBuilder sendDirectBuilder = new SendDirectBuilder(sender, (PeerAddress) null);
                sendDirectBuilder.object((Object) Integer.valueOf(i));

                FutureResponse futureData = sender.directDataRPC().send(recv1.peerAddress(),
                        sendDirectBuilder, cc);
                Utils.addReleaseListener(cc, futureData);
                futureData.addListener(new BaseFutureAdapter<FutureResponse>() {
                    @Override
                    public void operationComplete(FutureResponse future) throws Exception {
                        // the future object might be null if the future failed,
                        // e.g due to shutdown
                        System.err.println(future.responseMessage().buffer(0).object());
                    }
                });
            }
            System.err.println("done");
            Thread.sleep(2000);

        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
            if (recv1 != null) {
View Full Code Here

     * @param request
     * @throws Exception
     */
    private void testRouting2(boolean tcp, Type request) throws Exception {
        Peer[] peers = null;
        ChannelCreator cc = null;
        try {
            // setup
            peers = createSpecialPeers(7);
            addToPeerMap(peers[0], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[1], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress());
            addToPeerMap(peers[2], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress());
            addToPeerMap(peers[3], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress());
            addToPeerMap(peers[4], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress(),
                    Utils2.createAddress("0xffffff"));
            // do testing

            if (tcp) {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(0, 2);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            } else {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(2, 0);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            }

            RoutingBuilder routingBuilder = new RoutingBuilder();
            if (tcp) {
                routingBuilder.forceTCP(true);
            }
            routingBuilder.locationKey(peers[6].peerID());
            routingBuilder.maxDirectHits(0);
            routingBuilder.setMaxNoNewInfo(0);
            routingBuilder.maxFailures(0);
            routingBuilder.maxSuccess(100);
            routingBuilder.parallel(2);

            FutureRouting fr = peers[0].distributedRouting().route(routingBuilder, request, cc);

            fr.awaitUninterruptibly();
            // do verification
            Assert.assertEquals(true, fr.isSuccess());
            SortedSet<PeerAddress> ns = fr.potentialHits();
            // node5 cannot be reached, so it should not be part of the result
            Assert.assertEquals(false, peers[5].peerAddress().equals(ns.first()));
            Assert.assertEquals(true, peers[4].peerAddress().equals(ns.first()));
            LOG.error("done!");
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            for (Peer n : peers) {
                n.shutdown().await();
            }
        }
View Full Code Here

        }
    }

    private void testRouting3(boolean tcp, Type request) throws Exception {
        Peer[] peers = null;
        ChannelCreator cc = null;
        try {
            // setup
            peers = createSpecialPeers(7);
            addToPeerMap(peers[0], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[1], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress());
            addToPeerMap(peers[2], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress(),
                    peers[5].peerAddress());
            addToPeerMap(peers[3], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[4], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[5], peers[0].peerAddress(), peers[1].peerAddress());
            // do testing

            if (tcp) {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(0, 1);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            } else {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(1, 0);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            }

            RoutingBuilder routingBuilder = new RoutingBuilder();
            if (tcp) {
                routingBuilder.forceTCP(true);
            }
            routingBuilder.locationKey(peers[6].peerID());
            routingBuilder.maxDirectHits(0);
            routingBuilder.setMaxNoNewInfo(0);
            routingBuilder.maxFailures(0);
            routingBuilder.maxSuccess(100);
            routingBuilder.parallel(1);

            FutureRouting fr = peers[0].distributedRouting().route(routingBuilder, request, cc);

            fr.awaitUninterruptibly();
            // do verification
            Assert.assertEquals(true, fr.isSuccess());
            SortedSet<PeerAddress> ns = fr.potentialHits();
            Assert.assertEquals(peers[5].peerAddress(), ns.first());
            Assert.assertEquals(false, ns.contains(peers[3].peerAddress()));
            Assert.assertEquals(false, ns.contains(peers[4].peerAddress()));
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            for (Peer n : peers) {
                n.shutdown().await();
            }
        }
View Full Code Here

        }
    }

    private void testRouting4(boolean tcp, Type request) throws Exception {
        Peer[] peers = null;
        ChannelCreator cc = null;
        try {
            // setup
            peers = createSpecialPeers(7);
            addToPeerMap(peers[0], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[1], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress());
            addToPeerMap(peers[2], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress(),
                    peers[5].peerAddress());
            addToPeerMap(peers[3], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[4], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[5], peers[0].peerAddress(), peers[1].peerAddress());
            // do testing

            if (tcp) {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(0, 2);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            } else {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(2, 0);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            }

            RoutingBuilder routingBuilder = new RoutingBuilder();
            if (tcp) {
                routingBuilder.forceTCP(true);
            }
            routingBuilder.locationKey(peers[6].peerID());
            routingBuilder.maxDirectHits(0);
            routingBuilder.setMaxNoNewInfo(0);
            routingBuilder.maxFailures(0);
            routingBuilder.maxSuccess(100);
            routingBuilder.parallel(2);

            FutureRouting fr = peers[0].distributedRouting().route(routingBuilder, request, cc);

            fr.awaitUninterruptibly();
            // do verification
            Assert.assertEquals(true, fr.isSuccess());
            SortedSet<PeerAddress> ns = fr.potentialHits();
            Assert.assertEquals(peers[5].peerAddress(), ns.first());
            Assert.assertEquals(true, ns.contains(peers[0].peerAddress()));
            Assert.assertEquals(true, ns.contains(peers[1].peerAddress()));
            Assert.assertEquals(true, ns.contains(peers[2].peerAddress()));
            Assert.assertEquals(false, ns.contains(peers[3].peerAddress()));
            Assert.assertEquals(true, ns.contains(peers[4].peerAddress()));
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            for (Peer n : peers) {
                n.shutdown().await();
            }
        }
View Full Code Here

        }
    }

    private void testRouting5(boolean tcp, Type request) throws Exception {
        Peer[] peers = null;
        ChannelCreator cc = null;
        try {
            // setup
            peers = createSpecialPeers(7);
            addToPeerMap(peers[0], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[1], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress());
            addToPeerMap(peers[2], peers[0].peerAddress(), peers[1].peerAddress(),
                    peers[2].peerAddress(), peers[3].peerAddress(), peers[4].peerAddress(),
                    peers[5].peerAddress());
            addToPeerMap(peers[3], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[4], peers[0].peerAddress(), peers[1].peerAddress());
            addToPeerMap(peers[5], peers[0].peerAddress(), peers[1].peerAddress());
            // do testing

            if (tcp) {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(0, 3);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            } else {
                FutureChannelCreator fcc = peers[0].connectionBean().reservation().create(3, 0);
                fcc.awaitUninterruptibly();
                cc = fcc.channelCreator();
            }

            RoutingBuilder routingBuilder = new RoutingBuilder();
            if (tcp) {
                routingBuilder.forceTCP(true);
            }
            routingBuilder.locationKey(peers[6].peerID());
            routingBuilder.maxDirectHits(0);
            routingBuilder.setMaxNoNewInfo(0);
            routingBuilder.maxFailures(0);
            routingBuilder.maxSuccess(100);
            routingBuilder.parallel(3);

            FutureRouting fr = peers[0].distributedRouting().route(routingBuilder, request, cc);

            fr.awaitUninterruptibly();
            // do verification
            Assert.assertEquals(true, fr.isSuccess());
            SortedSet<PeerAddress> ns = fr.potentialHits();
            Assert.assertEquals(peers[5].peerAddress(), ns.first());
            Assert.assertEquals(true, ns.contains(peers[3].peerAddress()));
            Assert.assertEquals(true, ns.contains(peers[4].peerAddress()));
            Assert.assertEquals(6, ns.size());
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            for (Peer n : peers) {
                n.shutdown().await();
            }
        }
View Full Code Here

TOP

Related Classes of net.tomp2p.connection.ChannelCreator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.