use of com.alipay.sofa.ark.loader.ExecutableArkBizJar in project sofa-ark by alipay.
the class ArkContainerTest method testStop.
@Test
public void testStop() throws Exception {
ArkContainer arkContainer = new ArkContainer(new ExecutableArkBizJar(new JarFileArchive(new File((jarURL.getFile())))));
arkContainer.start();
arkContainer.stop();
Assert.assertFalse(arkContainer.isRunning());
}
use of com.alipay.sofa.ark.loader.ExecutableArkBizJar in project sofa-ark by alipay.
the class ArkContainerTest method testStart.
@Test
public void testStart() throws Exception {
ArkContainer arkContainer = new ArkContainer(new ExecutableArkBizJar(new JarFileArchive(new File((jarURL.getFile())))));
arkContainer.start();
Assert.assertTrue(arkContainer.isStarted());
}
use of com.alipay.sofa.ark.loader.ExecutableArkBizJar in project sofa-ark by alipay.
the class ExecutableArchiveLauncher method createArchive.
/**
* Returns the executable file archive
* @return executable file archive
* @throws Exception
*/
protected ExecutableArchive createArchive() throws Exception {
ProtectionDomain protectionDomain = getClass().getProtectionDomain();
CodeSource codeSource = protectionDomain.getCodeSource();
URI location = (codeSource == null ? null : codeSource.getLocation().toURI());
String path = (location == null ? null : location.getSchemeSpecificPart());
if (path == null) {
throw new IllegalStateException("Unable to determine code source archive");
}
File root = new File(path);
if (!root.exists()) {
throw new IllegalStateException("Unable to determine code source archive from " + root);
}
return root.isDirectory() ? null : new ExecutableArkBizJar(new JarFileArchive(root), root.toURI().toURL());
}
use of com.alipay.sofa.ark.loader.ExecutableArkBizJar in project sofa-ark by alipay.
the class BaseExecutableArchiveLauncher method createArchive.
/**
* Returns the executable file archive
* @return executable file archive
* @throws Exception
*/
protected ExecutableArchive createArchive() throws Exception {
ProtectionDomain protectionDomain = getClass().getProtectionDomain();
CodeSource codeSource = protectionDomain.getCodeSource();
URI location = (codeSource == null ? null : codeSource.getLocation().toURI());
String path = (location == null ? null : location.getSchemeSpecificPart());
if (path == null) {
throw new IllegalStateException("Unable to determine code source archive");
}
File root = new File(path);
if (!root.exists()) {
throw new IllegalStateException("Unable to determine code source archive from " + root);
}
return root.isDirectory() ? new ExecutableArkBizJar(new ExplodedArchive(root)) : new ExecutableArkBizJar(new JarFileArchive(root), root.toURI().toURL());
}
use of com.alipay.sofa.ark.loader.ExecutableArkBizJar in project sofa-ark by alipay.
the class ArkContainer method main.
public static Object main(String[] args) throws ArkRuntimeException {
if (args.length < MINIMUM_ARGS_SIZE) {
throw new ArkRuntimeException("Please provide suitable arguments to continue !");
}
try {
LaunchCommand launchCommand = LaunchCommand.parse(args);
if (launchCommand.isExecutedByCommandLine()) {
ExecutableArkBizJar executableArchive;
File rootFile = new File(URLDecoder.decode(launchCommand.getExecutableArkBizJar().getFile()));
if (rootFile.isDirectory()) {
executableArchive = new ExecutableArkBizJar(new ExplodedArchive(rootFile));
} else {
executableArchive = new ExecutableArkBizJar(new JarFileArchive(rootFile, launchCommand.getExecutableArkBizJar()));
}
return new ArkContainer(executableArchive, launchCommand).start();
} else {
ClassPathArchive classPathArchive;
if (ArkConfigs.isEmbedEnable()) {
classPathArchive = new EmbedClassPathArchive(launchCommand.getEntryClassName(), launchCommand.getEntryMethodName(), launchCommand.getClasspath());
} else {
classPathArchive = new ClassPathArchive(launchCommand.getEntryClassName(), launchCommand.getEntryMethodName(), launchCommand.getClasspath());
}
return new ArkContainer(classPathArchive, launchCommand).start();
}
} catch (IOException e) {
throw new ArkRuntimeException(String.format("SOFAArk startup failed, commandline=%s", LaunchCommand.toString(args)), e);
}
}
Aggregations