Produced by OmniGraffle 6.1 2010-09-10 23:02:45 +0000Canvas 1Layer 1JPF()addPublisherExtension()setPublisherTopics()reporterJPF..reporter = config.getInstance("report.class", Reporter.class,..);..searchStarted()propertyViolated()searchFinished()publishersReporterpublishStart()getOut()extensionstopicsoutPublisherpublishStart()publishTransition()publishPropertyViolation()publishFinished()<<PublisherExtension>>........for (Publisher p : publishers){ p.openChannel(); .. p.publishStart();.. public void publishStart() { for (String topic : startTopics) { if ("jpf".equals(topic)){ publishJPF(); ... for (PublisherExtension e : extensions) { e.publishStart(this); } ...out.println("JPF version" + ..);publishJPF()...ConsolePublisherpublishFinished()...DeadlockAnalyzerPrintWriter out = publisher,getOut();printTraceAnalysis(out);data collectionpublisher managementdata formattingtopic managementoutput channel managementproperty/listenerspecific output topicsreport.class=.report.Reporterreport.publisher=console,..report.console.class=.report.ConsolePublisherreport.console.start=jpf,..JPF configuration(e.g. jpf.properties or *.jpf files)