@Test public void testTermination() throws ScriptException { logger1.info("Termination Test"); ScriptEngineManager manager = new ScriptEngineManager(); JRubyEngine instance = (JRubyEngine) manager.getEngineByName("jruby"); instance.eval("$x='GVar'"); StringWriter sw = new StringWriter(); instance.getContext().setWriter(sw); instance.eval("at_exit { puts \"#{$x} in an at_exit block\" }"); String expResult = ""; assertEquals(expResult, sw.toString().trim()); sw = new StringWriter(); instance.getContext().setWriter(sw); instance .getContext() .setAttribute("org.jruby.embed.termination", true, ScriptContext.ENGINE_SCOPE); instance.eval(""); expResult = "GVar in an at_exit block"; assertEquals(expResult, sw.toString().trim()); instance .getContext() .setAttribute("org.jruby.embed.termination", false, ScriptContext.ENGINE_SCOPE); instance = null; }