public void testNodeVersionIsUpdated() { TransportClient client = (TransportClient) internalCluster().client(); TransportClientNodesService nodeService = client.nodeService(); Node node = new Node( Settings.builder() .put(internalCluster().getDefaultSettings()) .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()) .put("node.name", "testNodeVersionIsUpdated") .put("http.enabled", false) .put(Node.NODE_DATA_SETTING.getKey(), false) .put("cluster.name", "foobar") .put( InternalSettingsPreparer.IGNORE_SYSTEM_PROPERTIES_SETTING.getKey(), true) // make sure we get what we set :) .build()); node.start(); try { TransportAddress transportAddress = node.injector().getInstance(TransportService.class).boundAddress().publishAddress(); client.addTransportAddress(transportAddress); assertThat( nodeService.connectedNodes().size(), greaterThanOrEqualTo( 1)); // since we force transport clients there has to be one node started that we // connect to. for (DiscoveryNode discoveryNode : nodeService.connectedNodes()) { // connected nodes have updated version assertThat(discoveryNode.getVersion(), equalTo(Version.CURRENT)); } for (DiscoveryNode discoveryNode : nodeService.listedNodes()) { assertThat(discoveryNode.id(), startsWith("#transport#-")); assertThat( discoveryNode.getVersion(), equalTo(Version.CURRENT.minimumCompatibilityVersion())); } assertThat(nodeService.filteredNodes().size(), equalTo(1)); for (DiscoveryNode discoveryNode : nodeService.filteredNodes()) { assertThat( discoveryNode.getVersion(), equalTo(Version.CURRENT.minimumCompatibilityVersion())); } } finally { node.close(); } }