import com.urbancode.air.plugin.wldeploy.WebLogicStatusHelper;
import com.urbancode.air.AirPluginTool;

final def workDir = new File('.').canonicalFile
def apTool = new AirPluginTool(this.args[0], this.args[1]);
def props = apTool.getStepProperties();
final def jmxUrl = props['jmxUrl'];
def user = props['user'];
def pass = props['password'];
final def configFile = props['configFile'];
final def keyFile = props['keyFile'];
def targets = props['targets'];
final def timeout = props['timeout'];
final def onFail = props['onFail'];

targets = targets.split(',');
WebLogicStatusHelper helper = new WebLogicStatusHelper();
boolean failure = false;

try {
    if (configFile) {
        user = helper.getUser(configFile, keyFile);
        pass = helper.getPass(configFile, keyFile);
    }
    helper.initConn(jmxUrl, user, pass);
    targets.each { target ->
        System.out.println("Starting Target ${target}");
        helper.startManagedServer(target);
    }
    failure = helper.checkStartStatus(targets, timeout, onFail, apTool);
}
catch (Exception e) {
    e.printStackTrace();
    throw e;
}
finally {
    helper.closeConn();
    if (failure == true) {
        println("Process will now exit.");
        System.exit(1);
    }
}