Package net.tomp2p.connection

Examples of net.tomp2p.connection.ChannelCreator


    public void testBigStore2() throws Exception {
        StorageMemory storeSender = new StorageMemory();
        StorageMemory storeRecv = new StorageMemory();
        PeerDHT sender = null;
        PeerDHT recv1 = null;
        ChannelCreator cc = null;
        try {
            PeerBuilder pm1 = new PeerBuilder(new Number160("0x50")).p2pId(55).ports(2424);
            ChannelServerConfiguration css = PeerBuilder.createDefaultChannelServerConfiguration();
            css.idleTCPSeconds(Integer.MAX_VALUE);
            pm1.channelServerConfiguration(css);
            sender = new PeerBuilderDHT(pm1.start()).storage(storeSender).start();

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

            StorageRPC smmSender = sender.storeRPC();
            Map<Number160, Data> tmp = new HashMap<Number160, Data>();
            byte[] me1 = new byte[50 * 1024 * 1024];
            tmp.put(new Number160(77), new Data(me1));

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

            PutBuilder putBuilder = new PutBuilder(sender, new Number160(33));
            putBuilder.domainKey(Number160.createHash("test"));
            putBuilder.dataMapContent(tmp);
            putBuilder.idleTCPSeconds(Integer.MAX_VALUE);
            putBuilder.versionKey(Number160.ZERO);

            FutureResponse fr = smmSender.put(recv1.peerAddress(), putBuilder, cc);
            fr.awaitUninterruptibly();
            Assert.assertEquals(true, fr.isSuccess());
            Data data = recv1.storageLayer()
                    .get(new Number640(new Number160(33), Number160.createHash("test"), new Number160(77), Number160.ZERO));
            Assert.assertEquals(true, data != null);

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


    public void testBigStoreGet() throws Exception {
        StorageMemory storeSender = new StorageMemory();
        StorageMemory storeRecv = new StorageMemory();
        PeerDHT sender = null;
        PeerDHT recv1 = null;
        ChannelCreator cc = null;
        try {
            PeerBuilder pm1 = new PeerBuilder(new Number160("0x50")).p2pId(55).ports(2424);
            ChannelServerConfiguration css = PeerBuilder.createDefaultChannelServerConfiguration();
            css.idleTCPSeconds(Integer.MAX_VALUE);
            pm1.channelServerConfiguration(css);
            sender = new PeerBuilderDHT(pm1.start()).storage(storeSender).start();

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

            StorageRPC smmSender = sender.storeRPC();
            Map<Number160, Data> tmp = new HashMap<Number160, Data>();
            byte[] me1 = new byte[50 * 1024 * 1024];
            tmp.put(new Number160(77), new Data(me1));

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

            PutBuilder putBuilder = new PutBuilder(sender, new Number160(33));
            putBuilder.domainKey(Number160.createHash("test"));
            putBuilder.dataMapContent(tmp);
            putBuilder.idleTCPSeconds(Integer.MAX_VALUE);
            putBuilder.versionKey(Number160.ZERO);

            FutureResponse fr = smmSender.put(recv1.peerAddress(), putBuilder, cc);

            fr.awaitUninterruptibly();
            Assert.assertEquals(true, fr.isSuccess());
            //

            GetBuilder getBuilder = new GetBuilder(recv1, new Number160(33));
            getBuilder.domainKey(Number160.createHash("test"));
            getBuilder.idleTCPSeconds(Integer.MAX_VALUE);
            getBuilder.versionKey(Number160.ZERO);

            fr = smmSender.get(recv1.peerAddress(), getBuilder, cc);

            fr.awaitUninterruptibly();
            System.err.println(fr.failedReason());
            Assert.assertEquals(true, fr.isSuccess());
            Number640 key = new Number640(new Number160(33), Number160.createHash("test"), new Number160(77), Number160.ZERO);
            Assert.assertEquals(50 * 1024 * 1024, fr.responseMessage().dataMap(0).dataMap().get(key)
                    .length());
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
            if (recv1 != null) {
View Full Code Here

    public void testBigStoreCancel() throws Exception {
        StorageMemory storeSender = new StorageMemory();
        StorageMemory storeRecv = new StorageMemory();
        PeerDHT sender = null;
        PeerDHT recv1 = null;
        ChannelCreator cc = null;
        try {
            sender = new PeerBuilderDHT(new PeerBuilder(new Number160("0x50")).p2pId(55).ports(2424).start()).storage(storeSender).start();
            recv1 = new PeerBuilderDHT(new PeerBuilder(new Number160("0x20")).p2pId(55).ports(8088).start()).storage(storeRecv).start();
            StorageRPC smmSender = sender.storeRPC();
            Map<Number160, Data> tmp = new HashMap<Number160, Data>();
            byte[] me1 = new byte[50 * 1024 * 1024];
            tmp.put(new Number160(77), new Data(me1));

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

            PutBuilder putBuilder = new PutBuilder(sender, new Number160(33));
            putBuilder.domainKey(Number160.createHash("test"));
            putBuilder.dataMapContent(tmp);
            putBuilder.versionKey(Number160.ZERO);

            FutureResponse fr = smmSender.put(recv1.peerAddress(), putBuilder, cc);

            Thread.sleep(5);
            fr.cancel();
            Assert.assertEquals(false, fr.isSuccess());
            System.err.println("good!");
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            if (sender != null) {
                sender.shutdown().await();
            }
            if (recv1 != null) {
View Full Code Here

    public void testBigStoreGetCancel() throws Exception {
        StorageMemory storeSender = new StorageMemory();
        StorageMemory storeRecv = new StorageMemory();
        PeerDHT sender = null;
        PeerDHT recv1 = null;
        ChannelCreator cc = null;
        try {

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

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

            StorageRPC smmSender = sender.storeRPC();
            Map<Number160, Data> tmp = new HashMap<Number160, Data>();
            byte[] me1 = new byte[50 * 1024 * 1024];
            tmp.put(new Number160(77), new Data(me1));

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

            PutBuilder putBuilder = new PutBuilder(sender, new Number160(33));
            putBuilder.domainKey(Number160.createHash("test"));
            putBuilder.dataMapContent(tmp);
            putBuilder.idleTCPSeconds(Integer.MAX_VALUE);
            putBuilder.versionKey(Number160.ZERO);

            FutureResponse fr = smmSender.put(recv1.peerAddress(), putBuilder, cc);
            fr.awaitUninterruptibly();
            System.err.println("XX:" + fr.failedReason());
            Assert.assertEquals(true, fr.isSuccess());
            //
            GetBuilder getBuilder = new GetBuilder(recv1, new Number160(33));
            getBuilder.domainKey(Number160.createHash("test"));
            fr = smmSender.get(recv1.peerAddress(), getBuilder, cc);
            Thread.sleep(5);
            fr.cancel();
            System.err.println("XX:" + fr.failedReason());
            Assert.assertEquals(false, 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 testData480() throws Exception {
      final Random rnd = new Random(42L);
      PeerDHT master = null;
      PeerDHT slave = null;
    ChannelCreator cc = null;
    try {

      master = new PeerBuilderDHT(new PeerBuilder(new Number160(rnd)).ports(4001).start()).start();
      slave = new PeerBuilderDHT(new PeerBuilder(new Number160(rnd)).ports(4002).start()).start();
     
      Map<Number640,Data> tmp = new HashMap<Number640,Data>();
      for(int i=0;i<5;i++) {
        byte[] me = new byte[480];
        Arrays.fill(me, (byte)(i-6));
        Data test = new Data(me);
        tmp.put(new Number640(rnd), test);
      }
     
      PutBuilder pb = master.put(new Number160("0x51")).dataMap(tmp);
     
      FutureChannelCreator fcc = master.peer().connectionBean().reservation().create(0, 1);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();
     
      FutureResponse fr = master.storeRPC().put(slave.peerAddress(), pb, cc);
      fr.awaitUninterruptibly();
      Assert.assertEquals(true, fr.isSuccess());
     
      GetBuilder gb = master.get(new Number160("0x51")).domainKey(Number160.ZERO);

      fr = master.storeRPC().get(slave.peerAddress(), gb, cc);
      fr.awaitUninterruptibly();
      Assert.assertEquals(true, fr.isSuccess());

      System.err.println("done");
     
     

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

    @Test
    public void testResponsibility0Root1() throws Exception {
        // Random rnd=new Random(42L);
      PeerDHT master = null;
      PeerDHT slave = null;
        ChannelCreator cc = null;
        try {
          StorageMemory s1 = new StorageMemory();
          master = new PeerBuilderDHT(new PeerBuilder(new Number160("0xee")).start()).storage(s1).start();
          IndirectReplication im = new IndirectReplication(master);
         
           
            final AtomicInteger test1 = new AtomicInteger(0);
            final AtomicInteger test2 = new AtomicInteger(0);

            ResponsibilityListener responsibilityListener = new ResponsibilityListener() {
                @Override
                public void meResponsible(final Number160 locationKey) {
                    System.err.println("I'm responsible for " + locationKey + " / ");
                    test2.incrementAndGet();
                }

        @Override
                public void meResponsible(Number160 locationKey, PeerAddress newPeer) {
                  System.err.println("I sync for " + locationKey + " / ");
                }

        @Override
                public FutureDone<?> otherResponsible(Number160 locationKey, PeerAddress other) {
          System.err.println("Other peer (" + other + ")is responsible for " + locationKey);
                    test1.incrementAndGet();
                  return null;
                }
            };
           
            im.addResponsibilityListener(responsibilityListener);
            im.start();

            Number160 location = new Number160("0xff");
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(Number160.ZERO, new Data("string"));

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

            PutBuilder putBuilder = new PutBuilder(master, location);
            putBuilder.domainKey(location);
            putBuilder.dataMapContent(dataMap);
            putBuilder.versionKey(Number160.ZERO);

            FutureResponse fr = master.storeRPC().put(master.peerAddress(), putBuilder, cc);
            fr.awaitUninterruptibly();
            // s1.put(location, Number160.ZERO, null, dataMap, false, false);
            final int slavePort = 7701;
            slave = new PeerBuilderDHT(new PeerBuilder(new Number160("0xfe")).ports(slavePort).start()).start();
            master.peerBean().peerMap().peerFound(slave.peerAddress(), null, null);
            master.peerBean().peerMap().peerFailed(slave.peerAddress(), new PeerException(AbortCause.SHUTDOWN, "shutdown"));
            Assert.assertEquals(1, test1.get());
            Assert.assertEquals(2, test2.get());
        } catch (Throwable t) {
            t.printStackTrace();
        } finally {
            if (cc != null) {
                cc.shutdown().awaitListenersUninterruptibly();
            }
            if (master != null) {
                master.shutdown().await();
            }
            if (slave != null) {
View Full Code Here

        final Random rnd = new Random(42L);
        final int port = 8000;
        PeerDHT master = null;
        PeerDHT slave1 = null;
        PeerDHT slave2 = null;
        ChannelCreator cc = null;
        try {
            Number160 loc = new Number160(rnd);
            Map<Number160, Data> contentMap = new HashMap<Number160, Data>();
            contentMap.put(Number160.ZERO, new Data("string"));
            final AtomicInteger test1 = new AtomicInteger(0);
            final AtomicInteger test2 = new AtomicInteger(0);
            StorageMemory s1 = new StorageMemory();
            master = new PeerBuilderDHT(new PeerBuilder(new Number160(rnd)).ports(port).start()).storage(s1).start();
            IndirectReplication im = new IndirectReplication(master);
            System.err.println("master is " + master.peerAddress());

            ResponsibilityListener responsibilityListener = new ResponsibilityListener() {
                @Override
                public FutureDone<?> otherResponsible(final Number160 locationKey, final PeerAddress other) {
                    System.err.println("Other peer (" + other + ")is responsible for " + locationKey);
                    test1.incrementAndGet();
                    return null;
                }

                @Override
                public void meResponsible(final Number160 locationKey) {
                    System.err.println("I'm responsible for " + locationKey);
                    test2.incrementAndGet();
                }
                @Override
                public void meResponsible(Number160 locationKey, PeerAddress newPeer) {
                  System.err.println("I sync for " + locationKey + " / ");
                }
            };

            im.addResponsibilityListener(responsibilityListener);
            im.start();

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

            PutBuilder putBuilder = new PutBuilder(master, loc);
            putBuilder.domainKey(domainKey);
            putBuilder.dataMapContent(contentMap);
            putBuilder.versionKey(Number160.ZERO);

            master.storeRPC().put(master.peerAddress(), putBuilder, cc).awaitUninterruptibly();
            slave1 = new PeerBuilderDHT(new PeerBuilder(new Number160(rnd)).ports(port + 1).start()).start();
            slave2 = new PeerBuilderDHT(new PeerBuilder(new Number160(rnd)).ports(port + 2).start()).start();
            System.err.println("slave1 is " + slave1.peerAddress());
            System.err.println("slave2 is " + slave2.peerAddress());
            // master peer learns about the slave peers
            master.peerBean().peerMap().peerFound(slave1.peerAddress(), null, null);
            master.peerBean().peerMap().peerFound(slave2.peerAddress(), null, null);

            System.err.println("both peers online");
            PeerAddress slaveAddress1 = slave1.peerAddress();
            slave1.shutdown().await();
            master.peerBean().peerMap().peerFailed(slaveAddress1, new PeerException(AbortCause.SHUTDOWN, "shutdown"));

            Assert.assertEquals(1, test1.get());
            Assert.assertEquals(2, test2.get());

            PeerAddress slaveAddress2 = slave2.peerAddress();
            slave2.shutdown().await();
            master.peerBean().peerMap().peerFailed(slaveAddress2, new PeerException(AbortCause.SHUTDOWN, "shutdown"));

            Assert.assertEquals(1, test1.get());
            Assert.assertEquals(3, test2.get());

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

   */
  private void testReplication(Number160 lKey, int replicationFactor, boolean nRoot, int[][] joins, int[][] leaves)
      throws IOException, InterruptedException {
    List<PeerDHT> peers = new ArrayList<PeerDHT>(joins.length);
    IndirectReplication ind = null;
    ChannelCreator cc = null;
    try {
      char[] letters = { 'a', 'b', 'c', 'd' };
      StorageMemory storage = new StorageMemory();
      for (int i = 0; i < joins.length; i++) {
        if(i == 0) {
          PeerDHT peer = new PeerBuilderDHT(new PeerBuilder(new Number160("0x" + letters[i])).ports(Ports.DEFAULT_PORT + i)
              .start()).storage(storage).start();
          ind = new IndirectReplication(peer).replicationFactor(replicationFactor).nRoot(nRoot).start();
          peers.add(peer);
        } else {
          PeerDHT peer = new PeerBuilderDHT(new PeerBuilder(new Number160("0x" + letters[i])).ports(Ports.DEFAULT_PORT + i)
              .start()).start();
          new IndirectReplication(peer).replicationFactor(replicationFactor).nRoot(nRoot).start();
          peers.add(peer)
        }
      }
     
      PeerDHT master = peers.get(0);
     
      // attach test listener for test verification
      final AtomicInteger replicateOther = new AtomicInteger(0);
      final AtomicInteger replicateI = new AtomicInteger(0);
      final AtomicInteger replicateWe = new AtomicInteger(0);
      ind.addResponsibilityListener(new ResponsibilityListener() {
        @Override
        public FutureDone<?> otherResponsible(final Number160 locationKey, final PeerAddress other) {
          replicateOther.incrementAndGet();
          return null;
        }

        @Override
        public void meResponsible(final Number160 locationKey) {
          replicateI.incrementAndGet();
        }

        @Override
        public void meResponsible(Number160 locationKey, PeerAddress newPeer) {
          replicateWe.incrementAndGet();
        }
      });
     
      // create test data with given location key
      Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
      dataMap.put(Number160.ZERO, new Data("string"));
      PutBuilder putBuilder = new PutBuilder(master, lKey);
      putBuilder.domainKey(Number160.ZERO);
      putBuilder.dataMapContent(dataMap);
      putBuilder.versionKey(Number160.ZERO);

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

      // put test data
      FutureResponse fr = master.storeRPC().put(master.peerAddress(), putBuilder, cc);
      fr.awaitUninterruptibly();
      Assert.assertEquals(joins[0][0], replicateI.get());
      replicateI.set(0);
      Assert.assertEquals(joins[0][1], replicateWe.get());
      replicateWe.set(0);
      Assert.assertEquals(joins[0][2], replicateOther.get());
      replicateOther.set(0);
     
      for (int i = 1; i < joins.length; i++) {
        // insert a peer
        master.peerBean().peerMap().peerFound(peers.get(i).peerAddress(), null, null);
        // verify replication notifications
        Assert.assertEquals(joins[i][0], replicateI.get());
        replicateI.set(0);
        Assert.assertEquals(joins[i][1], replicateWe.get());
        replicateWe.set(0);
        Assert.assertEquals(joins[i][2], replicateOther.get());
        replicateOther.set(0);
      }
     
      for (int i = 0; i < leaves.length; i++) {
        // remove a peer
        master.peerBean().peerMap().peerFailed(peers.get(i+1).peerAddress(), new PeerException(AbortCause.SHUTDOWN, "shutdown"));
        // verify replication notifications
        Assert.assertEquals(leaves[i][0], replicateI.get());
        replicateI.set(0);
        Assert.assertEquals(leaves[i][1], replicateWe.get());
        replicateWe.set(0);
        Assert.assertEquals(leaves[i][2], replicateOther.get());
        replicateOther.set(0);
      }
     
    } finally {
      if (cc != null) {
        cc.shutdown().awaitListenersUninterruptibly();
      }
      for (PeerDHT peer: peers) {
        peer.shutdown().await();
      }
    }
View Full Code Here

        final FutureChannelCreator fcc = connectionBean().reservation().createPermanent(1);
        fcc.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
            @Override
            public void operationComplete(final FutureChannelCreator future) throws Exception {
                if (future.isSuccess()) {
                    final ChannelCreator cc = fcc.channelCreator();
                    final PeerConnection peerConnection = new PeerConnection(destination, cc, heartBeatMillis);
                    futureDone.done(peerConnection);
                } else {
                    futureDone.failed(future);
                }
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.