private void setCommonScmMaterialMembers(ScmMaterialConfig scmMaterialConfig, CRScmMaterial crScmMaterial) { scmMaterialConfig.setFolder(crScmMaterial.getDirectory()); scmMaterialConfig.setAutoUpdate(crScmMaterial.isAutoUpdate()); scmMaterialConfig.setFilter(toFilter(crScmMaterial)); scmMaterialConfig.setInvertFilter(crScmMaterial.isWhitelist()); }
public static void toJSON(OutputWriter jsonWriter, ScmMaterialConfig scmMaterialConfig) { if (!(scmMaterialConfig instanceof P4MaterialConfig)) { jsonWriter.add("url", scmMaterialConfig.getUrl()); } jsonWriter.add("destination", scmMaterialConfig.getFolder()); if (scmMaterialConfig.filter().isEmpty()) { jsonWriter.renderNull("filter"); } else { jsonWriter.addChild("filter", filterWriter -> FilterRepresenter.toJSON(filterWriter, scmMaterialConfig.filter())); } jsonWriter.add("invert_filter", scmMaterialConfig.isInvertFilter()); jsonWriter.add("name", scmMaterialConfig.getName()); jsonWriter.add("auto_update", scmMaterialConfig.isAutoUpdate()); }
public void validateNotSubdirectoryOf(String otherSCMMaterialFolder) { String myDirPath = this.getFolder(); if (myDirPath == null || otherSCMMaterialFolder == null) { return; } if (FilenameUtil.isNormalizedDirectoryPathInsideNormalizedParentDirectory(myDirPath, otherSCMMaterialFolder)) { addError(FOLDER, "Invalid Destination Directory. Every material needs a different destination directory and the directories should not be nested."); } }
private void validateNotOutsideSandbox() { String dest = this.getFolder(); if (dest == null) { return; } if (!(FilenameUtil.isNormalizedPathOutsideWorkingDir(dest))) { setDestinationFolderError(String.format("Dest folder '%s' is not valid. It must be a sub-directory of the working folder.", dest)); } }
public void setConfigAttributes(Object attributes) { super.setConfigAttributes(attributes); Map map = (Map) attributes; if (map.containsKey(FOLDER)) { String folder = (String) map.get(FOLDER); if (StringUtils.isBlank(folder)) { folder = null; } this.folder = folder; } this.setAutoUpdate("true".equals(map.get(AUTO_UPDATE))); this.setInvertFilter("true".equals(map.get(INVERT_FILTER))); if (map.containsKey(FILTER)) { String pattern = (String) map.get(FILTER); if (!StringUtils.isBlank(pattern)) { this.setFilter(Filter.fromDisplayString(pattern)); } else { this.setFilter(null); } } }
public static PipelineConfig createPipelineConfig(Filter filter, ScmMaterialConfig... materialConfigs) { for (ScmMaterialConfig scmMaterialConfig : materialConfigs) { scmMaterialConfig.setFilter(filter); } return createPipelineConfigWithMaterialConfig(materialConfigs); }
if (repoMaterial instanceof ScmMaterialConfig) { ScmMaterialConfig scmMaterialConfig = (ScmMaterialConfig) repoMaterial; scmMaterialConfig.setFilter(toFilter(crConfigMaterial.getFilter().getList())); scmMaterialConfig.setInvertFilter(crConfigMaterial.getFilter().isWhitelist()); } else //must be a pluggable SCM
public String getFilterAsString() { return filter().getStringForDisplay(); }
private CRScmMaterial scmMaterialToCRScmMaterial(ScmMaterialConfig scmConfig) { String name = null; if (scmConfig.getName() != null) { name = scmConfig.getName().toString(); } if (scmConfig instanceof GitMaterialConfig) return gitMaterialToCRGitMaterial(name, (GitMaterialConfig) scmConfig); else if (scmConfig instanceof HgMaterialConfig) return hgMaterialToCRHgMaterial(name, (HgMaterialConfig) scmConfig); else if (scmConfig instanceof P4MaterialConfig) return p4MaterialToCRP4Material(name, (P4MaterialConfig) scmConfig); else if (scmConfig instanceof SvnMaterialConfig) return svnMaterialToCRSvnMaterial(name, (SvnMaterialConfig) scmConfig); else if (scmConfig instanceof TfsMaterialConfig) return tfsMaterialToCRTfsMaterial(name, (TfsMaterialConfig) scmConfig); else throw new ConfigConvertionException( String.format("unknown scm material type '%s'", scmConfig)); }
public static void fromJSON(JsonReader jsonReader, ScmMaterialConfig scmMaterialConfig) { jsonReader.readStringIfPresent("url", scmMaterialConfig::setUrl); jsonReader.readStringIfPresent("destination", scmMaterialConfig::setFolder); jsonReader.optBoolean("invert_filter").ifPresent(scmMaterialConfig::setInvertFilter); jsonReader.optJsonObject("filter").ifPresent(filterReader -> { scmMaterialConfig.setFilter(FilterRepresenter.fromJSON(filterReader)); }); jsonReader.readCaseInsensitiveStringIfPresent("name", scmMaterialConfig::setName); jsonReader.optBoolean("auto_update").ifPresent(scmMaterialConfig::setAutoUpdate); } }
@Test public void shouldLoadPipelineWithMultipleMaterials() throws Exception { String pipelineXmlPartial = "<pipeline name=\"pipeline\">\n" + " <materials>\n" + " <svn url=\"/hgrepo1\" dest=\"folder1\" />\n" + " <svn url=\"/hgrepo2\" dest=\"folder2\" />\n" + " <svn url=\"/hgrepo3\" dest=\"folder3\" />\n" + " </materials>\n" + " <stage name=\"mingle\">\n" + " <jobs>\n" + " <job name=\"functional\">\n" + " <artifacts>\n" + " <log src=\"artifact1.xml\" dest=\"cruise-output\" />\n" + " </artifacts>\n" + " </job>\n" + " </jobs>\n" + " </stage>\n" + "</pipeline>\n"; PipelineConfig pipeline = xmlLoader.fromXmlPartial(pipelineXmlPartial, PipelineConfig.class); assertThat(pipeline.materialConfigs().size(), is(3)); ScmMaterialConfig material = (ScmMaterialConfig) pipeline.materialConfigs().get(0); assertThat(material.getFolder(), is("folder1")); }
public static void toJSON(OutputWriter jsonWriter, ScmMaterialConfig scmMaterialConfig) { if (!(scmMaterialConfig instanceof P4MaterialConfig)) { jsonWriter.add("url", scmMaterialConfig.getUrl()); } jsonWriter.add("destination", scmMaterialConfig.getFolder()); if (scmMaterialConfig.filter().isEmpty()) { jsonWriter.renderNull("filter"); } else { jsonWriter.addChild("filter", filterWriter -> FilterRepresenter.toJSON(filterWriter, scmMaterialConfig.filter())); } jsonWriter.add("invert_filter", scmMaterialConfig.isInvertFilter()); jsonWriter.add("name", scmMaterialConfig.getName()); jsonWriter.add("auto_update", scmMaterialConfig.isAutoUpdate()); }
public static void fromJSON(JsonReader jsonReader, ScmMaterialConfig scmMaterialConfig) { jsonReader.readStringIfPresent("url", scmMaterialConfig::setUrl); jsonReader.readStringIfPresent("destination", scmMaterialConfig::setFolder); jsonReader.optBoolean("invert_filter").ifPresent(scmMaterialConfig::setInvertFilter); jsonReader.optJsonObject("filter").ifPresent(filterReader -> { scmMaterialConfig.setFilter(FilterRepresenter.fromJSON(filterReader)); }); jsonReader.readCaseInsensitiveStringIfPresent("name", scmMaterialConfig::setName); jsonReader.optBoolean("auto_update").ifPresent(scmMaterialConfig::setAutoUpdate); } }