All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mtvi.plateng.hudson.regex.PluginImpl Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2008, MTV Networks
 */

package com.mtvi.plateng.hudson.regex;

import hudson.Plugin;
import hudson.XmlFile;
import hudson.model.Hudson;
import hudson.tasks.MailAddressResolver;

import java.io.File;
import java.io.IOException;

/**
 * Entry point of for the Regex Email plugin. Loads configuration from
 * com.mtvi.plateng.hudson.ldap.RegexMailAddressResolver.xml and adds an
 * instance of RegexMailAddressResolver to the MailAddressResolver list.
 * 
 * @author justinedelson
 */
public class PluginImpl extends Plugin {

    /**
     * Plugin lifecycle method. Loads configuration and adds configured instance
     * of RegexMailAddressResolver to MailAddressResolver list.
     * 
     * @see hudson.Plugin#start()
     * @throws Exception
     *             if something goes wrong
     */
    @Override
    public void start() throws Exception {
        IConfiguration config = loadConfiguration();
        MailAddressResolver.all().add(new RegexMailAddressResolver(config));
    }

    /**
     * Loads confiugration file from
     * com.mtvi.plateng.hudson.regex.RegexMailAddressResolver.xml.
     * 
     * @return a Configuration object, populated from the file, if it exists
     * @throws IOException
     *             if the file can't be read.
     */
    protected static IConfiguration loadConfiguration() throws IOException {
        Hudson hudson = Hudson.getInstance();
        File rootDirectory = hudson.getRootDir();
        String fileName = RegexMailAddressResolver.class.getName() + ".xml";
        XmlFile xmlFile = new XmlFile(Hudson.XSTREAM, new File(rootDirectory, fileName));
        IConfiguration config = null;
        if (xmlFile.exists()) {
            config = (IConfiguration) xmlFile.read();
        } else {
            config = new Configuration();
        }
        return config;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy