
hudson.plugins.scm_sync_configuration.strategies.impl.JobConfigScmSyncStrategy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scm-sync-configuration Show documentation
Show all versions of scm-sync-configuration Show documentation
SCM Sync Configuration Hudson plugin is aimed at 2 main features : First, keep sync'ed your config.xml (and other ressources) hudson files with a SCM repository (backup), Secondly, track changes (and author) made on every file with commit messages.
The newest version!
package hudson.plugins.scm_sync_configuration.strategies.impl;
import hudson.model.Hudson;
import hudson.model.Job;
import hudson.plugins.scm_sync_configuration.strategies.AbstractScmSyncStrategy;
import hudson.plugins.scm_sync_configuration.strategies.model.ClassAndFileConfigurationEntityMatcher;
import hudson.plugins.scm_sync_configuration.strategies.model.ConfigurationEntityMatcher;
import hudson.plugins.scm_sync_configuration.strategies.model.PageMatcher;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class JobConfigScmSyncStrategy extends AbstractScmSyncStrategy {
private static final List PAGE_MATCHERS = new ArrayList(){ { add(new PageMatcher("^(.*view/[^/]+/)?job/[^/]+/configure$", "config")); } };
private static final ConfigurationEntityMatcher CONFIG_ENTITY_MANAGER = new ClassAndFileConfigurationEntityMatcher(Job.class, "^jobs/[^/]+/config\\.xml$");
public JobConfigScmSyncStrategy(){
super(CONFIG_ENTITY_MANAGER, PAGE_MATCHERS);
}
public List createInitializationSynchronizedFileset() {
List syncedFiles = new ArrayList();
File hudsonJobsDirectory = new File(Hudson.getInstance().getRootDir().getAbsolutePath()+File.separator+"jobs");
for(File hudsonJob : hudsonJobsDirectory.listFiles()){
if(hudsonJob.isDirectory()){
File hudsonJobConfig = new File(hudsonJob.getAbsoluteFile()+File.separator+"config.xml");
syncedFiles.add(hudsonJobConfig);
}
}
return syncedFiles;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy