@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 oldestRevision(Modifications modifications) { if (modifications.size() > 1) { LOGGER.warn( String.format( "Dependency material %s has multiple modifications", this.getDisplayName())); } Modification oldestModification = modifications.get(modifications.size() - 1); String revision = oldestModification.getRevision(); return DependencyMaterialRevision.create(revision, oldestModification.getPipelineLabel()); }
@Test public void shouldDelegateToMaterialRepository_getModificationsFor() { GitMaterialConfig materialConfig = new GitMaterialConfig("http://test.com"); GitMaterialInstance gitMaterialInstance = new GitMaterialInstance("http://test.com", null, null, "flyweight"); Pagination pagination = Pagination.pageStartingAt(0, 10, 10); Modifications modifications = new Modifications(); modifications.add(new Modification("user", "comment", "email", new Date(), "revision")); when(materialRepository.findMaterialInstance(materialConfig)).thenReturn(gitMaterialInstance); when(materialRepository.getModificationsFor(gitMaterialInstance, pagination)) .thenReturn(modifications); Modifications gotModifications = materialService.getModificationsFor(materialConfig, pagination); assertThat(gotModifications, is(modifications)); }
public void insertLatestOrNewModifications( Material material, MaterialInstance materialInstance, File folder, Modifications list) { List<Modification> newChanges = list.isEmpty() ? materialChecker.findLatestModification(folder, material, subprocessExecutionContext) : materialService.modificationsSince( material, folder, list.latestRevision(material), subprocessExecutionContext); if (newChanges.isEmpty()) { if (LOGGER.isDebugEnabled()) { LOGGER.debug( String.format( "[Material Update] Did not find any new modifications for material '%s' with flyweight '%s' using working directory '%s'", material, material.getFingerprint(), folder.getAbsolutePath())); } } else { LOGGER.info( String.format( "[Material Update] Found '%s' modifications for material '%s' with flyweight '%s' using working directory '%s'", newChanges.size(), material, material.getFingerprint(), folder.getAbsolutePath())); materialRepository.saveModifications(materialInstance, newChanges); } }