@Override public void writeGraph(OutputStream os) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); super.writeGraph(baos); try { StringBuilder builder = new StringBuilder(); builder.append(IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream("vizjs/viz.js"))); builder.append("var result = new Viz(dotGraph);"); String script = builder.toString(); ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); Compilable compilingEngine = (Compilable) engine; CompiledScript cscript = compilingEngine.compile(script); //Bindings bindings = cscript.getEngine().createBindings(); Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE); for(Map.Entry me : bindings.entrySet()) { System.out.printf("%s: %s\n",me.getKey(),String.valueOf(me.getValue())); } bindings.put("dotGraph", baos.toString()); //cscript.eval(); Object result = cscript.eval(bindings); LOG.info("Result:" +ReflectionToStringBuilder.toString(result)); } catch (Exception e) { throw new IOException("Exception generating graph.", e); } } }
@Override public void writeGraph(OutputStream os) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); super.writeGraph(baos); try { StringBuilder builder = new StringBuilder(); builder.append(IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream("vizjs/viz.js"))); builder.append("var result = new Viz(dotGraph);"); String script = builder.toString(); ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); Compilable compilingEngine = (Compilable) engine; CompiledScript cscript = compilingEngine.compile(script); //Bindings bindings = cscript.getEngine().createBindings(); Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE); for(Map.Entry me : bindings.entrySet()) { System.out.printf("%s: %s\n",me.getKey(),String.valueOf(me.getValue())); } bindings.put("dotGraph", baos.toString()); //cscript.eval(); Object result = cscript.eval(bindings); LOG.info("Result:" +ReflectionToStringBuilder.toString(result)); } catch (Exception e) { throw new IOException("Exception generating graph.", e); } } }