private boolean internalHasChangedSince(MaterialRevisions original) { if (revisions.size() != original.revisions.size()) { return true; } for (MaterialRevision revision : revisions) { MaterialRevision originalRevision = original.findRevisionFor(revision.getMaterial()); if (originalRevision == null || revision.hasChangedSince(originalRevision)) { return true; } } return false; }
boolean hasAnyUnsharedMaterialChanged(PipelineConfigDependencyGraph dependencyGraph, MaterialRevisions originalMaterialRevisions) { for (MaterialConfig materialConfig : dependencyGraph.unsharedMaterialConfigs()) { MaterialRevision revision = originalMaterialRevisions.findRevisionFor(materialConfig); if (revision == null) { String message = String.format("Couldn't find material-revision for material '%s' while auto-scheduling pipeline named '%s'", materialConfig, pipelineName); RuntimeException exception = new NullPointerException(message); LOGGER.error(message, exception); throw exception; } if (revision.isChanged()) { return true; } } return false; }
public void updateRevisionChangedStatus(MaterialRevisions original) { for (MaterialRevision materialRevision : this) { materialRevision.updateRevisionChangedStatus(original.findRevisionFor(materialRevision.getMaterial())); } }
private MaterialRevisions restoreOriginalOrder(MaterialRevisions actualRevisions, MaterialRevisions computedRevisions) { MaterialRevisions orderedComputedRevisions = new MaterialRevisions(); for (MaterialRevision actualRevision : actualRevisions) { orderedComputedRevisions.addRevision(computedRevisions.findRevisionFor(actualRevision.getMaterial())); } return orderedComputedRevisions; }
private void fillUpNonOverridableRevisions(MaterialRevisions actualRevisions, MaterialRevisions computedRevisions) { for (int i = 0; i < actualRevisions.numberOfRevisions(); i++) { MaterialRevision actualRev = actualRevisions.getMaterialRevision(i); MaterialRevision computedRevision = computedRevisions.findRevisionFor(actualRev.getMaterial()); if (computedRevision == null) { computedRevisions.addRevision(actualRev); } } }
private MaterialRevisions filter(MaterialRevisions other) { MaterialRevisions filtered = new MaterialRevisions(); for (MaterialRevision myRevision : revisions) { MaterialRevision originalRevision = other.findRevisionFor(myRevision.getMaterial()); filtered.addRevision(myRevision.filter(originalRevision)); } return filtered; }
public boolean isSameAs(MaterialRevisions other) { if (!getMaterials().equals(other.getMaterials())) { return false; } for (MaterialRevision materialRevision : revisions) { MaterialRevision peer = other.findRevisionFor(materialRevision.getMaterial()); if (peer == null) { continue; } if (!materialRevision.hasSameHeadAs(peer)) { return false; } } return true; }
public MaterialRevisions findRevisionsSince(MaterialRevisions peggedRevisions, Materials newMaterials, MaterialRevisions previous, MaterialRevisions latestRevisions) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : newMaterials) { MaterialRevision previousRevision = previous.findRevisionFor(material); if (previousRevision == null) { materialRevisions.addRevision(latestRevisions.findRevisionFor(material)); } else { Material previousMaterial = previousRevision.getMaterial(); if (ensureHasRevisionForMaterial(peggedRevisions, materialRevisions, previousMaterial)) { continue; } previousMaterial = previousMaterial instanceof ScmMaterial ? newMaterials.byFolder(previousMaterial.getFolder()) : previousMaterial; List<Modification> newModifications = materialRepository.findModificationsSince(previousMaterial, previousRevision); MaterialRevision newMaterialRevision = previousRevision.latestChanges(material, previousRevision.getModifications(), newModifications); materialRevisions.addRevision(newMaterialRevision); } } return materialRevisions; }
} else if (latestModification.findRevisionFor(material.config()) .hasChangedSince(lastParseRevision)) {
private void assertRevisions(BuildAssignment buildAssignment, MaterialRevision expectedRevision) { MaterialRevision actualRevision = buildAssignment.materialRevisions().findRevisionFor(expectedRevision.getMaterial()); assertThat(actualRevision.getMaterial(), is(expectedRevision.getMaterial())); assertThat(actualRevision.getModifications().size(), is(expectedRevision.getModifications().size())); for (int i = 0; i < actualRevision.getModifications().size(); i++) { final Modification actualModification = actualRevision.getModifications().get(i); final Modification expectedModification = expectedRevision.getModifications().get(i); assertThat(actualModification.getRevision(), is(expectedModification.getRevision())); assertThat(actualModification.getModifiedFiles().isEmpty(), is(true)); } }