@Override public String getRevisionUrl() { return getRevision(); }
@Override public List<Modification> modificationsSince(final PackageMaterial material, File baseDir, final Revision revision, SubprocessExecutionContext execCtx) { PackageMaterialRevision packageMaterialRevision = (PackageMaterialRevision) revision; PackageRevision previouslyKnownRevision = new PackageRevision(packageMaterialRevision.getRevision(), packageMaterialRevision.getTimestamp(), null, packageMaterialRevision.getData()); PackageConfiguration packageConfiguration = buildPackageConfigurations(material.getPackageDefinition()); RepositoryConfiguration repositoryConfiguration = buildRepositoryConfigurations(material.getPackageDefinition().getRepository()); PackageRevision packageRevision = packageRepositoryExtension.latestModificationSince(material.getPluginId(), packageConfiguration, repositoryConfiguration, previouslyKnownRevision); return getModifications(packageRevision); }
@Override public Revision oldestRevision(Modifications modifications) { if (modifications.isEmpty()) { return new NullRevision(); } Modification modification = modifications.get(0); return new PackageMaterialRevision(modification.getRevision(), modification.getModifiedTime()); }
@Test public void shouldFindPackageMaterialRevisionEqual() { Date date = new Date(); PackageMaterialRevision revisionOne = new PackageMaterialRevision("go-agent-12.1.0", date); PackageMaterialRevision revisionTwo = new PackageMaterialRevision("go-agent-12.1.0", date); assertThat(revisionOne.equals(revisionTwo), is(true)); } }
@Test public void shouldGetLatestModificationsForPackageMaterial() { Date timestamp = new Date(); String revisionString = "123"; HashMap<String, String> data = new HashMap<>(); data.put("1", "one"); data.put("2", "two"); Modification modification = new Modification(null, null, null, timestamp, revisionString, JsonHelper.toJsonString(data)); Modifications modifications = new Modifications(modification); Revision revision = modifications.latestRevision(new PackageMaterial()); assertThat(revision instanceof PackageMaterialRevision, is(true)); PackageMaterialRevision packageMaterialRevision = (PackageMaterialRevision) revision; assertThat(packageMaterialRevision.getRevision(), is(revisionString)); assertThat(packageMaterialRevision.getTimestamp(), is(timestamp)); assertThat(packageMaterialRevision.getData().size(), is(data.size())); assertThat(packageMaterialRevision.getData().get("1"), is(data.get("1"))); assertThat(packageMaterialRevision.getData().get("2"), is(data.get("2"))); }
@Test public void shouldGetJsonRepresentationForPackageMaterial() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = create("repo-id", "repo-name", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); Map<String, String> jsonMap = new LinkedHashMap<>(); material.toJson(jsonMap, new PackageMaterialRevision("rev123", new Date())); assertThat(jsonMap.get("scmType"), is("Package")); assertThat(jsonMap.get("materialName"), is("repo-name:package-name")); assertThat(jsonMap.get("action"), is("Modified")); assertThat(jsonMap.get("location"), is(material.getUriForDisplay())); }
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); }