@Test public void testCreateStartServerCommandLineWithAllOptions() throws Exception { ServerLauncher serverLauncher = new ServerLauncher.Builder().setAssignBuckets(Boolean.TRUE) .setCommand(ServerLauncher.Command.START).setCriticalHeapPercentage(95.5f) .setCriticalOffHeapPercentage(95.5f).setDebug(Boolean.TRUE) .setDisableDefaultServer(Boolean.TRUE).setDeletePidFileOnStop(Boolean.TRUE) .setEvictionHeapPercentage(85.0f).setEvictionOffHeapPercentage(85.0f).setForce(Boolean.TRUE) .setHostNameForClients("localhost").setMaxConnections(800).setMaxMessageCount(500) .setMaxThreads(100).setMemberName("fullServer").setMessageTimeToLive(93) .setPdxDiskStore("pdxDiskStore").setPdxIgnoreUnreadFields(Boolean.TRUE) .setPdxPersistent(Boolean.TRUE).setPdxReadSerialized(Boolean.TRUE) .setPdxSerializer(mock(PdxSerializer.class)).setRebalance(Boolean.TRUE) .setRedirectOutput(Boolean.TRUE).setRebalance(true).setServerPort(41214) .setSocketBufferSize(1024 * 1024).setSpringXmlLocation("/config/spring-server.xml").build();
OptionSet options = getParser().parse(args); parseCommand(args); parseMemberName(args); setAssignBuckets(options.has("assign-buckets")); setDebug(options.has("debug")); setDeletePidFileOnStop(options.has("delete-pid-file-on-stop")); setDisableDefaultServer(options.has("disable-default-server")); setForce(options.has("force")); setHelp(options.has("help")); setRebalance(options.has("rebalance")); setRedirectOutput(options.has("redirect-output")); setCriticalHeapPercentage(Float.parseFloat(ObjectUtils .toString(options.valueOf(CliStrings.START_SERVER__CRITICAL__HEAP__PERCENTAGE)))); setEvictionHeapPercentage(Float.parseFloat(ObjectUtils .toString(options.valueOf(CliStrings.START_SERVER__EVICTION__HEAP__PERCENTAGE)))); setCriticalOffHeapPercentage(Float.parseFloat(ObjectUtils .toString(options.valueOf(CliStrings.START_SERVER__CRITICAL_OFF_HEAP_PERCENTAGE)))); setEvictionOffHeapPercentage(Float.parseFloat(ObjectUtils .toString(options.valueOf(CliStrings.START_SERVER__EVICTION_OFF_HEAP_PERCENTAGE)))); setMaxConnections(Integer.parseInt( ObjectUtils.toString(options.valueOf(CliStrings.START_SERVER__MAX__CONNECTIONS))));
new ServerLauncher.Builder().setCommand(ServerLauncher.Command.STOP) .setPid(pid).setWorkingDirectory(workingDirectory).build();
final ServerLauncher serverLauncher = new ServerLauncher.Builder() .setCommand(ServerLauncher.Command.STATUS) .setDisableDefaultServer(true).setPid(pid).setWorkingDirectory(workingDirectory).build();
@Test public void testCreateServerCommandLineWithRestAPI() throws Exception { ServerLauncher serverLauncher = new ServerLauncher.Builder() .setCommand(ServerLauncher.Command.START).setDisableDefaultServer(true) .setMemberName("testCreateServerCommandLine").setRebalance(true).setServerPort(41214) .setCriticalHeapPercentage(95.5f).setEvictionHeapPercentage(85.0f).build();
@Test public void testCreateServerCommandLine() throws Exception { ServerLauncher serverLauncher = new ServerLauncher.Builder() .setCommand(ServerLauncher.Command.START).setDisableDefaultServer(true) .setMemberName("testCreateServerCommandLine").setRebalance(true).setServerPort(41214) .setCriticalHeapPercentage(95.5f).setEvictionHeapPercentage(85.0f) .setSocketBufferSize(1024 * 1024).setMessageTimeToLive(93).build();
@Test public void buildCreatesServerLauncherWithBuilderValues() throws UnknownHostException { ServerLauncher launcher = new Builder().setCommand(Command.STOP).setAssignBuckets(true) .setForce(true).setMemberName("serverOne").setRebalance(true) .setServerBindAddress(InetAddress.getLocalHost().getHostAddress()).setServerPort(11235) .setCriticalHeapPercentage(90.0f).setEvictionHeapPercentage(75.0f).setMaxConnections(100) .setMaxMessageCount(512).setMaxThreads(8).setMessageTimeToLive(120000) .setSocketBufferSize(32768).setRedirectOutput(Boolean.TRUE).build(); assertThat(launcher.getCommand()).isEqualTo(Command.STOP); assertThat(launcher.getMemberName()).isEqualTo("serverOne"); assertThat(launcher.getServerBindAddress()).isEqualTo(InetAddress.getLocalHost()); assertThat(launcher.getServerPort().intValue()).isEqualTo(11235); assertThat(launcher.getCriticalHeapPercentage().floatValue()).isEqualTo(90.0f); assertThat(launcher.getEvictionHeapPercentage().floatValue()).isEqualTo(75.0f); assertThat(launcher.getMaxConnections().intValue()).isEqualTo(100); assertThat(launcher.getMaxMessageCount().intValue()).isEqualTo(512); assertThat(launcher.getMaxThreads().intValue()).isEqualTo(8); assertThat(launcher.getMessageTimeToLive().intValue()).isEqualTo(120000); assertThat(launcher.getSocketBufferSize().intValue()).isEqualTo(32768); assertThat(launcher.isAssignBuckets()).isTrue(); assertThat(launcher.isDebugging()).isFalse(); assertThat(launcher.isDisableDefaultServer()).isFalse(); assertThat(launcher.isForcing()).isTrue(); assertThat(launcher.isHelping()).isFalse(); assertThat(launcher.isRebalancing()).isTrue(); assertThat(launcher.isRedirectingOutput()).isTrue(); assertThat(launcher.isRunning()).isFalse(); }
@Test public void reconnectingDistributedSystemIsDisconnectedOnStop() { Cache cache = mock(Cache.class, "Cache"); DistributedSystem system = mock(DistributedSystem.class, "DistributedSystem"); Cache reconnectedCache = mock(Cache.class, "ReconnectedCache"); when(cache.isReconnecting()).thenReturn(true); when(cache.getReconnectedCache()).thenReturn(reconnectedCache); when(reconnectedCache.isReconnecting()).thenReturn(true); when(reconnectedCache.getReconnectedCache()).thenReturn(null); when(reconnectedCache.getDistributedSystem()).thenReturn(system); ServerLauncher launcher = new Builder().setCache(cache).build(); launcher.running.set(true); launcher.stop(); verify(cache, times(1)).isReconnecting(); verify(cache, times(1)).getReconnectedCache(); verify(cache, times(1)).isReconnecting(); verify(cache, times(1)).getReconnectedCache(); verify(reconnectedCache, times(1)).getDistributedSystem(); verify(system, times(1)).stopReconnecting(); verify(reconnectedCache, times(1)).close(); }
@Test public void startCacheServerStartsCacheServerWithBuilderValues() throws IOException { Cache cache = mock(Cache.class, "Cache"); CacheServer cacheServer = mock(CacheServer.class, "CacheServer"); when(cache.getCacheServers()).thenReturn(Collections.emptyList()); when(cache.addCacheServer()).thenReturn(cacheServer); ServerLauncher launcher = new Builder().setServerBindAddress(null).setServerPort(11235) .setMaxThreads(10).setMaxConnections(100).setMaxMessageCount(5).setMessageTimeToLive(10000) .setSocketBufferSize(2048).setHostNameForClients("hostName4Clients").build(); launcher.startCacheServer(cache); verify(cacheServer, times(1)).setBindAddress(null); verify(cacheServer, times(1)).setPort(eq(11235)); verify(cacheServer, times(1)).setMaxThreads(10); verify(cacheServer, times(1)).setMaxConnections(100); verify(cacheServer, times(1)).setMaximumMessageCount(5); verify(cacheServer, times(1)).setMessageTimeToLive(10000); verify(cacheServer, times(1)).setSocketBufferSize(2048); verify(cacheServer, times(1)).setHostnameForClients("hostName4Clients"); verify(cacheServer, times(1)).start(); }
/** * Iterates the list of arguments in search of the target Server launcher command. * * @param args an array of arguments from which to search for the Server launcher command. * @see org.apache.geode.distributed.ServerLauncher.Command#valueOfName(String) * @see #parseArguments(String...) */ protected void parseCommand(final String... args) { if (args != null) { for (String arg : args) { Command command = Command.valueOfName(arg); if (command != null) { setCommand(command); break; } } } }
@Test public void startCacheServerDoesNothingWhenCacheServerAlreadyExists() throws IOException { Cache cache = mock(Cache.class, "Cache"); CacheServer cacheServer1 = mock(CacheServer.class, "CacheServer1"); CacheServer cacheServer2 = mock(CacheServer.class, "CacheServer2"); when(cache.getCacheServers()).thenReturn(Collections.singletonList(cacheServer1)); when(cache.addCacheServer()).thenReturn(cacheServer1); ServerLauncher launcher = new Builder().build(); launcher.startCacheServer(cache); verify(cacheServer2, times(0)).setBindAddress(anyString()); verify(cacheServer2, times(0)).setPort(anyInt()); verify(cacheServer2, times(0)).setMaxThreads(anyInt()); verify(cacheServer2, times(0)).setMaxConnections(anyInt()); verify(cacheServer2, times(0)).setMaximumMessageCount(anyInt()); verify(cacheServer2, times(0)).setMessageTimeToLive(anyInt()); verify(cacheServer2, times(0)).setSocketBufferSize(anyInt()); verify(cacheServer2, times(0)).setHostnameForClients(anyString()); verify(cacheServer2, times(0)).start(); } }
@Test public void constructorCorrectlySetsCacheServerLauncherParameters() { ServerLauncher launcher = new Builder().setServerBindAddress(null).setServerPort(11235) .setMaxThreads(10).setMaxConnections(100).setMaxMessageCount(5).setMessageTimeToLive(10000) .setSocketBufferSize(2048).setHostNameForClients("hostName4Clients") .setDisableDefaultServer(Boolean.FALSE).build(); assertThat(launcher).isNotNull(); assertThat(ServerLauncherParameters.INSTANCE).isNotNull(); assertThat(ServerLauncherParameters.INSTANCE.getPort()).isEqualTo(11235); assertThat(ServerLauncherParameters.INSTANCE.getMaxThreads()).isEqualTo(10); assertThat(ServerLauncherParameters.INSTANCE.getBindAddress()).isEqualTo(null); assertThat(ServerLauncherParameters.INSTANCE.getMaxConnections()).isEqualTo(100); assertThat(ServerLauncherParameters.INSTANCE.getMaxMessageCount()).isEqualTo(5); assertThat(ServerLauncherParameters.INSTANCE.getSocketBufferSize()).isEqualTo(2048); assertThat(ServerLauncherParameters.INSTANCE.getMessageTimeToLive()).isEqualTo(10000); assertThat(ServerLauncherParameters.INSTANCE.getHostnameForClients()) .isEqualTo("hostName4Clients"); assertThat(ServerLauncherParameters.INSTANCE.isDisableDefaultServer()).isFalse(); }
@Test public void startCacheServerDoesNothingWhenDefaultServerDisabled() throws IOException { Cache cache = mock(Cache.class, "Cache"); CacheServer cacheServer = mock(CacheServer.class, "CacheServer"); when(cache.getCacheServers()).thenReturn(Collections.emptyList()); when(cache.addCacheServer()).thenReturn(cacheServer); ServerLauncher launcher = new Builder().setDisableDefaultServer(true).build(); launcher.startCacheServer(cache); verify(cacheServer, times(0)).setBindAddress(anyString()); verify(cacheServer, times(0)).setPort(anyInt()); verify(cacheServer, times(0)).setMaxThreads(anyInt()); verify(cacheServer, times(0)).setMaxConnections(anyInt()); verify(cacheServer, times(0)).setMaximumMessageCount(anyInt()); verify(cacheServer, times(0)).setMessageTimeToLive(anyInt()); verify(cacheServer, times(0)).setSocketBufferSize(anyInt()); verify(cacheServer, times(0)).setHostnameForClients(anyString()); verify(cacheServer, times(0)).start(); }
@Test public void parseCommandWithTwoCommandsWithSwitchesUsesFirstCommand() { Builder builder = new Builder(); builder.parseCommand("--opt", "START", "-o", Command.STATUS.getName()); assertThat(builder.getCommand()).isEqualTo(Command.START); }
@Test public void setSocketBufferSizeToNegativeValueThrowsIllegalArgumentException() { assertThatThrownBy(() -> new Builder().setSocketBufferSize(-8192)) .isInstanceOf(IllegalArgumentException.class); }
@Test public void setServerBindAddressToLocalHostNameUsesValue() throws UnknownHostException { String host = InetAddress.getLocalHost().getHostName(); Builder builder = new Builder().setServerBindAddress(host); assertThat(builder.getServerBindAddress()).isEqualTo(localHost); }
@Test public void setMessageTimeToLiveToPositiveIntegerUsesValue() { Builder builder = new Builder(); builder.setMessageTimeToLive(30000); assertThat(builder.getMessageTimeToLive().intValue()).isEqualTo(30000); }
@Test public void setMaxMessageCountToZeroResultsInIllegalArgumentException() { assertThatThrownBy(() -> new Builder().setMaxMessageCount(0)) .isInstanceOf(IllegalArgumentException.class); }
@Test public void setMaxMessageCountToNullResultsInNull() { Builder builder = new Builder(); builder.setMaxMessageCount(null); assertThat(builder.getMaxMessageCount()).isNull(); }
@Test public void setSocketBufferSizeReturnsBuilderInstance() { Builder builder = new Builder(); assertThat(builder.setSocketBufferSize(32768)).isSameAs(builder); }