@Nullable public ClientConfig loadConfigFromSettings() { ConfigPart parentPart = loadParentPartFromSettings(); if (!parentPart.hasError() && ServerConfig.isValidServerConfig(parentPart)) { try { ServerConfig serverConfig = ServerConfig.createFrom(parentPart); if (ClientConfig.isValidClientConfig(serverConfig, parentPart)) { return ClientConfig.createFrom(serverConfig, parentPart); } } catch (IllegalArgumentException e) { LOG.info("Should have not caused an error due to previous error check", e); } } return null; }
@Test void isValid() { assertFalse(ServerConfig.isValidServerConfig(null)); MockConfigPart part = new MockConfigPart(); part.withConfigProblems(createError()); assertFalse(ServerConfig.isValidServerConfig(part)); part.withConfigProblems(); assertFalse(ServerConfig.isValidServerConfig(part)); P4ServerName mockName = mock(P4ServerName.class); when(mockName.getFullPort()).thenReturn(""); part.withP4ServerName(mockName); assertFalse(ServerConfig.isValidServerConfig(part)); part.withConfigProblems(createWarning()) .withServerName("my-server"); assertFalse(ServerConfig.isValidServerConfig(part)); part.withUsername(""); assertFalse(ServerConfig.isValidServerConfig(part)); part.withUsername("abc"); assertTrue(ServerConfig.isValidServerConfig(part)); }
private ServerConfig(@NotNull ConfigPart part) { if (! isValidServerConfig(part)) { throw new IllegalArgumentException("Did not check validity before creating");
private void updateRoot(@NotNull P4VcsRootSettings settings, @NotNull VcsDirectoryMapping directoryMapping) { VirtualFile root = DirectoryMappingUtil.getDirectory(getProject(), directoryMapping); List<ConfigPart> parts = settings.getConfigParts(); MultipleConfigPart parentPart = new MultipleConfigPart("Project Registry", parts); if (LOG.isDebugEnabled()) { LOG.debug("Add mapping for " + root + " -> " + parentPart + " (directory mapping dir [" + directoryMapping.getDirectory() + "])"); } try { if (ServerConfig.isValidServerConfig(parentPart)) { ServerConfig serverConfig = ServerConfig.createFrom(parentPart); if (ClientConfig.isValidClientConfig(serverConfig, parentPart)) { ClientConfig clientConfig = ClientConfig.createFrom(serverConfig, parentPart); addClientConfig(clientConfig, root); return; } if (LOG.isDebugEnabled()) { LOG.debug(root + ": skipping invalid config " + parentPart); } } else if (LOG.isDebugEnabled()) { LOG.debug(root + ": skipping invalid config " + parentPart); } } catch (IllegalArgumentException e) { LOG.info("Problem with config under " + root + ": " + parentPart, e); } // Invalid config. removeClientConfigAt(root); }
parentPart.reload(); if (!parentPart.hasError()) { if (ServerConfig.isValidServerConfig(parentPart)) { LOG.debug("No errors in server configuration"); try {