package org.atomnuke.performance; import java.io.File; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import org.atomnuke.Nuke; import org.atomnuke.NukeKernel; import org.atomnuke.atom.io.reader.sax.SaxAtomReaderFactory; import org.atomnuke.examples.eventlets.FeedFileWriterHandler; import org.atomnuke.examples.sinks.ClasspathSource; import org.atomnuke.examples.eventlets.CounterEventlet; import org.atomnuke.sink.eps.EventletChainSink; import org.atomnuke.sink.selectors.CategorySelectorImpl; import org.atomnuke.task.atom.AtomTask; import org.atomnuke.util.TimeValue; /** * * @author zinic */ public class CombinedParserSelector { public static void main(String[] args) throws Exception { final AtomicLong events = new AtomicLong(0); final EventletChainSink relay = new EventletChainSink(); relay.enlistHandler(new FeedFileWriterHandler(new File("/tmp/test.feed"))); relay.enlistHandler(new CounterEventlet(events, false)); final NukeKernel nukeKernel = new NukeKernel(); final AtomTask task = nukeKernel.follow(new ClasspathSource(new SaxAtomReaderFactory(), "/META-INF/examples/atom/PerformanceTestContents.xml"), new TimeValue(1, TimeUnit.MICROSECONDS)); task.addSink(relay); nukeKernel.start(); Thread.sleep(10000); nukeKernel.destroy(); System.out.println("Processed " + events.get() + " entry events in ten seconds."); } }