public Set<Material> toMaterials(Set<MaterialConfig> materialConfigs) { HashSet<Material> materials = new HashSet<>(); for (MaterialConfig materialConfig : materialConfigs) { materials.add(toMaterial(materialConfig)); } return materials; } }
private void updateSchedulableMaterials(boolean forceLoad) { if (forceLoad || schedulableMaterials == null) { schedulableMaterials = materialConfigConverter.toMaterials(goConfigService.getSchedulableSCMMaterials()); } } }
public static BuildCause buildCauseForOneModifiedFile(PipelineConfig pipelineConfig, String revision, String comment, String committer) { return BuildCause.createWithModifications(modifyOneFile(new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs()), revision, comment, committer), ""); }
Material material = new MaterialConfigConverter().toMaterial(materialConfig); Modification modification = materialRepository.findModificationWithRevision(material, revision);
@Test public void shouldThrowIfYouTryToFindTheInstanceTypeOfSomeRandomConfigType() throws Exception { MaterialConfigConverter converter = new MaterialConfigConverter(); try { converter.getInstanceType(new TestingMaterialConfig()); fail("Should have thrown up"); } catch (Exception e) { assertEquals("Unexpected type: TestingMaterialConfig", e.getMessage()); } } }
public MaterialInstance findMaterialInstance(MaterialConfig materialConfig) { String cacheKey = materialKey(materialConfig.getFingerprint()); MaterialInstance materialInstance = (MaterialInstance) goCache.get(cacheKey); if (materialInstance == null) { synchronized (cacheKey) { materialInstance = (MaterialInstance) goCache.get(cacheKey); if (materialInstance == null) { DetachedCriteria hibernateCriteria = DetachedCriteria.forClass(materialConfigConverter.getInstanceType(materialConfig)); for (Map.Entry<String, Object> property : materialConfig.getSqlCriteria().entrySet()) { if (!property.getKey().equals(AbstractMaterial.SQL_CRITERIA_TYPE)) { //type is polymorphic mapping discriminator if (property.getValue() == null) { hibernateCriteria.add(isNull(property.getKey())); } else { hibernateCriteria.add(eq(property.getKey(), property.getValue())); } } } materialInstance = (MaterialInstance) firstResult(hibernateCriteria); if (materialInstance != null) { goCache.put(cacheKey, materialInstance); } } } } return materialInstance;//TODO: clone me, caller may mutate }
public static BuildCause modifyNoFiles(PipelineConfig config) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(config.materialConfigs())) { ArrayList<Modification> list = new ArrayList<>(); list.add(new Modification("no-user", "comment", "dummy-email", new Date(), "Dummy Modification"+ UUID.randomUUID().toString())); materialRevisions.addRevision(material, list); } return BuildCause.createWithModifications(materialRevisions, ""); }
public static PipelineInstanceModels pipelineHistory(PipelineConfig pipelineConfig, Date scheduleDate, Date modificationDate, String revision, String committer, String commitMessage, String commiterEmail, String commitedFileName, String dirModified, String label) { PipelineInstanceModels history = PipelineInstanceModels.createPipelineInstanceModels(); Modification modification = new Modification(committer, commitMessage, commiterEmail, modificationDate, revision); modification.createModifiedFile(commitedFileName, dirModified, ModifiedAction.added); MaterialRevisions revisions = new MaterialRevisions(); Material material = new MaterialConfigConverter().toMaterial(pipelineConfig.materialConfigs().first()); material.setId(10); revisions.addRevision(material, modification); BuildCause buildCause = BuildCause.createManualForced(revisions, Username.ANONYMOUS); PipelineInstanceModel item = PipelineInstanceModel.createPipeline(CaseInsensitiveString.str(pipelineConfig.name()), -1, label, buildCause, stageHistory(pipelineConfig, scheduleDate)); item.setCounter(1); item.setId(1); item.setComment("build comment"); history.add(item); return history; }
@Test public void shouldFindTheMaterialInstanceTypeGivenAMaterialConfig() throws Exception { MaterialConfigConverter converter = new MaterialConfigConverter(); assertEquals(SvnMaterialInstance.class, converter.getInstanceType(MaterialConfigsMother.svnMaterialConfig())); assertEquals(GitMaterialInstance.class, converter.getInstanceType(new GitMaterialConfig("abc"))); assertEquals(HgMaterialInstance.class, converter.getInstanceType(MaterialConfigsMother.hgMaterialConfig())); assertEquals(P4MaterialInstance.class, converter.getInstanceType(MaterialConfigsMother.p4MaterialConfig())); assertEquals(TfsMaterialInstance.class, converter.getInstanceType(new TfsMaterialConfig(null))); assertEquals(DependencyMaterialInstance.class, converter.getInstanceType(MaterialConfigsMother.dependencyMaterialConfig())); assertEquals(PackageMaterialInstance.class, converter.getInstanceType(MaterialConfigsMother.packageMaterialConfig())); assertEquals(PluggableSCMMaterialInstance.class, converter.getInstanceType(MaterialConfigsMother.pluggableSCMMaterialConfig())); }
String inProgress(Request req, Response res) { MaterialConfig materialConfig = repoFromRequest(req).getMaterialConfig(); final boolean state = mus.isInProgress(converter.toMaterial(materialConfig)); return String.format("{\"inProgress\":%b}", state); }
public static BuildCause buildCauseForOneModifiedFile(PipelineConfig pipelineConfig, String revision) { return BuildCause.createWithModifications(modifyOneFile(new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs()), revision), ""); }
public boolean updateGitMaterial(String branchName, Collection<String> possibleUrls) { final CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); Set<Material> allUniquePostCommitSchedulableMaterials = materialConfigConverter.toMaterials(cruiseConfig.getAllUniquePostCommitSchedulableMaterials()); Predicate<Material> predicate = new MaterialPredicate(branchName, possibleUrls); Set<Material> allGitMaterials = allUniquePostCommitSchedulableMaterials.stream().filter(predicate).collect(Collectors.toSet()); allGitMaterials.forEach(MaterialUpdateService.this::updateMaterial); return !allGitMaterials.isEmpty(); }
private boolean isMaterialUpdateInProgress(ConfigRepoConfig configRepoConfig) { return mus.isInProgress(converter.toMaterial(configRepoConfig.getMaterialConfig())); } }
public static MaterialRevisions modifyOneFile(PipelineConfig pipelineConfig) { return modifyOneFile(new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs()), nextRevision()); }
public void expandForScheduling(Material material, Materials addTheExpandedMaterialsHere) { MaterialConfigs materialConfigs = new MaterialConfigs(); expandForScheduling(material.config(), materialConfigs); addTheExpandedMaterialsHere.addAll(materialConfigConverter.toMaterials(materialConfigs)); }
public ValidationBean checkConnection(MaterialConfig materialConfig, final SubprocessExecutionContext execCtx) { Material material = materialConfigConverter.toMaterial(materialConfig); return getCheckerImplementation(material).checkConnection(material, execCtx); }
public static MaterialRevisions multipleModifications(PipelineConfig pipelineConfig) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs())) { materialRevisions.addRevision(material, multipleModificationList()); } return materialRevisions; }
public String getRevisionsBasedOnDependenciesForDebug(CaseInsensitiveString pipelineName, final Integer targetIterationCount) { CruiseConfig cruiseConfig = goConfigService.getCurrentConfig(); FanInGraph fanInGraph = new FanInGraph(cruiseConfig, pipelineName, materialRepository, pipelineDao, systemEnvironment, materialConfigConverter); final String[] iterationData = {null}; fanInGraph.setFanInEventListener((iterationCount, dependencyFanInNodes) -> { if (iterationCount == targetIterationCount) { iterationData[0] = new GsonBuilder().setExclusionStrategies(getGsonExclusionStrategy()).create().toJson(dependencyFanInNodes); } }); PipelineConfig pipelineConfig = goConfigService.pipelineConfigNamed(pipelineName); Materials materials = materialConfigConverter.toMaterials(pipelineConfig.materialConfigs()); MaterialRevisions actualRevisions = new MaterialRevisions(); for (Material material : materials) { actualRevisions.addAll(materialRepository.findLatestModification(material)); } MaterialRevisions materialRevisions = fanInGraph.computeRevisions(actualRevisions, pipelineTimeline); if (iterationData[0] == null) { iterationData[0] = new GsonBuilder().setExclusionStrategies(getGsonExclusionStrategy()).create().toJson(materialRevisions); } return iterationData[0]; }
public MaterialRevisions create(String pipelineName, Map<String, String> revisionInfo) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (String materialFingerprint : revisionInfo.keySet()) { MaterialConfig materialConfig = goConfigService.findMaterial(new CaseInsensitiveString(pipelineName), materialFingerprint); if (materialConfig == null) { throw new RuntimeException(String.format("Material with fingerprint [%s] for pipeline [%s] does not exist", materialFingerprint, pipelineName)); } materialRevisions.addRevision(materialChecker.findSpecificRevision(materialConfigConverter.toMaterial(materialConfig), revisionInfo.get(materialFingerprint))); } return materialRevisions; } }
public static MaterialRevisions multipleModificationsInHg(PipelineConfig pipelineConfig) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs())) { materialRevisions.addRevision(material, multipleModificationsInHg()); } return materialRevisions; }