private RepositoryEnvironmentConfigurations getRepositoryConfiguration(String selectedOrganizationalUnit) { final RepositoryEnvironmentConfigurations configuration = new RepositoryEnvironmentConfigurations(); configuration.setUserName(view.getUsername().trim()); configuration.setPassword(view.getPassword().trim()); configuration.setOrigin(view.getGitUrl()); configuration.setSpace(selectedOrganizationalUnit); return configuration; }
public Repository updateManagedStatus(final Repository repository, final boolean managed) { final RepositoryEnvironmentConfigurations config = new RepositoryEnvironmentConfigurations(); config.setManaged(managed); final Repository updatedRepo = repositoryService.updateRepositoryConfiguration(repository, config); repositoryUpdatedEvent.fire(new RepositoryEnvironmentUpdatedEvent(updatedRepo)); return updatedRepo; } }
public void importProjects(Path actualTarget) { OrganizationalUnit ou = ouService.createOrganizationalUnit(OU_NAME, "org.migration", Collections.emptyList(), Collections.singletonList(new Contributor(OU_OWNER, ContributorType.OWNER))); String repositoryURL = actualTarget.toUri().toString(); RepositoryEnvironmentConfigurations configurations = new RepositoryEnvironmentConfigurations(); Map<String, Object> configMap = configurations.getConfigurationMap(); configMap.put(EnvironmentParameters.AVOID_INDEX, "true"); configMap.put("origin", repositoryURL); Repository repo = repoService.createRepository(ou, GitRepository.SCHEME.toString(), TMP_REPO_ALIAS, configurations); WorkspaceProject project = projectService.resolveProject(repo); migrationService.migrate(project); repoService.removeRepository(ou.getSpace(), TMP_REPO_ALIAS); }
private RepositoryEnvironmentConfigurations subdirectoryCloneConfiguration(final Repository legacyRepository, final Partition root, final List<Module> modules) { final RepositoryEnvironmentConfigurations configurations = new RepositoryEnvironmentConfigurations(); configurations.setInit(false); configurations.setOrigin(getNiogitRepoPath(legacyRepository)); final String rootWithoutRepoAndSpace = root.branchlessPath.replaceFirst("^[^/]+/[^/]+/", ""); configurations.setSubdirectory(rootWithoutRepoAndSpace); configurations.setMirror(false); final List<String> branches = existingBranchesOf(modules); configurations.setBranches(branches); return configurations; }
password); } else { final RepositoryEnvironmentConfigurations configurations = new RepositoryEnvironmentConfigurations(); configurations.setInit(false); configurations.setOrigin(origin); configurations.setBranches(getBranches(rootPath, importProject.getRoot())); Credentials credentials = importProject.getCredentials(); if (credentials != null && credentials.getUsername() != null && credentials.getPassword() != null) { configurations.setUserName(credentials.getUsername()); configurations.setPassword(credentials.getPassword()); configurations.setMirror(false); final String subdirectoryPath = pathUtil.stripRepoNameAndSpace(pathUtil.stripProtocolAndBranch(importProject.getRoot().toURI())); configurations.setSubdirectory(subdirectoryPath);
final RepositoryEnvironmentConfigurations configuration = new RepositoryEnvironmentConfigurations(); if (cloneProjectRequest.getUserName() != null && !"".equals(cloneProjectRequest.getUserName())) { configuration.setUserName(cloneProjectRequest.getUserName()); configuration.setPassword(cloneProjectRequest.getPassword()); configuration.setInit(false); configuration.setMirror(false); configuration.setOrigin(cloneProjectRequest.getGitURL());
@Test public void testCloneManagedRepository() { when(view.isGitUrlEmpty()).thenReturn(false); when(repositoryPreferences.isOUMandatory()).thenReturn(false); when(view.getGitUrl()).thenReturn(REPO_URL); when(view.getName()).thenReturn(REPO_NAME); presenter.handleCloneClick(); verifyRepoCloned(true); verify(repoService, times(1)).createRepository(any(OrganizationalUnit.class), anyString(), anyString(), repositoryEnvironmentConfigurationsArgumentCaptor.capture()); final RepositoryEnvironmentConfigurations configurations = repositoryEnvironmentConfigurationsArgumentCaptor.getValue(); assertEquals(USERNAME, configurations.getUserName()); assertEquals(PASSWORD, configurations.getPassword()); assertEquals(REPO_URL, configurations.getOrigin()); }
@Test public void testCloneManagedRepository() { when(view.isGitUrlEmpty()).thenReturn(false); when(repositoryPreferences.isOUMandatory()).thenReturn(false); when(view.getGitUrl()).thenReturn(REPO_URL); when(view.getName()).thenReturn(REPO_NAME); when(view.isManagedRepository()).thenReturn(true); presenter.handleCloneClick(); verifyRepoCloned(true); verify(repoService, times(1)).createRepository(any(OrganizationalUnit.class), anyString(), anyString(), repositoryEnvironmentConfigurationsArgumentCaptor.capture()); final RepositoryEnvironmentConfigurations configurations = repositoryEnvironmentConfigurationsArgumentCaptor.getValue(); assertEquals(USERNAME, configurations.getUserName()); assertEquals(PASSWORD, configurations.getPassword()); assertEquals(REPO_URL, configurations.getOrigin()); assertTrue(configurations.isManaged()); }
private Repository getRepository(final OrganizationalUnit targetOU, final String newRepositoryName) { return repositoryService.createRepository(targetOU, GitRepository.SCHEME.toString(), makeSafeRepositoryName(newRepositoryName), new RepositoryEnvironmentConfigurations()); }
@Test public void createOnlyTwoRepositories() throws Exception { verify(repositoryService, times(2)).createRepository(any(OrganizationalUnit.class), eq(GitRepository.SCHEME.toString()), anyString(), configsCaptor.capture()); final List<RepositoryEnvironmentConfigurations> allValues = configsCaptor.getAllValues(); final Set<String> observedSubdirectories = new HashSet<>(); allValues.forEach(configs -> { assertEquals(NIOGIT_PATH, assertInstanceOf(configs.getOrigin(), String.class)); assertFalse(assertInstanceOf(configs.getInit(), Boolean.class)); assertFalse(assertInstanceOf(configs.getMirror(), Boolean.class)); final String subdirectory = assertInstanceOf(configs.getSubdirectory(), String.class); observedSubdirectories.add(subdirectory); @SuppressWarnings("unchecked") final List<String> branches = assertInstanceOf(configs.getBranches(), List.class); final List<String> expectedBranches; if (subdirectory.equals("legacyProject1")) { expectedBranches = Arrays.asList("legacyMasterBranch", "legacyDevBranch"); } else if (subdirectory.equals("legacyProject2")) { expectedBranches = Arrays.asList("legacyDevBranch"); } else { throw new AssertionError("Unrecognized subdirectory: " + subdirectory); } verify(service,times(2)).cleanupOrigin(any()); assertEquals("Unexpected branches for subdirectory " + subdirectory, new HashSet<>(expectedBranches), new HashSet<>(branches)); }); assertEquals(new HashSet<>(Arrays.asList("legacyProject1", "legacyProject2")), observedSubdirectories); }
final RepositoryEnvironmentConfigurations configs = configsCaptor.getValue(); assertEquals(repoURL, configs.getOrigin()); assertNull(configs.getSubdirectory()); verify(projectService).resolveProject(repository);
@Test public void repoConfigurationHasOriginAndAvoidIndex() throws Exception { service.importProjects(target); verify(repoService).createRepository(any(), any(), any(), configsCaptor.capture()); RepositoryEnvironmentConfigurations configs = configsCaptor.getValue(); assertEquals(target.toUri().toString(), assertValue(configs.getOrigin(), String.class)); assertEquals("true", configs.getConfigurationMap().get(AVOID_INDEX)); }
@Override public Repository createRepository(final OrganizationalUnit organizationalUnit, final String scheme, final String alias, final RepositoryEnvironmentConfigurations repositoryEnvironmentConfigurations, final Collection<Contributor> contributors) throws RepositoryAlreadyExistsException { try { repositoryEnvironmentConfigurations.setSpace(organizationalUnit.getName()); Space space = spacesAPI.getSpace(organizationalUnit.getName()); String newAlias = createFreshRepositoryAlias(alias, space); final Repository repository = createRepository(scheme, newAlias, new Space(organizationalUnit.getName()), repositoryEnvironmentConfigurations, contributors); if (organizationalUnit != null && repository != null) { organizationalUnitService.addRepository(organizationalUnit, repository); } metadataStore.write(newAlias, (String) repositoryEnvironmentConfigurations.getOrigin()); return repository; } catch (final Exception e) { logger.error("Error during create repository", e); throw ExceptionUtilities.handleException(e); } }
@Override public Repository createRepository(final OrganizationalUnit organizationalUnit, final String scheme, final String alias, final RepositoryEnvironmentConfigurations repositoryEnvironmentConfigurations) throws RepositoryAlreadyExistsException { try { final Repository repository = createRepository(scheme, alias, repositoryEnvironmentConfigurations); if (organizationalUnit != null && repository != null) { organizationalUnitService.addRepository(organizationalUnit, repository); } metadataStore.write(alias, (String) repositoryEnvironmentConfigurations.getOrigin()); return repository; } catch (final Exception e) { logger.error("Error during create repository", e); throw ExceptionUtilities.handleException(e); } }
configurationService.startBatch(); for (final Map.Entry<String, Object> entry : repositoryEnvironmentConfigurations.getConfigurationMap().entrySet()) {
private RepositoryEnvironmentConfigurations subdirectoryCloneConfiguration(final Repository legacyRepository, final Partition root, final List<Module> modules) { final RepositoryEnvironmentConfigurations configurations = new RepositoryEnvironmentConfigurations(); configurations.setInit(false); configurations.setOrigin(getNiogitRepoPath(legacyRepository)); final String rootWithoutRepoAndSpace = root.branchlessPath.replaceFirst("^[^/]+/[^/]+/", ""); configurations.setSubdirectory(rootWithoutRepoAndSpace); configurations.setMirror(false); final List<String> branches = existingBranchesOf(modules); configurations.setBranches(branches); return configurations; }
@Test public void testCloneNotManagedRepository() { when(view.isGitUrlEmpty()).thenReturn(false); when(repositoryPreferences.isOUMandatory()).thenReturn(false); when(view.getGitUrl()).thenReturn(REPO_URL); when(view.getName()).thenReturn(REPO_NAME); presenter.handleCloneClick(); verifyRepoCloned(true); verify(repoService, times(1)).createRepository(any(OrganizationalUnit.class), anyString(), anyString(), repositoryEnvironmentConfigurationsArgumentCaptor.capture()); final RepositoryEnvironmentConfigurations configurations = repositoryEnvironmentConfigurationsArgumentCaptor.getValue(); assertEquals(USERNAME, configurations.getUserName()); assertEquals(PASSWORD, configurations.getPassword()); assertEquals(REPO_URL, configurations.getOrigin()); }
@Test public void testCloneNotManagedRepository() { when(view.isGitUrlEmpty()).thenReturn(false); when(repositoryPreferences.isOUMandatory()).thenReturn(false); when(view.getGitUrl()).thenReturn(REPO_URL); when(view.getName()).thenReturn(REPO_NAME); when(view.isManagedRepository()).thenReturn(false); presenter.handleCloneClick(); verifyRepoCloned(true); verify(repoService, times(1)).createRepository(any(OrganizationalUnit.class), anyString(), anyString(), repositoryEnvironmentConfigurationsArgumentCaptor.capture()); final RepositoryEnvironmentConfigurations configurations = repositoryEnvironmentConfigurationsArgumentCaptor.getValue(); assertEquals(USERNAME, configurations.getUserName()); assertEquals(PASSWORD, configurations.getPassword()); assertEquals(REPO_URL, configurations.getOrigin()); assertFalse(configurations.isManaged()); }
private Repository createRepository(final OrganizationalUnit organizationalUnit, final POM pom, final List<Contributor> contributors) { if (contributors == null) { return repositoryService.createRepository(organizationalUnit, "git", checkNotNull("project name in pom model", pom.getName()), new RepositoryEnvironmentConfigurations()); } else { return repositoryService.createRepository(organizationalUnit, "git", checkNotNull("project name in pom model", pom.getName()), new RepositoryEnvironmentConfigurations(), contributors); } }
@Test public void createOnlyTwoRepositories() throws Exception { verify(repositoryService, times(2)).createRepository(any(OrganizationalUnit.class), eq(GitRepository.SCHEME.toString()), anyString(), configsCaptor.capture()); final List<RepositoryEnvironmentConfigurations> allValues = configsCaptor.getAllValues(); final Set<String> observedSubdirectories = new HashSet<>(); allValues.forEach(configs -> { assertEquals(NIOGIT_PATH, assertInstanceOf(configs.getOrigin(), String.class)); assertFalse(assertInstanceOf(configs.getInit(), Boolean.class)); assertFalse(assertInstanceOf(configs.getMirror(), Boolean.class)); final String subdirectory = assertInstanceOf(configs.getSubdirectory(), String.class); observedSubdirectories.add(subdirectory); @SuppressWarnings("unchecked") final List<String> branches = assertInstanceOf(configs.getBranches(), List.class); final List<String> expectedBranches; if (subdirectory.equals("legacyProject1")) { expectedBranches = Arrays.asList("legacyMasterBranch", "legacyDevBranch"); } else if (subdirectory.equals("legacyProject2")) { expectedBranches = Arrays.asList("legacyDevBranch"); } else { throw new AssertionError("Unrecognized subdirectory: " + subdirectory); } verify(service,times(2)).cleanupOrigin(any()); assertEquals("Unexpected branches for subdirectory " + subdirectory, new HashSet<>(expectedBranches), new HashSet<>(branches)); }); assertEquals(new HashSet<>(Arrays.asList("legacyProject1", "legacyProject2")), observedSubdirectories); }