!7 sS defaultJavaTarget = "1.8"; sS standardCredentials() { ret ""; } // public snippets only // snippetID => jar file static new SerializeComputations computations; html { // lock lock; // now using SerializeComputations uri = dropPrefixSlash(uri); S snippetID = fsI(uri); if (!isSnippetPublic(snippetID)) fail("Snippet not public: " + snippetID); S transpiledSrc = getServerTranspiled2(snippetID); // md5 check (if parameter supplied) S md5 = params.get('md5); if (md5 != null && !eq(md5, md5(transpiledSrc))) ret "md5 mismatch"; File jar = computations.get(snippetID, -> { int i = transpiledSrc.indexOf('\n'); S libs = transpiledSrc.substring(0, Math.max(0, i)); printVars(+snippetID, +libs); transpiledSrc = transpiledSrc.substring(i+1); S javaTarget = or(params.get('javaTarget), defaultJavaTarget); CompilerBot.verbose = true; ret CompilerBot.compile(transpiledSrc, libs, javaTarget, snippetID); }); print("Serving jar for " + snippetID + ": " + jar); ret subBot_serveFileWithName(jar, psI(snippetID) + ".jar", "application/java-archive"); }