Exemplo n.º 1
0
 private void Clear(Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage message)
 {
     _messageComposer = null;
     if (_replicatedContents.Count > 0 || _raftLogEntryTerms.Count > 0)
     {
         throw new System.InvalidOperationException(string.Format("Message [{0}] was composed without using all resources in the pipeline. " + "Pipeline still contains Replicated contents[{1}] and RaftLogEntryTerms [{2}]", message, Stringify(_replicatedContents), Stringify(_raftLogEntryTerms)));
     }
 }
Exemplo n.º 2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldSerializeHeartbeats() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldSerializeHeartbeats()
        {
            // Given
            Instant            now     = Instant.now();
            Clock              clock   = Clock.@fixed(now, ZoneOffset.UTC);
            RaftMessageEncoder encoder = new RaftMessageEncoder(marshal);
            RaftMessageDecoder decoder = new RaftMessageDecoder(marshal, clock);

            // Deserialization adds read objects in this list
            List <object> thingsRead = new List <object>(1);

            // When
            MemberId sender = new MemberId(System.Guid.randomUUID());

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage<?> message = org.neo4j.causalclustering.core.consensus.RaftMessages_ReceivedInstantClusterIdAwareMessage.of(now, clusterId, new org.neo4j.causalclustering.core.consensus.RaftMessages_Heartbeat(sender, 1, 2, 3));
            Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage <object> message = Org.Neo4j.causalclustering.core.consensus.RaftMessages_ReceivedInstantClusterIdAwareMessage.of(now, _clusterId, new Org.Neo4j.causalclustering.core.consensus.RaftMessages_Heartbeat(sender, 1, 2, 3));
            ChannelHandlerContext ctx = SetupContext();
            ByteBuf buffer            = null;

            try
            {
                buffer = ctx.alloc().buffer();
                encoder.Encode(ctx, message, buffer);

                // When
                decoder.Decode(null, buffer, thingsRead);

                // Then
                assertEquals(1, thingsRead.Count);
                assertEquals(message, thingsRead[0]);
            }
            finally
            {
                if (buffer != null)
                {
                    buffer.release();
                }
            }
        }
Exemplo n.º 3
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private void serializeReadBackAndVerifyMessage(org.neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage message) throws Exception
        private void SerializeReadBackAndVerifyMessage(Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage message)
        {
            // Given
            Instant            now     = Instant.now();
            Clock              clock   = Clock.@fixed(now, ZoneOffset.UTC);
            RaftMessageEncoder encoder = new RaftMessageEncoder(marshal);
            RaftMessageDecoder decoder = new RaftMessageDecoder(marshal, clock);

            // Deserialization adds read objects in this list
            List <object> thingsRead = new List <object>(1);

            // When
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage<?> decoratedMessage = org.neo4j.causalclustering.core.consensus.RaftMessages_ReceivedInstantClusterIdAwareMessage.of(now, clusterId, message);
            Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage <object> decoratedMessage = Org.Neo4j.causalclustering.core.consensus.RaftMessages_ReceivedInstantClusterIdAwareMessage.of(now, _clusterId, message);
            ChannelHandlerContext ctx = SetupContext();
            ByteBuf buffer            = null;

            try
            {
                buffer = ctx.alloc().buffer();
                encoder.Encode(ctx, decoratedMessage, buffer);

                // When
                decoder.Decode(null, buffer, thingsRead);

                // Then
                assertEquals(1, thingsRead.Count);
                assertEquals(decoratedMessage, thingsRead[0]);
            }
            finally
            {
                if (buffer != null)
                {
                    buffer.release();
                }
            }
        }
Exemplo n.º 4
0
 private Matcher <object> MessageMatches <T1>(Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage <T1> expected) where T1 : Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage
 {
     return(new MessageMatcher(this, expected));
 }
Exemplo n.º 5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldSuccessfullySendAndReceiveAMessage() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldSuccessfullySendAndReceiveAMessage()
        {
            // given
            Org.Neo4j.causalclustering.core.consensus.RaftMessages_Heartbeat raftMessage = new Org.Neo4j.causalclustering.core.consensus.RaftMessages_Heartbeat(new MemberId(System.Guid.randomUUID()), 1, 2, 3);
            Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage <Org.Neo4j.causalclustering.core.consensus.RaftMessages_Heartbeat> networkMessage = Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage.of(new ClusterId(System.Guid.randomUUID()), raftMessage);

            // when
            _client.send(networkMessage).syncUninterruptibly();

            // then
            assertEventually(messages => string.Format("Received messages {0} should contain message decorating {1}", messages, raftMessage), () => _server.received(), contains(MessageMatches(networkMessage)), TIMEOUT_SECONDS, SECONDS);
        }
Exemplo n.º 6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldSendAndReceive() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldSendAndReceive()
        {
            // given: raft server handler
            int                   port            = PortAuthority.allocatePort();
            Semaphore             messageReceived = new Semaphore(0);
            ChannelInboundHandler nettyHandler    = new ChannelInboundHandlerAdapterAnonymousInnerClass(this, messageReceived);
            Server                raftServer      = raftServer(nettyHandler, port);

            raftServer.Start();

            // given: raft messaging service
            SenderService sender = RaftSender();

            sender.Start();

            // when
            AdvertisedSocketAddress to = new AdvertisedSocketAddress("localhost", port);
            MemberId  memberId         = new MemberId(System.Guid.randomUUID());
            ClusterId clusterId        = new ClusterId(System.Guid.randomUUID());

            Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request newEntryMessage = new Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request(memberId, new MemberIdSet(asSet(memberId)));
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage<?> message = org.neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage.of(clusterId, newEntryMessage);
            Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage <object> message = Org.Neo4j.causalclustering.core.consensus.RaftMessages_ClusterIdAwareMessage.of(clusterId, newEntryMessage);

            sender.Send(to, message, Blocking);

            // then
            assertTrue(messageReceived.tryAcquire(15, SECONDS));

            // cleanup
            sender.Stop();
            raftServer.Stop();
        }