package com.niklim.clicktrace; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.grapher.GrapherModule; import com.google.inject.grapher.InjectorGrapher; import com.google.inject.grapher.graphviz.GraphvizModule; import com.google.inject.grapher.graphviz.GraphvizRenderer; public class GuiceGrapher { public static void main(String[] args) { try { graph("dependency-graph.dot", App.createInjector()); } catch (IOException e) { e.printStackTrace(); } } private static void graph(String filename, Injector demoInjector) throws IOException { PrintWriter out = new PrintWriter(new File(filename), "UTF-8"); Injector injector = Guice.createInjector(new GrapherModule(), new GraphvizModule()); GraphvizRenderer renderer = injector.getInstance(GraphvizRenderer.class); renderer.setOut(out).setRankdir("TB"); injector.getInstance(InjectorGrapher.class).of(demoInjector).graph(); } }