// Path: src/test/java/com/excelsiorjet/TestUtils.java
// public class TestUtils {
// 
//     static final String FAKE_JET_HOME = "FakeJetHome";
// 
//     public static File workDir() {
//         try {
//             return new File(TestUtils.class.getResource("/").toURI());
//         } catch (URISyntaxException e) {
//             fail();
//             return null;
//         }
//     }
// 
//     public static File classesDir() {
//         try {
//             String utilsClass = "/" + Utils.class.getName().replace('.', '/') + ".class";
//             String utilsFile  =  new File(Utils.class.getResource(utilsClass).toURI()).getAbsolutePath();
//             return  new File (utilsFile.substring(0, utilsFile.length() - utilsClass.length()));
//         } catch (URISyntaxException e) {
//             fail();
//             return null;
//         }
//     }
// 
//     static File getFakeJetHomeNoCreate(){
//         return new File(workDir(), FAKE_JET_HOME);
//     }
// 
//     static File getOrCreateFakeJetHome(String version){
//         File fakeJetHome = getFakeJetHomeNoCreate();
//         File fakeJetHomeBin = new File(fakeJetHome, "bin");
//         if (new File(fakeJetHomeBin, "jet.config").exists()) {
//             return fakeJetHome;
//         }
//         fakeJetHome.mkdir();
//         fakeJetHomeBin.mkdir();
//         try {
//             new File(fakeJetHomeBin, "jet.config").createNewFile();
//             new File(fakeJetHomeBin, "jet" + version + ".home").createNewFile();
//             File jc = new File(fakeJetHomeBin, Host.mangleExeName(JetCompiler.JET_COMPILER));
//             if (!jc.exists()) {
//                 jc.createNewFile();
//             }
//             File xpack = new File(fakeJetHomeBin, Host.mangleExeName(JetPackager.JET_PACKAGER));
//             if (!xpack.exists()) {
//                 xpack.createNewFile();
//             }
//         } catch (IOException ignore) {
//         }
//         return fakeJetHome;
//     }
// 
//     static File getOrCreateFakeJetHome(){
//         return getOrCreateFakeJetHome("1100");
//     }
// 
//     public static void cleanFakeJetDir() {
//         Utils.cleanDirectorySilently(new File(workDir(), FAKE_JET_HOME));
//     }
// }
// 
// Path: src/main/java/com/excelsiorjet/api/util/Txt.java
// public class Txt {
// 
//     private static Messages messages = new Messages("Strings");
//     private static Messages altMessages;
//     public static Log log;
// 
//     public static void setAdditionalMessages(ResourceBundle rb) {
//         altMessages = new Messages(rb);
//     }
// 
//     public static String s(String id, Object... params) {
//         String str = null;
//         if (altMessages != null) {
//             str = altMessages.format(id, params);
//         }
//         if (str == null) {
//             str = messages.format(id, params);
//         }
//         if (str != null) {
//             return str;
//         } else {
//             if (log != null) {
//                 log.error("JET message file broken: key = " + id);
//             } else {
//                 throw new IllegalStateException("No log to issue error. JET message file broken: key = " + id);
//             }
//             return id;
//         }
//     }
// }


import com.excelsiorjet.TestUtils;
import com.excelsiorjet.api.util.Txt;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.*;
        stopTask(runTask);
    }

    @Test
    public void twoTasks() {
        RunTask runTask1 = runTask();
        RunTask runTask2 = runTask();
        stopTask(runTask2);
        assertFalse(runTask1.isCompleted());
        stopTask(runTask1);
    }

    @Test
    public void secondDies() {
        RunTask runTask1 = runTask();
        RunTask runTask2 = runTask(100);

        //wait until second task dies;
        runTask2.join(RUN_TIMEOUT);
        assertTrue(runTask2.isCompleted());
        assertFalse(runTask1.isCompleted());

        //kill first task
        stopTask(runTask1);
    }

    @Test
    public void middleDies() {
        RunTask runTask1 = runTask();
        RunTask runTask2 = runTask(100);
// Path: src/test/java/com/excelsiorjet/TestUtils.java
// public class TestUtils {
// 
//     static final String FAKE_JET_HOME = "FakeJetHome";
// 
//     public static File workDir() {
//         try {
//             return new File(TestUtils.class.getResource("/").toURI());
//         } catch (URISyntaxException e) {
//             fail();
//             return null;
//         }
//     }
// 
//     public static File classesDir() {
//         try {
//             String utilsClass = "/" + Utils.class.getName().replace('.', '/') + ".class";
//             String utilsFile  =  new File(Utils.class.getResource(utilsClass).toURI()).getAbsolutePath();
//             return  new File (utilsFile.substring(0, utilsFile.length() - utilsClass.length()));
//         } catch (URISyntaxException e) {
//             fail();
//             return null;
//         }
//     }
// 
//     static File getFakeJetHomeNoCreate(){
//         return new File(workDir(), FAKE_JET_HOME);
//     }
// 
//     static File getOrCreateFakeJetHome(String version){
//         File fakeJetHome = getFakeJetHomeNoCreate();
//         File fakeJetHomeBin = new File(fakeJetHome, "bin");
//         if (new File(fakeJetHomeBin, "jet.config").exists()) {
//             return fakeJetHome;
//         }
//         fakeJetHome.mkdir();
//         fakeJetHomeBin.mkdir();
//         try {
//             new File(fakeJetHomeBin, "jet.config").createNewFile();
//             new File(fakeJetHomeBin, "jet" + version + ".home").createNewFile();
//             File jc = new File(fakeJetHomeBin, Host.mangleExeName(JetCompiler.JET_COMPILER));
//             if (!jc.exists()) {
//                 jc.createNewFile();
//             }
//             File xpack = new File(fakeJetHomeBin, Host.mangleExeName(JetPackager.JET_PACKAGER));
//             if (!xpack.exists()) {
//                 xpack.createNewFile();
//             }
//         } catch (IOException ignore) {
//         }
//         return fakeJetHome;
//     }
// 
//     static File getOrCreateFakeJetHome(){
//         return getOrCreateFakeJetHome("1100");
//     }
// 
//     public static void cleanFakeJetDir() {
//         Utils.cleanDirectorySilently(new File(workDir(), FAKE_JET_HOME));
//     }
// }
// 
// Path: src/main/java/com/excelsiorjet/api/util/Txt.java
// public class Txt {
// 
//     private static Messages messages = new Messages("Strings");
//     private static Messages altMessages;
//     public static Log log;
// 
//     public static void setAdditionalMessages(ResourceBundle rb) {
//         altMessages = new Messages(rb);
//     }
// 
//     public static String s(String id, Object... params) {
//         String str = null;
//         if (altMessages != null) {
//             str = altMessages.format(id, params);
//         }
//         if (str == null) {
//             str = messages.format(id, params);
//         }
//         if (str != null) {
//             return str;
//         } else {
//             if (log != null) {
//                 log.error("JET message file broken: key = " + id);
//             } else {
//                 throw new IllegalStateException("No log to issue error. JET message file broken: key = " + id);
//             }
//             return id;
//         }
//     }
// }


// Path: src/test/java/com/excelsiorjet/api/tasks/RunStopSupportTest.java
import com.excelsiorjet.TestUtils;
import com.excelsiorjet.api.util.Txt;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.*;

        stopTask(runTask);
    }

    @Test
    public void twoTasks() {
        RunTask runTask1 = runTask();
        RunTask runTask2 = runTask();
        stopTask(runTask2);
        assertFalse(runTask1.isCompleted());
        stopTask(runTask1);
    }

    @Test
    public void secondDies() {
        RunTask runTask1 = runTask();
        RunTask runTask2 = runTask(100);

        //wait until second task dies;
        runTask2.join(RUN_TIMEOUT);
        assertTrue(runTask2.isCompleted());
        assertFalse(runTask1.isCompleted());

        //kill first task
        stopTask(runTask1);
    }

    @Test
    public void middleDies() {
        RunTask runTask1 = runTask();
        RunTask runTask2 = runTask(100);
        RunTask runTask3 = runTask();