@Test public void testRelativePathForJarLaunch() throws Exception{ Launcher launcher = new Launcher(); Path jarPath = Paths.get("./src/test/resources/serverlessJava.jar"); launcher.setBinaryPath(jarPath); launcher.setEntryClassName("aproject.App"); JsonObject result = launcher.launch(); assertNotNull(result); } }
public JsonObject launch() throws Exception { Invoker invoker; ClassLoader loader; if (JAVA_FILE_MATCHER.matches(this.binaryPath)) { loader = new JavaCompilerLoader(Thread.currentThread().getContextClassLoader(), this.getBinaryPath()); invoker = (Invoker) loader; } else { if (getEntryClassName() == null) { throw new IllegalStateException("Main class name is required to execute .jar"); } loader = new JarLoader(this.getBinaryPath(), getEntryClassName()); invoker = (Invoker) loader; } Thread.currentThread().setContextClassLoader(loader); JsonObject args = getParameter(); if (args == null) { args = new JsonObject(); //always pass an argument } return invoker.invokeMain(args); }
@Test public void testLauncherParameters(){ Launcher launcher = new Launcher(); final Path binaryPath = Paths.get("/"); assertNull(launcher.getBinaryPath()); launcher.setBinaryPath(binaryPath); assertTrue(launcher.getBinaryPath().isAbsolute()); final String className = "clazzname"; assertNull(launcher.getEntryClassName()); launcher.setEntryClassName(className); assertSame(className, launcher.getEntryClassName()); final JsonObject param = new JsonObject(); assertNull(launcher.getParameter()); launcher.setParameter(param); assertSame(param, launcher.getParameter()); }
@Test public void testRelativePathForJavaFile() throws Exception{ Launcher launcher = new Launcher(); Path filePath = Paths.get("./src/test/resources/aproject/App.java"); launcher.setBinaryPath(filePath); JsonObject result = launcher.launch(); assertNotNull(result); }
@Test public void testAbsolutePathForJavaFile() throws Exception{ Launcher launcher = new Launcher(); Path filePath = Paths.get("./src/test/resources/aproject/App.java"); launcher.setBinaryPath(filePath.toRealPath()); JsonObject result = launcher.launch(); assertNotNull(result); }
@Test public void testAbsolutePathForJarLaunch() throws Exception{ Launcher launcher = new Launcher(); Path jarPath = Paths.get("./src/test/resources/serverlessJava.jar"); launcher.setBinaryPath(jarPath.toRealPath()); launcher.setEntryClassName("aproject.App"); JsonObject result = launcher.launch(); assertNotNull(result); }
@Test(expected=IllegalStateException.class) public void testLaunchJarNoMain() throws Exception{ Launcher launcher = new Launcher(); Path jarPath = Paths.get("someJar.jar"); System.out.println(jarPath.toAbsolutePath().toString()); launcher.setBinaryPath(jarPath); launcher.launch(); fail(); }
Launcher launcher = new Launcher(); launcher.setBinaryPath(path); launcher.setEntryClassName(cli.mainClassName); launcher.setParameter(readParameters(cli)); JsonObject o = launcher.launch(); Gson gson = new Gson(); System.out.println(gson.toJson(o));