Class ThreadedStreamConsumer

java.lang.Object
org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event>

public final class ThreadedStreamConsumer extends Object implements org.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event>, Closeable
Knows how to reconstruct *all* the state transmitted over Channel by the forked process.
After applying the performance improvements with ThreadedStreamConsumer.QueueSynchronizer the throughput becomes 6.33 mega messages per second (158 nanoseconds per message, 5 million messages within 0.79 seconds - see the test ThreadedStreamConsumerTest) on CPU i5 Dual Core 2.6 GHz and Oracle JDK 11.
Author:
Kristian Rosenvold
  • Constructor Details

    • ThreadedStreamConsumer

      public ThreadedStreamConsumer(org.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event> target)
  • Method Details

    • handleEvent

      public void handleEvent(@Nonnull org.apache.maven.surefire.api.event.Event event)
      Specified by:
      handleEvent in interface org.apache.maven.surefire.extensions.EventHandler<org.apache.maven.surefire.api.event.Event>
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException