Example #1
0
 internal HandshakeServer(ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository, Channel channel)
 {
     this._channel = channel;
     this._applicationProtocolRepository = applicationProtocolRepository;
     this._modifierProtocolRepository    = modifierProtocolRepository;
     this._supportedApplicationProtocol  = applicationProtocolRepository.SupportedProtocol();
 }
Example #2
0
 private void InitializeInstanceFields()
 {
     _raftApplicationProtocolRepository      = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), _supportedRaftApplicationProtocol);
     _catchupApplicationProtocolRepository   = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), _supportedCatchupApplicationProtocol);
     _compressionModifierProtocolRepository  = new ModifierProtocolRepository(TestProtocols_TestModifierProtocols.values(), _supportedCompressionModifierProtocols);
     _unsupportingModifierProtocolRepository = new ModifierProtocolRepository(TestProtocols_TestModifierProtocols.values(), _noSupportedModifierProtocols);
 }
Example #3
0
 private void InitializeInstanceFields()
 {
     _supportedApplicationProtocol  = new ApplicationSupportedProtocols(_applicationProtocolIdentifier, emptyList());
     _applicationProtocolRepository = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), _supportedApplicationProtocol);
     _modifierProtocolRepository    = new ModifierProtocolRepository(TestProtocols_TestModifierProtocols.values(), _supportedModifierProtocols);
     _expectedApplicationProtocol   = _applicationProtocolRepository.select(_applicationProtocolIdentifier.canonicalName(), _raftVersion).get();
 }
Example #4
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: void start(final ApplicationProtocolRepository applicationProtocolRepository, final ModifierProtocolRepository modifierProtocolRepository)
            internal virtual void Start(ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository)
            {
                EventLoopGroup = new NioEventLoopGroup();
                ServerBootstrap bootstrap = (new ServerBootstrap()).group(EventLoopGroup).channel(typeof(NioServerSocketChannel)).option(ChannelOption.SO_REUSEADDR, true).localAddress(0).childHandler(new ChannelInitializerAnonymousInnerClass(this, applicationProtocolRepository, modifierProtocolRepository));

                Channel = bootstrap.bind().syncUninterruptibly().channel();
            }
Example #5
0
 public HandshakeServerInitializer(ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository, ProtocolInstallerRepository <Org.Neo4j.causalclustering.protocol.ProtocolInstaller_Orientation_Server> protocolInstallerRepository, NettyPipelineBuilderFactory pipelineBuilderFactory, LogProvider logProvider)
 {
     this._log = logProvider.getLog(this.GetType());
     this._applicationProtocolRepository = applicationProtocolRepository;
     this._modifierProtocolRepository    = modifierProtocolRepository;
     this._protocolInstallerRepository   = protocolInstallerRepository;
     this._pipelineBuilderFactory        = pipelineBuilderFactory;
 }
Example #6
0
 public HandshakeClientInitializer(ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository, ProtocolInstallerRepository <Org.Neo4j.causalclustering.protocol.ProtocolInstaller_Orientation_Client> protocolInstallerRepository, NettyPipelineBuilderFactory pipelineBuilderFactory, Duration handshakeTimeout, LogProvider debugLogProvider, LogProvider userLogProvider)
 {
     this._debugLog = debugLogProvider.getLog(this.GetType());
     this._userLog  = userLogProvider.getLog(this.GetType());
     this._applicationProtocolRepository = applicationProtocolRepository;
     this._modifierProtocolRepository    = modifierProtocolRepository;
     this._timeout                = handshakeTimeout;
     this._protocolInstaller      = protocolInstallerRepository;
     this._pipelineBuilderFactory = pipelineBuilderFactory;
     this._handshakeDelay         = new ExponentialBackoffStrategy(1, 2000, MILLISECONDS);
 }
Example #7
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: void start(final ApplicationProtocolRepository applicationProtocolRepository, final ModifierProtocolRepository modifierProtocolRepository, org.neo4j.logging.LogProvider logProvider)
            internal virtual void Start(ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository, LogProvider logProvider)
            {
                RaftProtocolServerInstallerV2.Factory raftFactoryV2 = new RaftProtocolServerInstallerV2.Factory(nettyHandler, PipelineBuilderFactory, logProvider);
                RaftProtocolServerInstallerV1.Factory raftFactoryV1 = new RaftProtocolServerInstallerV1.Factory(nettyHandler, PipelineBuilderFactory, logProvider);
                ProtocolInstallerRepository <Org.Neo4j.causalclustering.protocol.ProtocolInstaller_Orientation_Server> protocolInstallerRepository = new ProtocolInstallerRepository <Org.Neo4j.causalclustering.protocol.ProtocolInstaller_Orientation_Server>(Arrays.asList(raftFactoryV1, raftFactoryV2), Org.Neo4j.causalclustering.protocol.ModifierProtocolInstaller_Fields.AllServerInstallers);

                EventLoopGroup = new NioEventLoopGroup();
                ServerBootstrap bootstrap = (new ServerBootstrap()).group(EventLoopGroup).channel(typeof(NioServerSocketChannel)).option(ChannelOption.SO_REUSEADDR, true).localAddress(PortAuthority.allocatePort()).childHandler((new HandshakeServerInitializer(applicationProtocolRepository, modifierProtocolRepository, protocolInstallerRepository, PipelineBuilderFactory, logProvider)).asChannelInitializer());

                Channel = bootstrap.bind().syncUninterruptibly().channel();
            }
Example #8
0
            internal Client(ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository, NettyPipelineBuilderFactory pipelineBuilderFactory, Config config, LogProvider logProvider)
            {
                RaftProtocolClientInstallerV2.Factory raftFactoryV2 = new RaftProtocolClientInstallerV2.Factory(pipelineBuilderFactory, logProvider);
                RaftProtocolClientInstallerV1.Factory raftFactoryV1 = new RaftProtocolClientInstallerV1.Factory(pipelineBuilderFactory, logProvider);
                ProtocolInstallerRepository <Org.Neo4j.causalclustering.protocol.ProtocolInstaller_Orientation_Client> protocolInstallerRepository = new ProtocolInstallerRepository <Org.Neo4j.causalclustering.protocol.ProtocolInstaller_Orientation_Client>(Arrays.asList(raftFactoryV1, raftFactoryV2), Org.Neo4j.causalclustering.protocol.ModifierProtocolInstaller_Fields.AllClientInstallers);

                EventLoopGroup = new NioEventLoopGroup();
                Duration handshakeTimeout = config.Get(CausalClusteringSettings.handshake_timeout);

                HandshakeClientInitializer = new HandshakeClientInitializer(applicationProtocolRepository, modifierProtocolRepository, protocolInstallerRepository, pipelineBuilderFactory, handshakeTimeout, logProvider, logProvider);
                Bootstrap = (new Bootstrap()).group(EventLoopGroup).channel(typeof(NioSocketChannel)).handler(HandshakeClientInitializer);
            }
Example #9
0
            internal Fixture(Parameters parameters)
            {
                ApplicationProtocolRepository serverApplicationProtocolRepository = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), parameters.ServerApplicationProtocol);
                ModifierProtocolRepository    serverModifierProtocolRepository    = new ModifierProtocolRepository(TestProtocols_TestModifierProtocols.values(), parameters.ServerModifierProtocols);

                ClientApplicationProtocolRepository = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), parameters.ClientApplicationProtocol);
                ClientModifierProtocolRepository    = new ModifierProtocolRepository(TestProtocols_TestModifierProtocols.values(), parameters.ClientModifierProtocols);

                HandshakeClient = new HandshakeClient();
                HandshakeServer = new HandshakeServer(serverApplicationProtocolRepository, serverModifierProtocolRepository, new FakeServerChannel(HandshakeClient));
                ClientChannel   = new FakeClientChannel(HandshakeServer);
                this.Parameters = parameters;
            }
Example #10
0
        public virtual CompletableFuture <ProtocolStack> Initiate(Channel channel, ApplicationProtocolRepository applicationProtocolRepository, ModifierProtocolRepository modifierProtocolRepository)
        {
            this._channel = channel;

            this._applicationProtocolRepository = applicationProtocolRepository;
            this._supportedApplicationProtocol  = applicationProtocolRepository.SupportedProtocol();

            this._modifierProtocolRepository = modifierProtocolRepository;
            this._supportedModifierProtocols = modifierProtocolRepository.SupportedProtocols();

            _negotiatedModifierProtocols = new List <Pair <string, Optional <Protocol_ModifierProtocol> > >(_supportedModifierProtocols.Count);

            channel.Write(InitialMagicMessage.Instance());

            SendProtocolRequests(channel, _supportedApplicationProtocol, _supportedModifierProtocols);

            return(_future);
        }
Example #11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Before public void setUp()
        public virtual void SetUp()
        {
            _logProvider = new AssertableLogProvider(true);
            ApplicationProtocolRepository applicationProtocolRepository = new ApplicationProtocolRepository(Org.Neo4j.causalclustering.protocol.Protocol_ApplicationProtocols.values(), _parameters.applicationSupportedProtocol);
            ModifierProtocolRepository    modifierProtocolRepository    = new ModifierProtocolRepository(Protocol_ModifierProtocols.values(), _parameters.modifierSupportedProtocols);

            NettyPipelineBuilderFactory serverPipelineBuilderFactory = new NettyPipelineBuilderFactory(VoidPipelineWrapperFactory.VOID_WRAPPER);
            NettyPipelineBuilderFactory clientPipelineBuilderFactory = new NettyPipelineBuilderFactory(VoidPipelineWrapperFactory.VOID_WRAPPER);

            _server = new Server(serverPipelineBuilderFactory);
            _server.start(applicationProtocolRepository, modifierProtocolRepository, _logProvider);

            Config config = Config.builder().withSetting(CausalClusteringSettings.handshake_timeout, TIMEOUT_SECONDS + "s").build();

            _client = new Client(applicationProtocolRepository, modifierProtocolRepository, clientPipelineBuilderFactory, config, _logProvider);

            _client.connect(_server.port());
        }
Example #12
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldSuccessfullySwitchOverWhenServerHasConfiguredRaftVersions()
        public void shouldSuccessfullySwitchOverWhenServerHasConfiguredRaftVersions()
        {
            // given
            ISet <int> requestedVersions         = asSet(TestProtocols_TestApplicationProtocols.allVersionsOf(RAFT));
            int?       expectedNegotiatedVersion = 1;
            ApplicationProtocolRepository applicationProtocolRepository = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), new ApplicationSupportedProtocols(RAFT, singletonList(expectedNegotiatedVersion)));

            HandshakeServer server = new HandshakeServer(applicationProtocolRepository, _modifierProtocolRepository, _channel);

            server.Handle(InitialMagicMessage.Instance());
            server.Handle(new ApplicationProtocolRequest(RAFT.canonicalName(), requestedVersions));

            // when
            server.Handle(new SwitchOverRequest(RAFT_1.category(), expectedNegotiatedVersion.Value, emptyList()));

            // then
            verify(_channel).writeAndFlush(InitialMagicMessage.Instance());
            verify(_channel).writeAndFlush(new SwitchOverResponse(SUCCESS));
            ProtocolStack protocolStack         = server.ProtocolStackFuture().getNow(null);
            ProtocolStack expectedProtocolStack = new ProtocolStack(applicationProtocolRepository.Select(RAFT.canonicalName(), expectedNegotiatedVersion.Value).get(), emptyList());

            assertThat(protocolStack, equalTo(expectedProtocolStack));
        }
Example #13
0
 private void InitializeInstanceFields()
 {
     _applicationProtocolRepository = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), _supportedApplicationProtocol);
     _server = new HandshakeServer(_applicationProtocolRepository, _modifierProtocolRepository, _channel);
 }
Example #14
0
 private void InitializeInstanceFields()
 {
     _applicationProtocolRepository = new ApplicationProtocolRepository(TestProtocols_TestApplicationProtocols.values(), _supportedApplicationProtocol);
 }