//
// Generated stub from file:/C:/_svn/clfdev/trunk/devmain/DEV5_COMP/Maven/projects/Plugins/maven-hudson-plugin/src/main/scripts/com/clearforest/plugins/hudson/HudsonMojo.groovy
//

package com.clearforest.plugins.hudson;

import java.lang.*;
import java.io.*;
import java.net.*;
import java.util.*;
import groovy.lang.*;
import groovy.util.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import com.clearforest.plugins.parent.GMojoUtils;
import com.clearforest.plugins.parent.MojoUtils;
import groovy.text.Template;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.codehaus.gmaven.mojo.GroovyMojo;
import static com.clearforest.plugins.parent.Verifier.*;
import org.jfrog.maven.annomojo.annotations.MojoPhase;
import org.jfrog.maven.annomojo.annotations.MojoGoal;
import org.jfrog.maven.annomojo.annotations.MojoParameter;

/**
 * Plugin that creates Hudson config files to define new build projects
 * TODO: We can not use AnnoMojo here since it didn't work with Groovy
 *
 * @goal generate
 * @phase compile
 */
public class HudsonMojo
    extends GroovyMojo
    implements groovy.lang.GroovyObject
{
    private java.lang.String buildDirectory = null;

    private java.lang.String configTemplate = null;

    private java.lang.String hudsonUrl = null;

    private java.lang.String generationPom = null;

    /**
     * When no repository local path is specified - the remote one starting from this value is used
     * For example: for remote repository "http://svn.clearforest.com/svn/clfdev/trunk/devmain/DEV5_COMP/JApplications/"
     * and repositoryLocalBase "devmain"
     * local repo path will be "devmain/DEV5_COMP/JApplications"
     */
    private java.lang.String repositoryLocalBase = null;

    private Job[] jobs = null;

    private Job job = null;

    /**
     * Magic constructor
     */
    private HudsonMojo(java.lang.Void void0, java.lang.Void void1, java.lang.Void void2) {
        throw new InternalError("Stubbed method");
    }

    public HudsonMojo() {
        this((java.lang.Void)null, (java.lang.Void)null, (java.lang.Void)null);
        throw new InternalError("Stubbed method");
    }

    private java.lang.String buildDirectory() {
        throw new InternalError("Stubbed method");
    }

    private java.lang.String configTemplate() {
        throw new InternalError("Stubbed method");
    }

    private java.lang.String hudsonUrl() {
        throw new InternalError("Stubbed method");
    }

    private java.lang.String generationPom() {
        throw new InternalError("Stubbed method");
    }

    private java.lang.String repositoryLocalBase() {
        throw new InternalError("Stubbed method");
    }

    private Job[] jobs() {
        throw new InternalError("Stubbed method");
    }

    public void execute() throws MojoExecutionException, MojoFailureException {
        throw new InternalError("Stubbed method");
    }

    /**
     * Reads all jobs specified and configures them.
     * 
     * Verifies that no job is defined more than once and all jobs referenced
     * (via <base> and <invoke>) are defined. Also, when job extends another job
     * (with <base>) - it's construction is completed using a <base> job.
     * 
     * Returns a mapping of "job ID" => job itself.
     */
    private java.lang.Object configureJobs(java.lang.String hudsonUrl, java.lang.String generationPom, java.lang.String repositoryLocalBase) {
        throw new InternalError("Stubbed method");
    }

    /**
     * Verifies job specified is configured
     */
    private static void verifyJobConfigured(Job job) {
        throw new InternalError("Stubbed method");
    }

    public groovy.lang.MetaClass getMetaClass() {
        throw new InternalError("Stubbed method");
    }

    public void setMetaClass(groovy.lang.MetaClass metaClass) {
        throw new InternalError("Stubbed method");
    }

    public java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args) {
        throw new InternalError("Stubbed method");
    }

    public java.lang.Object getProperty(java.lang.String name) {
        throw new InternalError("Stubbed method");
    }

    public void setProperty(java.lang.String name, java.lang.Object value) {
        throw new InternalError("Stubbed method");
    }
}

