Class ThreadOutputMuxer


  • public class ThreadOutputMuxer
    extends java.lang.Object
    NOTE: This class is not part of any public api and can be changed or deleted without prior notice. This class in particular may spontaneously self-combust and be replaced by a plexus-compliant thread aware logger implementation at any time.
    Since:
    3.0
    • Field Detail

      • projectBuildThreadLocal

        private final java.lang.ThreadLocal<ProjectSegment> projectBuildThreadLocal
      • streams

        private final java.util.Map<ProjectSegment,​java.io.ByteArrayOutputStream> streams
      • printStreams

        private final java.util.Map<ProjectSegment,​java.io.PrintStream> printStreams
      • defaultOutputStreamForUnknownData

        private final java.io.ByteArrayOutputStream defaultOutputStreamForUnknownData
      • defaultPrintStream

        private final java.io.PrintStream defaultPrintStream
      • completedBuilds

        private final java.util.Set<ProjectSegment> completedBuilds
      • originalSystemOUtStream

        private final java.io.PrintStream originalSystemOUtStream
    • Constructor Detail

      • ThreadOutputMuxer

        public ThreadOutputMuxer​(ProjectBuildList segmentChunks,
                                 java.io.PrintStream originalSystemOut)
    • Method Detail

      • close

        public void close()
      • setNext

        private void setNext()
      • ownsRealOutputStream

        private boolean ownsRealOutputStream​(ProjectSegment projectBuild)
      • getThreadBoundPrintStream

        private java.io.PrintStream getThreadBoundPrintStream()
      • associateThreadWithProjectSegment

        public void associateThreadWithProjectSegment​(ProjectSegment projectBuild)
      • setThisModuleComplete

        public void setThisModuleComplete​(ProjectSegment projectBuild)
      • disconnectThreadFromProject

        private void disconnectThreadFromProject()