Package hudson.plugins.scm_sync_configuration.strategies.impl

Source Code of hudson.plugins.scm_sync_configuration.strategies.impl.JenkinsConfigScmSyncStrategy

package hudson.plugins.scm_sync_configuration.strategies.impl;

import hudson.XmlFile;
import hudson.model.Item;
import hudson.model.Saveable;
import hudson.plugins.scm_sync_configuration.model.MessageWeight;
import hudson.plugins.scm_sync_configuration.model.WeightedMessage;
import hudson.plugins.scm_sync_configuration.strategies.AbstractScmSyncStrategy;
import hudson.plugins.scm_sync_configuration.strategies.model.ConfigurationEntityMatcher;
import hudson.plugins.scm_sync_configuration.strategies.model.PageMatcher;
import hudson.plugins.scm_sync_configuration.strategies.model.PatternsEntityMatcher;

import java.util.ArrayList;
import java.util.List;

public class JenkinsConfigScmSyncStrategy extends AbstractScmSyncStrategy {

  private static final List<PageMatcher> PAGE_MATCHERS = new ArrayList<PageMatcher>(){ {
        // Global configuration page
        add(new PageMatcher("^configure$", "form[name='config']"));
        // View configuration pages
        add(new PageMatcher("^(.+/)?view/[^/]+/configure$", "form[name='viewConfig']"));
        add(new PageMatcher("^newView$", "form[name='createView'],form[name='createItem']"));
    } };
   
    private static final String[] PATTERNS = new String[]{
        "config.xml"
    };
   
  private static final ConfigurationEntityMatcher CONFIG_ENTITY_MATCHER = new PatternsEntityMatcher(PATTERNS);
 
  public JenkinsConfigScmSyncStrategy(){
    super(CONFIG_ENTITY_MATCHER, PAGE_MATCHERS);
  }

    public CommitMessageFactory getCommitMessageFactory(){
        return new CommitMessageFactory(){
            public WeightedMessage getMessageWhenSaveableUpdated(Saveable s, XmlFile file) {
                return new WeightedMessage("Jenkins configuration files updated",
                        // Jenkins config update message should be considered as "important", especially
                        // more important than the plugin descriptors Saveable updates
                        MessageWeight.NORMAL);
            }
            public WeightedMessage getMessageWhenItemRenamed(Item item, String oldPath, String newPath) {
                throw new IllegalStateException("Jenkins configuration files should never be renamed !");
            }
            public WeightedMessage getMessageWhenItemDeleted(Item item) {
                throw new IllegalStateException("Jenkins configuration files should never be deleted !");
            }
        };
    }
}
TOP

Related Classes of hudson.plugins.scm_sync_configuration.strategies.impl.JenkinsConfigScmSyncStrategy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.