@Test public void remote() { AetherPackageLoader loader = new AetherPackageLoader(); loader.setRepositoryListener(new ConsoleRepositoryListener()); loader.setTransferListener(new ConsoleTransferListener()); loader.load(new FqPackageName("org.renjin.cran", "ACD")); System.out.println(Joiner.on("\n").join(loader.getClassLoader().getURLs())); }
private String evaluate(String script) throws IOException { AetherPackageLoader aetherLoader = new AetherPackageLoader(); aetherLoader.setTransferListener(new ConsoleTransferListener()); aetherLoader.setRepositoryListener(new ConsoleRepositoryListener(System.out)); Session session = new SessionBuilder() .bind(ClassLoader.class, aetherLoader.getClassLoader()) .bind(PackageLoader.class, aetherLoader) .build(); ExpressionVector sexp = RParser.parseAllSource(new StringReader(script)); SEXP result = session.getTopLevelContext().evaluate(sexp); if (result instanceof StringVector) { return ((StringVector) result).getElementAsString(0); } else { throw new AssertionError("Expected string, got: " + result); } }