private LocatorState statusWithPid() { try { final ProcessController controller = new ProcessControllerFactory() .createProcessController(this.controllerParameters, getPid()); controller.checkPidSupport(); final String statusJson = controller.status(); return LocatorState.fromJson(statusJson); } catch (ConnectionFailedException handled) { // failed to attach to locator JVM return createNoResponseState(handled, "Failed to connect to locator with process id " + getPid()); } catch (IOException | MBeanInvocationFailedException | UnableToControlProcessException | TimeoutException handled) { return createNoResponseState(handled, "Failed to communicate with locator with process id " + getPid()); } catch (InterruptedException handled) { Thread.currentThread().interrupt(); return createNoResponseState(handled, "Interrupted while trying to communicate with locator with process id " + getPid()); } }
@Test public void fromJsonWithValidJsonStringReturnsLocatorState() { // given: valid json string String jsonString = createStatusJson(); // when: passed to fromJson LocatorState value = fromJson(jsonString); // then: return valid instance of LocatorState assertThat(value).isInstanceOf(LocatorState.class); assertThat(value.getClasspath()).isEqualTo(classpath); assertThat(value.getGemFireVersion()).isEqualTo(gemFireVersion); assertThat(value.getHost()).isEqualTo(host); assertThat(value.getJavaVersion()).isEqualTo(javaVersion); assertThat(value.getJvmArguments()).isEqualTo(getJvmArguments()); assertThat(value.getLogFile()).isEqualTo(logFile); assertThat(value.getMemberName()).isEqualTo(memberName); assertThat(value.getPid()).isEqualTo(pid); assertThat(value.getPort()).isEqualTo(port); assertThat(value.getServiceLocation()).isEqualTo(serviceLocation); assertThat(value.getStatus().getDescription()).isEqualTo(statusDescription); assertThat(value.getStatusMessage()).isEqualTo(statusMessage); assertThat(value.getTimestamp().getTime()).isEqualTo(timestampTime); assertThat(value.getUptime()).isEqualTo(uptime); assertThat(value.getWorkingDirectory()).isEqualTo(workingDirectory); }
locatorState = LocatorLauncher.LocatorState.fromDirectory(workingDirectory, memberName); String currentLocatorStatusMessage = locatorState.getStatusMessage(); if (locatorState.isStartingOrNotResponding() && !(StringUtils.isBlank(currentLocatorStatusMessage) || currentLocatorStatusMessage.equalsIgnoreCase(previousLocatorStatusMessage) && locatorState.isStartingOrNotResponding()); } finally { infoResult.addLine(locatorState.toString()); String locatorHostName; InetAddress bindAddr = locatorLauncher.getBindAddress(); int locatorPort = Integer.parseInt(locatorState.getPort());
locatorState = LocatorLauncher.LocatorState.fromJson(locatorProxy.status()); locatorProxy.shutDownMember(); } else { if (AbstractLauncher.Status.ONLINE.equals(locatorState.getStatus())) { getGfsh().logInfo( String.format(CliStrings.STOP_LOCATOR__STOPPING_LOCATOR_MESSAGE, locatorState.getWorkingDirectory(), locatorState.getServiceLocation(), locatorState.getMemberName(), locatorState.getPid(), locatorState.getLogFile()), null); while (locatorState.isVmWithProcessIdRunning()) { Gfsh.print("."); if (stopWatch.elapsedTimeMillis() > WAITING_FOR_STOP_TO_MAKE_PID_GO_AWAY_TIMEOUT_MILLIS) { return ResultModel.createError(locatorState.toString());
return LocatorState.fromJson(statusJson); } catch (ConnectionFailedException handled) {
private LocatorState fromJson(final String value) { return LocatorState.fromJson(value); }
public static LocatorState fromDirectory(final String workingDirectory, final String memberName) { LocatorState locatorState = new LocatorLauncher.Builder().setWorkingDirectory(workingDirectory).build().status(); if (ObjectUtils.equals(locatorState.getMemberName(), memberName)) { return locatorState; } return new LocatorState(new LocatorLauncher.Builder().build(), Status.NOT_RESPONDING); }