public Modification getModification(int i) { return modifications.get(i); }
public Modification getLatestModification() { assertHasModifications(); return modifications.get(0); }
public Date getDateOfLatestModification() { if (modifications.size() > 0) { return modifications.get(0).getModifiedTime(); } else { return null; } }
public Modification getOldestModification() { assertHasModifications(); return modifications.get(modifications.size() - 1); }
public static Revision oldestRevision(Modifications modifications) { if (modifications.isEmpty()) { throw new RuntimeException("Cannot find oldest revision."); } else { return new StringRevision(modifications.get(modifications.size()-1).getRevision()); } }
public Revision oldestRevision(Modifications modifications) { if (modifications.size() > 1) { LOGGER.warn("Dependency material {} has multiple modifications", this.getDisplayName()); } Modification oldestModification = modifications.get(modifications.size() - 1); String revision = oldestModification.getRevision(); return DependencyMaterialRevision.create(revision, oldestModification.getPipelineLabel()); }
@Override public Revision oldestRevision(Modifications modifications) { if (modifications.isEmpty()) { return new NullRevision(); } Modification modification = modifications.get(0); return new PackageMaterialRevision(modification.getRevision(), modification.getModifiedTime()); }
@Override public Revision oldestRevision(Modifications modifications) { if (modifications.isEmpty()) { return new NullRevision(); } Modification modification = modifications.get(modifications.size() - 1); return new PluggableSCMMaterialRevision(modification.getRevision(), modification.getModifiedTime()); }
public Revision latestRevision(Material material) { if (material instanceof SvnMaterial) { String revision = Modification.latestRevision(this).getRevision(); return new SubversionRevision(revision); } if (material instanceof DependencyMaterial) { Modification latestModification = this.get(0); String revision = latestModification.getRevision(); return DependencyMaterialRevision.create(revision, latestModification.getPipelineLabel()); } if (material instanceof PackageMaterial) { Modification latestModification = this.get(0); return new PackageMaterialRevision(latestModification.getRevision(), latestModification.getModifiedTime(), latestModification.getAdditionalDataMap()); } if (material instanceof PluggableSCMMaterial) { Modification latestModification = this.get(0); return new PluggableSCMMaterialRevision(latestModification.getRevision(), latestModification.getModifiedTime(), latestModification.getAdditionalDataMap()); } return Modification.latestRevision(this); }
Modification findLatestModification(final MaterialInstance expandedInstance) { Modifications modifications = cachedModifications(expandedInstance); if (modifications != null && !modifications.isEmpty()) { return modifications.get(0); } String cacheKey = latestMaterialModificationsKey(expandedInstance); synchronized (cacheKey) { Modification modification = (Modification) getHibernateTemplate().execute((HibernateCallback) session -> { Query query = session.createQuery("FROM Modification WHERE materialId = ? ORDER BY id DESC"); query.setMaxResults(1); query.setLong(0, expandedInstance.getId()); return query.uniqueResult(); }); goCache.put(cacheKey, new Modifications(modification)); return modification; } }
@Test public void shouldReturnOnlyLatestModificationIfNoNewChangesAvailable() throws Exception { Modification modificationForRevisionTip = new Modification("Unknown", "Unknown", null, new Date(), REVISION_2.getRevision()); Modification olderModification = new Modification("Unknown", "Unknown", null, new Date(), REVISION_0.getRevision()); MaterialRevision revision = new MaterialRevision(hgMaterial, modificationForRevisionTip, olderModification); MaterialRevision unchangedRevision = findNewRevision(revision, hgMaterial, workingFolder, new TestSubprocessExecutionContext()); assertThat(unchangedRevision.getModifications().size(), is(1)); assertThat(unchangedRevision.getModifications().get(0), is(modificationForRevisionTip)); }
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)); } }