private static void fixPortIfZero(Props props, String addressPropertyKey, String portPropertyKey) { String port = props.value(portPropertyKey); if ("0".equals(port)) { String address = props.nonNullValue(addressPropertyKey); try { props.set(portPropertyKey, String.valueOf(NetworkUtilsImpl.INSTANCE.getNextAvailablePort(InetAddress.getByName(address)))); } catch (UnknownHostException e) { throw new IllegalStateException("Cannot resolve address [" + address + "] set by property [" + addressPropertyKey + "]", e); } } } }
@BeforeClass public static void setUp() { int port1 = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(loopback); int port2 = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(loopback); int port3 = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(loopback); member1 = newHzMember(port1, port2, port3); member2 = newHzMember(port2, port1, port3); member3 = newHzMember(port3, port1, port2); }
private static HazelcastMember newHzMember() { // use loopback for support of offline builds InetAddress loopback = InetAddress.getLoopbackAddress(); return new HazelcastMemberBuilder() .setProcessId(ProcessId.COMPUTE_ENGINE) .setNodeName("bar") .setPort(NetworkUtilsImpl.INSTANCE.getNextAvailablePort(loopback)) .setNetworkInterface(loopback.getHostAddress()) .build(); } }
int httpPort = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(address); props.set("sonar.web.host", address.getHostAddress()); props.set("sonar.web.port", String.valueOf(httpPort));
@Test public void start_ignores_URL_to_create_database_and_uses_empty_username_and_password_when_then_are_not_set() throws IOException { int port = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(InetAddress.getLoopbackAddress()); settings .setProperty(PATH_DATA.getKey(), temporaryFolder.newFolder().getAbsolutePath()) .setProperty(JDBC_URL.getKey(), "jdbc url") .setProperty(JDBC_EMBEDDED_PORT.getKey(), "" + port); underTest.start(); checkDbIsUp(port, "", ""); }
@Test public void build_member() { HazelcastMember member = underTest .setProcessId(ProcessId.COMPUTE_ENGINE) .setNodeName("bar") .setPort(NetworkUtilsImpl.INSTANCE.getNextAvailablePort(loopback)) .setNetworkInterface(loopback.getHostAddress()) .build(); assertThat(member.getUuid()).isNotEmpty(); assertThat(member.getClusterTime()).isGreaterThan(0); assertThat(member.getCluster().getMembers()).hasSize(1); assertThat(member.getMemberUuids()).containsOnlyOnce(member.getUuid()); assertThat(member.getAtomicReference("baz")).isNotNull(); assertThat(member.getLock("baz")).isNotNull(); assertThat(member.getReplicatedMap("baz")).isNotNull(); member.close(); }
@Test public void start_supports_in_memory_H2_JDBC_URL() throws IOException { int port = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(InetAddress.getLoopbackAddress()); settings .setProperty(PATH_DATA.getKey(), temporaryFolder.newFolder().getAbsolutePath()) .setProperty(JDBC_URL.getKey(), "jdbc:h2:mem:sonar") .setProperty(JDBC_EMBEDDED_PORT.getKey(), "" + port) .setProperty(JDBC_USERNAME.getKey(), "foo") .setProperty(JDBC_PASSWORD.getKey(), "bar"); underTest.start(); checkDbIsUp(port, "foo", "bar"); }
@Test public void start_creates_db_and_adds_tcp_listener() throws IOException { int port = NetworkUtilsImpl.INSTANCE.getNextAvailablePort(InetAddress.getLoopbackAddress()); settings .setProperty(PATH_DATA.getKey(), temporaryFolder.newFolder().getAbsolutePath()) .setProperty(JDBC_URL.getKey(), "jdbc url") .setProperty(JDBC_EMBEDDED_PORT.getKey(), "" + port) .setProperty(JDBC_USERNAME.getKey(), "foo") .setProperty(JDBC_PASSWORD.getKey(), "bar"); underTest.start(); checkDbIsUp(port, "foo", "bar"); // H2 listens on loopback address only verify(system2).setProperty("h2.bindAddress", LOOPBACK_ADDRESS); }