public ServerState(final ServerLauncher launcher, final Status status) { this(status, launcher.statusMessage, System.currentTimeMillis(), launcher.getId(), identifyPid(), ManagementFactory.getRuntimeMXBean().getUptime(), launcher.getWorkingDirectory(), ManagementFactory.getRuntimeMXBean().getInputArguments(), System.getProperty("java.class.path"), GemFireVersion.getGemFireVersion(), System.getProperty("java.version"), getServerLogFileCanonicalPath(launcher), getServerBindAddressAsString(launcher), getServerPortAsString(launcher), launcher.getMemberName()); }
if (!isHelping()) { switch (getCommand()) { case START: info(start()); waitOnServer(); break; case STATUS: info(status()); break; case STOP: info(stop()); break; case VERSION: info(version()); break; default: usage(); help(getCommand());
if (isDefaultServerEnabled(cache)) { final String serverBindAddress = getServerBindAddress() == null ? null : getServerBindAddress().getHostAddress(); final Integer serverPort = getServerPort(); final CacheServer cacheServer = cache.addCacheServer(); cacheServer.setBindAddress(serverBindAddress); cacheServer.setPort(serverPort); if (getMaxThreads() != null) { cacheServer.setMaxThreads(getMaxThreads()); if (getMaxConnections() != null) { cacheServer.setMaxConnections(getMaxConnections()); if (getMaxMessageCount() != null) { cacheServer.setMaximumMessageCount(getMaxMessageCount()); if (getMessageTimeToLive() != null) { cacheServer.setMessageTimeToLive(getMessageTimeToLive()); if (getSocketBufferSize() != null) { cacheServer.setSocketBufferSize(getSocketBufferSize()); if (getHostNameForClients() != null) { cacheServer.setHostnameForClients(getHostNameForClients());
/** * Determines whether the Server can be stopped in-process, such as when a Server is embedded in * an application and the ServerLauncher API is being used. * * @return a boolean indicating whether the Server can be stopped in-process (the application's * process with an embedded Server). */ private boolean isStoppable() { return isRunning() && getCache() != null; }
/** * Gets the server port on which the Server is listening for client requests represented as a * String value. * * @return a String representing the server port on which the Server is listening for client * requests. * @see #getServerPort() */ public String getServerPortAsString() { Integer v1 = getServerPort(); return (v1 != null ? v1 : getDefaultServerPort()).toString(); }
commandLine.add( "-Dsun.rmi.dgc.server.gcInterval".concat("=").concat(Long.toString(Long.MAX_VALUE - 1))); if (launcher.isRedirectingOutput()) { commandLine .add("-D".concat(OSProcess.DISABLE_REDIRECTION_CONFIGURATION_PROPERTY).concat("=true")); if (StringUtils.isNotBlank(launcher.getMemberName())) { commandLine.add(launcher.getMemberName()); if (launcher.isAssignBuckets()) { commandLine.add("--assign-buckets"); if (launcher.isDebugging() || isDebugging()) { commandLine.add("--debug"); if (launcher.isDisableDefaultServer()) { commandLine.add("--disable-default-server"); if (launcher.isForcing()) { commandLine.add("--force"); if (launcher.isRebalancing()) { commandLine.add("--rebalance"); if (launcher.isRedirectingOutput()) { commandLine.add("--redirect-output"); if (launcher.getServerBindAddress() != null) { commandLine
@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(); }
if (isStartable()) { INSTANCE.compareAndSet(null, this); process = new ControllableProcess(this.controlHandler, new File(getWorkingDirectory()), ProcessType.SERVER, isForcing()); if (!isDisableDefaultServer()) { assertPortAvailable(getServerBindAddress(), getServerPort()); ProcessLauncherContext.set(isRedirectingOutput(), getOverriddenDefaults(), (String statusMessage) -> { debug("Callback setStatus(String) called with message (%1$s)...", statusMessage); ServerLauncher.this.statusMessage = statusMessage; }); final Properties gemfireProperties = getDistributedSystemProperties(getProperties()); this.cache = createCache(gemfireProperties); this.cache.getResourceManager().setCriticalHeapPercentage(getCriticalHeapPercentage()); this.cache.getResourceManager().setEvictionHeapPercentage(getEvictionHeapPercentage()); .setCriticalOffHeapPercentage(getCriticalOffHeapPercentage()); .setEvictionOffHeapPercentage(getEvictionOffHeapPercentage()); startCacheServer(this.cache); assignBuckets(this.cache); rebalance(this.cache);
expectedCommandLineElements.add(serverLauncher.getCommand().getName()); expectedCommandLineElements.add("--disable-default-server"); expectedCommandLineElements.add(serverLauncher.getMemberName().toLowerCase()); expectedCommandLineElements.add("--rebalance"); expectedCommandLineElements .add(String.format("--server-port=%1$d", serverLauncher.getServerPort())); expectedCommandLineElements.add(String.format("--critical-heap-percentage=%1$s", serverLauncher.getCriticalHeapPercentage())); expectedCommandLineElements.add(String.format("--eviction-heap-percentage=%1$s", serverLauncher.getEvictionHeapPercentage())); expectedCommandLineElements .add(String.format("--socket-buffer-size=%1$d", serverLauncher.getSocketBufferSize())); expectedCommandLineElements .add(String.format("--message-time-to-live=%1$d", serverLauncher.getMessageTimeToLive()));
expectedCommandLineElements.add(serverLauncher.getCommand().getName()); expectedCommandLineElements.add("--disable-default-server"); expectedCommandLineElements.add(serverLauncher.getMemberName().toLowerCase()); expectedCommandLineElements.add("--rebalance"); expectedCommandLineElements .add(String.format("--server-port=%1$d", serverLauncher.getServerPort())); expectedCommandLineElements.add(String.format("--critical-heap-percentage=%1$s", serverLauncher.getCriticalHeapPercentage())); expectedCommandLineElements.add(String.format("--eviction-heap-percentage=%1$s", serverLauncher.getEvictionHeapPercentage()));
@Test public void canBeMocked() throws IOException { ServerLauncher launcher = mock(ServerLauncher.class); Cache cache = mock(Cache.class); CacheConfig cacheConfig = mock(CacheConfig.class); when(launcher.getCache()).thenReturn(cache); when(launcher.getCacheConfig()).thenReturn(cacheConfig); when(launcher.getId()).thenReturn("ID"); when(launcher.isWaiting(eq(cache))).thenReturn(true); when(launcher.isHelping()).thenReturn(true); launcher.startCacheServer(cache); verify(launcher, times(1)).startCacheServer(cache); assertThat(launcher.getCache()).isSameAs(cache); assertThat(launcher.getCacheConfig()).isSameAs(cacheConfig); assertThat(launcher.getId()).isSameAs("ID"); assertThat(launcher.isWaiting(cache)).isTrue(); assertThat(launcher.isHelping()).isTrue(); }
@Override public Cache createCache(Properties gemfireProperties, ServerLauncher serverLauncher) { Cache cache = null; if (serverLauncher.isSpringXmlLocationSpecified()) { System.setProperty(gemfireName(), serverLauncher.getMemberName()); newSpringContextBootstrappingInitializer().init(createParameters(serverLauncher)); cache = SpringContextBootstrappingInitializer.getApplicationContext().getBean(Cache.class); } return cache; }
/** * Causes the calling Thread to block until the GemFire Cache Server/Data Member stops. */ public void waitOnServer() { assert getCache() != null : "The Cache Server must first be started with a call to start!"; if (!isServing(getCache())) { Throwable cause = null; try { while (isWaiting(getCache())) { try { synchronized (this) { wait(500L); } } catch (InterruptedException handled) { // loop back around } } } catch (RuntimeException e) { cause = e; throw e; } finally { failOnStart(cause); } } }
private static String getServerLocation(ServerLauncher launcher) { if (launcher.getServerPort() == null) { return launcher.getId(); } if (launcher.getServerBindAddress() == null) { return HostUtils.getLocatorId(HostUtils.getLocalHost(), launcher.getServerPort()); } return HostUtils.getServerId(launcher.getServerBindAddress().getCanonicalHostName(), launcher.getServerPort()); }
@Test public void buildUsesMemberNameSetInApiProperties() { ServerLauncher launcher = new Builder().setCommand(ServerLauncher.Command.START).set(NAME, "serverABC").build(); assertThat(launcher.getMemberName()).isNull(); assertThat(launcher.getProperties().getProperty(NAME)).isEqualTo("serverABC"); }
/** * Gets the name of the log file used to log information about this Server. * * @return a String value indicating the name of this Server's log file. */ @Override public String getLogFileName() { return defaultIfBlank(getMemberName(), DEFAULT_SERVER_LOG_NAME).concat(DEFAULT_SERVER_LOG_EXT); }
Properties createParameters(ServerLauncher serverLauncher) { Properties parameters = new Properties(); parameters.setProperty(SpringContextBootstrappingInitializer.CONTEXT_CONFIG_LOCATIONS_PARAMETER, serverLauncher.getSpringXmlLocation()); return parameters; }
@Override public Cache createCache(Properties gemfireProperties, ServerLauncher serverLauncher) { Cache cache = null; if (serverLauncher.isSpringXmlLocationSpecified()) { System.setProperty(gemfireName(), serverLauncher.getMemberName()); newSpringContextBootstrappingInitializer().init(createParameters(serverLauncher)); cache = SpringContextBootstrappingInitializer.getApplicationContext().getBean(Cache.class); } return cache; }
@Test public void buildUsesMemberNameSetInSystemProperties() { System.setProperty(DistributionConfig.GEMFIRE_PREFIX + NAME, "serverXYZ"); ServerLauncher launcher = new Builder().setCommand(ServerLauncher.Command.START).build(); assertThat(launcher.getMemberName()).isNull(); } }
Properties createParameters(ServerLauncher serverLauncher) { Properties parameters = new Properties(); parameters.setProperty(SpringContextBootstrappingInitializer.CONTEXT_CONFIG_LOCATIONS_PARAMETER, serverLauncher.getSpringXmlLocation()); return parameters; }