Beispiel #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public ClusterNetworkIT(int nrOfServers, ClusterTestScript script) throws java.net.URISyntaxException
        public ClusterNetworkIT(int nrOfServers, ClusterTestScript script)
        {
            this._script = script;

            @out.Clear();
            @in.Clear();

            for (int i = 0; i < nrOfServers; i++)
            {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.net.URI uri = new java.net.URI("neo4j://localhost:" + org.neo4j.ports.allocation.PortAuthority.allocatePort());
                URI uri = new URI("neo4j://localhost:" + PortAuthority.allocatePort());

                Monitors monitors = new Monitors();
                NetworkedServerFactory factory = new NetworkedServerFactory(_life, new MultiPaxosServerFactory(new ClusterConfiguration("default", NullLogProvider.Instance), NullLogProvider.Instance, monitors.NewMonitor(typeof(StateMachines.Monitor))), new FixedTimeoutStrategy(1000), NullLogProvider.Instance, new ObjectStreamFactory(), new ObjectStreamFactory(), monitors.NewMonitor(typeof(NetworkReceiver.Monitor)), monitors.NewMonitor(typeof(NetworkSender.Monitor)), monitors.NewMonitor(typeof(NamedThreadFactory.Monitor)));

                ServerIdElectionCredentialsProvider electionCredentialsProvider = new ServerIdElectionCredentialsProvider();
                ProtocolServer server = factory.NewNetworkedServer(Config.defaults(MapUtil.stringMap(ClusterSettings.cluster_server.name(), uri.Host + ":" + uri.Port, ClusterSettings.server_id.name(), "" + i)), new InMemoryAcceptorInstanceStore(), electionCredentialsProvider);
                server.AddBindingListener(electionCredentialsProvider);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final Cluster cluster2 = server.newClient(Cluster.class);
                Cluster cluster2 = server.NewClient(typeof(Cluster));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.concurrent.atomic.AtomicReference<ClusterConfiguration> config2 = clusterStateListener(uri, cluster2);
                AtomicReference <ClusterConfiguration> config2 = ClusterStateListener(uri, cluster2);

                _servers.Add(cluster2);
                @out.Add(cluster2);
                _configurations.Add(config2);
            }

            _life.start();
        }
Beispiel #2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: protected void testCluster(int nrOfServers, org.neo4j.cluster.NetworkMock mock, ClusterTestScript script) throws java.net.URISyntaxException
        protected internal virtual void TestCluster(int nrOfServers, NetworkMock mock, ClusterTestScript script)
        {
            int[] serverIds = new int[nrOfServers];
            for (int i = 1; i <= nrOfServers; i++)
            {
                serverIds[i - 1] = i;
            }
            TestCluster(serverIds, null, mock, script);
        }
Beispiel #3
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: protected void testCluster(int[] serverIds, org.neo4j.cluster.VerifyInstanceConfiguration[] finalConfig, org.neo4j.cluster.NetworkMock mock, ClusterTestScript script) throws java.net.URISyntaxException
        protected internal virtual void TestCluster(int[] serverIds, VerifyInstanceConfiguration[] finalConfig, NetworkMock mock, ClusterTestScript script)
        {
            this.Script = script;

            Network = mock;
            Servers.Clear();
            Out.Clear();
            In.Clear();

            for (int i = 0; i < serverIds.Length; i++)
            {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.net.URI uri = new java.net.URI("server" + (i + 1));
                URI uri = new URI("server" + (i + 1));
                Members[serverIds[i]] = uri;
                TestProtocolServer server = Network.addServer(serverIds[i], uri);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final Cluster cluster = server.newClient(Cluster.class);
                Cluster cluster = server.NewClient(typeof(Cluster));
                ClusterStateListener(uri, cluster);

                server.NewClient(typeof(Heartbeat)).addHeartbeatListener(new HeartbeatListenerAnonymousInnerClass(this, uri, server));
                server.NewClient(typeof(AtomicBroadcast)).addAtomicBroadcastListener(new AtomicBroadcastListenerAnonymousInnerClass(this, uri));

                Servers.Add(server);
                Out.Add(cluster);
            }

            // Run test
            for (int i = 0; i < script.Rounds(); i++)
            {
                Logger.Logger.fine("Round " + i + ", time:" + Network.Time);

                script.Tick(Network.Time.Value);

                Network.tick();
            }

            // Let messages settle
            Network.tick(100);
            if (finalConfig == null)
            {
                VerifyConfigurations("final config");
            }
            else
            {
                VerifyConfigurations(finalConfig);
            }

            Logger.Logger.fine("All nodes leave");

            // All leave
            foreach (Cluster cluster in new List <>(In))
            {
                Logger.Logger.fine("Leaving:" + cluster);
                cluster.Leave();
                In.Remove(cluster);
                Network.tick(400);
            }

            if (finalConfig != null)
            {
                VerifyConfigurations(finalConfig);
            }
            else
            {
                VerifyConfigurations("test over");
            }
        }