private void loadRubyScript(String scriptName) throws IOException { try (InputStream stream = Resources.getResource("proofpoint/" + scriptName).openStream()) { runtime.loadFile(scriptName, stream, false); } }
@Inject public RackServlet(RackServletConfig config) throws IOException { Preconditions.checkNotNull(config); File rackScriptFile = new File(config.getRackConfigPath()); Preconditions.checkArgument(rackScriptFile.canRead(), "Could not find rack script specified by [" + config.getRackConfigPath() + "] and resolved to [" + rackScriptFile.getAbsolutePath() + "]"); runtime = JavaEmbedUtils.initialize(ImmutableList.of(rackScriptFile.getParentFile().getCanonicalPath()), createRuntimeConfig()); // don't inherit system settings for gems RubyHash env = runtime.evalScriptlet("ENV").convertToHash(); env.remove("GEM_HOME"); env.remove("GEM_PATH"); InputStream stream = Resources.getResource("proofpoint/rack.rb").openStream(); try { runtime.loadFile("rack.rb", stream, false); } finally { stream.close(); } IRubyObject builder = runtime.evalScriptlet("Proofpoint::RackServer::Builder.new"); rackApplication = adapter.callMethod(builder, "build", new IRubyObject[] { javaToRuby(runtime, rackScriptFile.getCanonicalPath()) }); }
@Inject public RackServlet(RackServletConfig config) throws IOException { Preconditions.checkNotNull(config); File rackScriptFile = new File(config.getRackConfigPath()); Preconditions.checkArgument(rackScriptFile.canRead(), "Could not find rack script specified by [" + config.getRackConfigPath() + "] and resolved to [" + rackScriptFile.getAbsolutePath() + "]"); runtime = JavaEmbedUtils.initialize(ImmutableList.of(rackScriptFile.getParentFile().getCanonicalPath()), createRuntimeConfig()); // don't inherit system settings for gems RubyHash env = runtime.evalScriptlet("ENV").convertToHash(); env.remove("GEM_HOME"); env.remove("GEM_PATH"); InputStream stream = Resources.getResource("io/airlift/rack.rb").openStream(); try { runtime.loadFile("rack.rb", stream, false); } finally { stream.close(); } IRubyObject builder = runtime.evalScriptlet("Airlift::RackServer::Builder.new"); rackApplication = adapter.callMethod(builder, "build", new IRubyObject[] { javaToRuby(runtime, rackScriptFile.getCanonicalPath()) }); }
@Inject public RackServlet(RackServletConfig config) throws IOException { Preconditions.checkNotNull(config); File rackScriptFile = new File(config.getRackConfigPath()); Preconditions.checkArgument(rackScriptFile.canRead(), "Could not find rack script specified by [" + config.getRackConfigPath() + "] and resolved to [" + rackScriptFile.getAbsolutePath() + "]"); runtime = JavaEmbedUtils.initialize(ImmutableList.of(rackScriptFile.getParentFile().getCanonicalPath()), createRuntimeConfig()); // don't inherit system settings for gems RubyHash env = runtime.evalScriptlet("ENV").convertToHash(); env.remove("GEM_HOME"); env.remove("GEM_PATH"); InputStream stream = Resources.getResource("io/airlift/rack.rb").openStream(); try { runtime.loadFile("rack.rb", stream, false); } finally { stream.close(); } IRubyObject builder = runtime.evalScriptlet("Airlift::RackServer::Builder.new"); rackApplication = adapter.callMethod(builder, "build", new IRubyObject[] { javaToRuby(runtime, rackScriptFile.getCanonicalPath()) }); }
@Override public void load(Ruby runtime, boolean wrap) { InputStream ris = null; try { ris = resource.inputStream(); if (runtime.getInstanceConfig().getCompileMode().shouldPrecompileAll()) { runtime.compileAndLoadFile(scriptName, ris, wrap); } else { runtime.loadFile(scriptName, new LoadServiceResourceInputStream(ris), wrap); } } catch(IOException e) { throw runtime.newLoadError("no such file to load -- " + searchName, searchName); } finally { try { if (ris != null) ris.close(); } catch (IOException ioE) { /* At least we tried.... */} } } }
@Override public void load(Ruby runtime, boolean wrap) { InputStream ris = null; try { ris = resource.inputStream(); if (runtime.getInstanceConfig().getCompileMode().shouldPrecompileAll()) { runtime.compileAndLoadFile(scriptName, ris, wrap); } else { runtime.loadFile(scriptName, new LoadServiceResourceInputStream(ris), wrap); } } catch(IOException e) { throw runtime.newLoadError("no such file to load -- " + searchName, searchName); } finally { try { if (ris != null) ris.close(); } catch (IOException ioE) { /* At least we tried.... */} } } }
public void load(Ruby runtime, boolean wrap) { InputStream in = null; try { in = resource.getInputStream(); String name = normalizeSeps(resource.getName()); if (runtime.getInstanceConfig().getCompileMode().shouldPrecompileAll()) { runtime.compileAndLoadFile(name, in, wrap); } else { java.io.File path = resource.getPath(); if(path != null && !resource.isAbsolute()) { // Note: We use RubyFile's canonicalize rather than Java's, // because Java's will follow symlinks and result in __FILE__ // being set to the target of the symlink rather than the // filename provided. name = normalizeSeps(canonicalize(path.getPath())); } runtime.loadFile(name, in, wrap); } } catch (IOException e) { throw runtime.newIOErrorFromException(e); } finally { try { in.close(); } catch (Exception ex) {} } }
public void load(Ruby runtime, boolean wrap) { InputStream in = null; try { in = resource.getInputStream(); String name = resource.getName(); if (runtime.getInstanceConfig().getCompileMode().shouldPrecompileAll()) { runtime.compileAndLoadFile(name, in, wrap); } else { name = CompiledScriptLoader.getFilenameFromPathAndName(resource.getPath(), name, resource.isAbsolute()); runtime.loadFile(name, new LoadServiceResourceInputStream(in), wrap); } } catch (IOException e) { throw runtime.newIOErrorFromException(e); } finally { try { in.close(); } catch (Exception ex) {} } }
public void load(Ruby runtime, boolean wrap) { InputStream in = null; try { in = resource.getInputStream(); String name = normalizeSeps(resource.getName()); if (runtime.getInstanceConfig().getCompileMode().shouldPrecompileAll()) { runtime.compileAndLoadFile(name, in, wrap); } else { java.io.File path = resource.getPath(); if(path != null && !resource.isAbsolute()) { // Note: We use RubyFile's canonicalize rather than Java's, // because Java's will follow symlinks and result in __FILE__ // being set to the target of the symlink rather than the // filename provided. name = normalizeSeps(canonicalize(path.getPath())); } runtime.loadFile(name, in, wrap); } } catch (IOException e) { throw runtime.newIOErrorFromException(e); } finally { try { in.close(); } catch (Exception ex) {} } }
public void load(Ruby runtime, boolean wrap) { InputStream in = null; try { in = resource.getInputStream(); String name = resource.getName(); if (runtime.getInstanceConfig().getCompileMode().shouldPrecompileAll()) { runtime.compileAndLoadFile(name, in, wrap); } else { name = CompiledScriptLoader.getFilenameFromPathAndName(resource.getPath(), name, resource.isAbsolute()); runtime.loadFile(name, new LoadServiceResourceInputStream(in), wrap); } } catch (IOException e) { throw runtime.newIOErrorFromException(e); } finally { try { in.close(); } catch (Exception ex) {} } }