/** * Returns true if the repository is of type {@link GroupType} * * @since 3.6.1 */ protected boolean isGroupRepository(final Repository repository) { return groupType.equals(repository.getType()); }
@Override public void cleanup(final BooleanSupplier cancelledCheck) { AtomicLong totalDeletedCount = new AtomicLong(0L); repositoryManager.browse().forEach(repository -> { if (!cancelledCheck.getAsBoolean() && !repository.getType().equals(groupType)) { totalDeletedCount.addAndGet(this.cleanup(repository, cancelledCheck)); } }); log.info("{} components cleaned up across all repositories", totalDeletedCount.get()); }
/** * Processes this facet's associated repository as a group repository, iterating over its members. */ private void processAsGroup(final MavenGroupFacet groupFacet, final int numberOfDays) { groupFacet.members().stream() .filter(member -> hostedType.equals(member.getType()) || groupType.equals(member.getType())) .forEach(member -> member.facet(PurgeUnusedSnapshotsFacet.class).purgeUnusedSnapshots(numberOfDays)); }
private List<Repository> getRepositories(final Repository repository) { checkNotNull(repository); if (groupType.equals(repository.getType())) { return repository.facet(GroupFacet.class).leafMembers(); } return ImmutableList.of(repository); }
@Override public List<Repository> leafMembers() { Set<Repository> leafMembers = new LinkedHashSet<>(); for (Repository repository : members()) { if (groupType.equals(repository.getType())) { leafMembers.addAll(repository.facet(GroupFacet.class).leafMembers()); } else { leafMembers.add(repository); } } return new ArrayList<>(leafMembers); }
private boolean containsGroup(Repository root, String repositoryName, Set<Repository> checkedGroups) { return root.facet(GroupFacet.class).members().stream().anyMatch((repository) -> { return checkedGroups.add(repository) && (repository.getName().equals(repositoryName) || (groupType.equals(repository.getType()) && containsGroup(repository, repositoryName, checkedGroups))); }); }
private List<Repository> allMembers(final Repository repository) { if (groupType.equals(repository.getType())) { return repository.facet(GroupFacet.class).allMembers(); } else { return Collections.singletonList(repository); } }
/** * Iterate over group members which may contain snapshots and recursively apply the snapshot removal. */ private void processGroup(final MavenGroupFacet groupFacet, final RemoveSnapshotsConfig config) { groupFacet.members().stream() .filter(member -> isSnapshotRepo(member) || groupType.equals(member.getType())) .forEach(member -> member.facet(RemoveSnapshotsFacet.class).removeSnapshots(config)); }
@Override protected boolean appliesTo(final Repository repository) { return maven2Format.equals(repository.getFormat()) && hostedType.equals(repository.getType()); }
protected boolean shouldRepairRepository(final Repository repository) { return repository.getFormat().equals(format) && repository.getType().equals(type); }
ConstraintViolation<?> validateGroupDoesNotContainItself(String repositoryName, Config config) { Set<Repository> checkedGroups = new HashSet<>(); for (String memberName : config.memberNames) { Repository repository = repositoryManager.get(memberName); if (repository.getName().equals(repositoryName) || (groupType.equals(repository.getType()) && containsGroup(repository, repositoryName, checkedGroups))) { return constraintViolationFactory.createViolation(P_ATTRIBUTES + "." + CONFIG_KEY + ".memberNames", "Group '" + repository.getName() + "' has a member repository '" + repositoryName + "' and cannot be added to this list."); } } return null; }
@Override @Guarded(by = STARTED) public void purgeUnusedSnapshots(final int numberOfDays) { checkArgument(numberOfDays > 0, "Number of days must be greater than zero"); log.info("Purging unused snapshots {} days or older from repository {}", numberOfDays, getRepository().getName()); if (groupType.equals(getRepository().getType())) { processAsGroup(facet(MavenGroupFacet.class), numberOfDays); } else if (hostedType.equals(getRepository().getType())) { processAsHosted(numberOfDays); } else { log.debug("Skipping repository {}, is not group or hosted", getRepository().getName()); } }
storageTx.begin(); List<Repository> previewRepositories; if (repositories.size() == 1 && groupType.equals(repository.getType())) { previewRepositories = repository.facet(GroupFacet.class).leafMembers();
Set<GAV> metadataUpdateRequired = new HashSet<>(); try { if (groupType.equals(repository.getType())) { processGroup(repository.facet(MavenGroupFacet.class), config);