private ReleaseManager getReleaseManager() { if (releaseManager == null) { ReportNameProvider defaultNameProvider = new ReportNameProvider(NO_CONTEXT, ReportType.HTML, this); releaseManager = new ReleaseManager(environmentVariables, defaultNameProvider, this); } return releaseManager; }
private List<Release> extractReleasesOfTypeLevel(List<List<String>> releaseVersions) { List<Release> releases = new ArrayList<>(); Set<String> distinctReleases = getDistinct(releaseVersions); for (String release : distinctReleases) { if (releaseIsOfType(release, releaseTypes.get(0))) { List<Release> subReleases = extractSubReleasesOfLevel(releaseVersions, release, 1, Collections.EMPTY_LIST); String reportName = getReportNameProvider().forRelease(release); addUniqueRelease(releases, Release.ofVersion(release) .withChildren(subReleases) .withReport(reportName)); } } Collections.sort(releases); return releases; }
private void addUniqueRelease(List<Release> releases, Release release) { if (!containsReleaseWithName(releases,release.getName())) releases.add(release); }
public List<Release> getReleasesFrom(TestOutcomes testOutcomes) { List<Release> releases = requirementsService.getReleasesFromRequirements(); LOGGER.debug("Loaded Releases: " + releases); enrichOutcomesWithReleaseTags(testOutcomes.getOutcomes()); if (releases.isEmpty()) { releases = extractReleasesFromTestOutcomeAnnotations(testOutcomes); } return ImmutableList.copyOf(releases); }
private List<Release> extractSubReleasesOfLevel(List<List<String>> releaseVersions, String release, int level, List<Release> parents) { List<Release> subReleases = Lists.newArrayList(); if (level < releaseTypes.size()) { for (List<String> releaseVersionSet : releaseVersions) { if (releaseVersionSet.contains(release)) { for (String subRelease : releasesOfType(releaseTypes.get(level), releaseVersionSet)) { List<Release> ancestors = Lists.newArrayList(); ancestors.add(lightweightReleaseNamed(release)); List<Release> subSubReleases = extractSubReleasesOfLevel(releaseVersions, subRelease, level + 1, ancestors); String reportName = getReportNameProvider().forRelease(subRelease); addUniqueRelease(subReleases, Release.ofVersion(subRelease).withChildren(subSubReleases) .withReport(reportName) .withParents(ancestors)); } } } } Collections.sort(subReleases); return subReleases; }
private Release extractReleaseFor(TestTag releaseTag, TestOutcomes testOutcomes, int level, List<Release> parents) { Release release = new Release(releaseTag); String reportName = reportNameProvider.forRelease(release); release = release.withReport(reportName).withParents(parents); List<Release> ancestors = ancestorsFor(release); if (level < releaseTypes.size()) { String childReleaseType = releaseTypes.get(level); List<TestTag> childReleaseTags = testOutcomes.findMatchingTags() .withType("version") .withNameIn(matchingNames(childReleaseType)) .list(); List<Release> children = Lists.newArrayList(); for (TestTag tag : childReleaseTags) { children.add(extractReleaseFor(tag, testOutcomes.withTag(tag), level + 1, ancestors)); } release = release.withChildren(children); } return release; }
private List<Release> extractReleasesFromTestOutcomeAnnotations(TestOutcomes testOutcomes) { List<Release> releases = Lists.newArrayList(); List<TestTag> releaseTags = testOutcomes.findMatchingTags() .withType("version") .withNameIn(matchingNames(releaseTypes.get(0))) .list(); for (TestTag tag : releaseTags) { releases.add(extractReleaseFor(tag, testOutcomes.withTag(tag), 1, NO_PARENTS)); } return releases; }
private List<TestOutcome> outcomesForRelease(List<? extends TestOutcome> outcomes, String releaseName) { releaseManager.enrichOutcomesWithReleaseTags(outcomes); return outcomes.stream() .filter(outcome -> outcome.getVersions().contains(releaseName)) .collect(Collectors.toList()); }
@Override public List<Release> getReleasesFromRequirements() { if (releases == null) { if (getReleaseProvider().isPresent() && (getReleaseProvider().get().isActive())) { releases = getReleaseProvider().get().getReleases(); } else { List<List<String>> releaseVersions = getReleaseVersionsFrom(getRequirements()); releases = getReleaseManager().extractReleasesFrom(releaseVersions); } } return releases; }
public List<Release> extractReleasesFrom(List<List<String>> releaseVersions) { return extractReleasesOfTypeLevel(releaseVersions); }
public RequirementsOutcomes getReleasedRequirementsFor(Release release) { List<Requirement> matchingRequirements = Lists.newArrayList(); List<TestOutcome> matchingTestOutcomes = Lists.newArrayList(); // Add all test outcomes with a matching release List<RequirementOutcome> requirementOutcomes = releaseManager.enrichRequirementsOutcomesWithReleaseTags(getRequirementOutcomes()); for(RequirementOutcome outcome : requirementOutcomes) { Collection<String> releaseVersions = outcome.getReleaseVersions(); if (releaseVersions.contains(release.getName())) { List<TestOutcome> outcomesForRelease = outcomesForRelease(outcome.getTestOutcomes().getOutcomes(), release.getName()); if (!outcomesForRelease.isEmpty()) { matchingTestOutcomes.addAll(outcomesForRelease); matchingRequirements.add(outcome.getRequirement()); } } } matchingRequirements = removeRequirementsWithoutTestsFrom(matchingRequirements); return new RequirementsOutcomes(Lists.newArrayList(matchingRequirements), TestOutcomes.of(matchingTestOutcomes), issueTracking, environmentVariables, requirementsTagProviders); }
private List<Release> extractSubReleasesOfLevel(List<List<String>> releaseVersions, String release, int level, List<Release> parents) { List<Release> subReleases = Lists.newArrayList(); if (level < releaseTypes.size()) { for (List<String> releaseVersionSet : releaseVersions) { if (releaseVersionSet.contains(release)) { for (String subRelease : releasesOfType(releaseTypes.get(level), releaseVersionSet)) { List<Release> ancestors = Lists.newArrayList(); ancestors.add(lightweightReleaseNamed(release)); List<Release> subSubReleases = extractSubReleasesOfLevel(releaseVersions, subRelease, level + 1, ancestors); String reportName = getReportNameProvider().forRelease(subRelease); addUniqueRelease(subReleases, Release.ofVersion(subRelease).withChildren(subSubReleases) .withReport(reportName) .withParents(ancestors)); } } } } Collections.sort(subReleases); return subReleases; }
private Release extractReleaseFor(TestTag releaseTag, TestOutcomes testOutcomes, int level, List<Release> parents) { Release release = new Release(releaseTag); String reportName = reportNameProvider.forRelease(release); release = release.withReport(reportName).withParents(parents); List<Release> ancestors = ancestorsFor(release); if (level < releaseTypes.size()) { String childReleaseType = releaseTypes.get(level); List<TestTag> childReleaseTags = testOutcomes.findMatchingTags() .withType("version") .withNameIn(matchingNames(childReleaseType)) .list(); List<Release> children = Lists.newArrayList(); for (TestTag tag : childReleaseTags) { children.add(extractReleaseFor(tag, testOutcomes.withTag(tag), level + 1, ancestors)); } release = release.withChildren(children); } return release; }
private List<Release> extractReleasesFromTestOutcomeAnnotations(TestOutcomes testOutcomes) { List<Release> releases = new ArrayList<>(); List<TestTag> releaseTags = testOutcomes.findMatchingTags() .withType("version") .withNameIn(matchingNames(releaseTypes.get(0))) .list(); for (TestTag tag : releaseTags) { releases.add(extractReleaseFor(tag, testOutcomes.withTag(tag), 1, NO_PARENTS)); } return releases; }
public List<Release> getReleasesFrom(TestOutcomes testOutcomes) { List<Release> releases = requirementsService.getReleasesFromRequirements(); LOGGER.debug("Loaded Releases: " + releases); enrichOutcomesWithReleaseTags(testOutcomes.getOutcomes()); if (releases.isEmpty()) { releases = extractReleasesFromTestOutcomeAnnotations(testOutcomes); } return ImmutableList.copyOf(releases); }
public List<RequirementOutcome> enrichRequirementsOutcomesWithReleaseTags(List<? extends RequirementOutcome> outcomes) { List<RequirementOutcome> requirementOutcomes = Lists.newArrayList(); for (RequirementOutcome outcome : outcomes) { List<TestOutcome> enrichedOutcomes = enrichOutcomesWithReleaseTags(outcome.getTestOutcomes().getOutcomes()); requirementOutcomes.add(outcome.withTestOutcomes(TestOutcomes.of(enrichedOutcomes))); } return requirementOutcomes; }
@Override public List<Release> getReleasesFromRequirements() { if (releases == null) { if (getReleaseProvider().isPresent() && (getReleaseProvider().get().isActive())) { releases = getReleaseProvider().get().getReleases(); } else { List<List<String>> releaseVersions = getReleaseVersionsFrom(getRequirements()); releases = getReleaseManager().extractReleasesFrom(releaseVersions); } } return releases; }
public List<Release> extractReleasesFrom(List<List<String>> releaseVersions) { return extractReleasesOfTypeLevel(releaseVersions); }
public RequirementsOutcomes getReleasedRequirementsFor(Release release) { Set<Requirement> matchingRequirements = new HashSet<>(); Set<TestOutcome> matchingTestOutcomes = new HashSet<>(); // Add all test outcomes with a matching release List<RequirementOutcome> requirementOutcomes = releaseManager.enrichRequirementsOutcomesWithReleaseTags(getRequirementOutcomes()); for (RequirementOutcome outcome : requirementOutcomes) { Collection<String> releaseVersions = outcome.getReleaseVersions(); if (releaseVersions.contains(release.getName())) { List<TestOutcome> outcomesForRelease = outcomesForRelease(outcome.getTestOutcomes().getOutcomes(), release.getName()); if (!outcomesForRelease.isEmpty()) { matchingTestOutcomes.addAll(outcomesForRelease); matchingRequirements.add(outcome.getRequirement()); } } } matchingRequirements = removeRequirementsWithoutTestsFrom(matchingRequirements); return new RequirementsOutcomes(new ArrayList<>(matchingRequirements), TestOutcomes.of(matchingTestOutcomes), issueTracking, environmentVariables, requirementsTagProviders, reportNameProvider, overview).withoutUnrelatedRequirements(); }
private List<Release> extractReleasesOfTypeLevel(List<List<String>> releaseVersions) { List<Release> releases = Lists.newArrayList(); Set<String> distinctReleases = getDistinct(releaseVersions); for (String release : distinctReleases) { if (releaseIsOfType(release, releaseTypes.get(0))) { List<Release> subReleases = extractSubReleasesOfLevel(releaseVersions, release, 1, Collections.EMPTY_LIST); String reportName = getReportNameProvider().forRelease(release); addUniqueRelease(releases, Release.ofVersion(release) .withChildren(subReleases) .withReport(reportName)); } } Collections.sort(releases); return releases; }