Class SimplexTransferListener

  • All Implemented Interfaces:
    org.eclipse.aether.transfer.TransferListener

    public final class SimplexTransferListener
    extends org.eclipse.aether.transfer.AbstractTransferListener
    A TransferListener implementation that wraps another delegate TransferListener but makes it run on single thread, keeping the listener logic simple. This listener also blocks on last transfer event to allow output to perform possible cleanup. It spawns a daemon thread to consume queued events that may fall in even concurrently.
    Since:
    3.9.7
    • Field Detail

      • LOGGER

        private static final org.slf4j.Logger LOGGER
      • delegate

        private final org.eclipse.aether.transfer.TransferListener delegate
      • batchMaxSize

        private final int batchMaxSize
      • blockOnLastEvent

        private final boolean blockOnLastEvent
    • Constructor Detail

      • SimplexTransferListener

        public SimplexTransferListener​(org.eclipse.aether.transfer.TransferListener delegate)
        Constructor that makes passed in delegate run on single thread, and will block on last event.
      • SimplexTransferListener

        public SimplexTransferListener​(org.eclipse.aether.transfer.TransferListener delegate,
                                       int queueSize,
                                       int batchMaxSize,
                                       boolean blockOnLastEvent)
        Constructor that may alter behaviour of this listener.
        Parameters:
        delegate - The delegate that should run on single thread.
        queueSize - The event queue size (default 1024).
        batchMaxSize - The maximum batch size delegate should receive (default 500).
        blockOnLastEvent - Should this listener block on last transfer end (completed or corrupted) block? (default true).
    • Method Detail

      • getDelegate

        public org.eclipse.aether.transfer.TransferListener getDelegate()
      • feedConsumer

        private void feedConsumer()
      • put

        private void put​(org.eclipse.aether.transfer.TransferEvent event,
                         boolean last)
      • transferInitiated

        public void transferInitiated​(org.eclipse.aether.transfer.TransferEvent event)
        Specified by:
        transferInitiated in interface org.eclipse.aether.transfer.TransferListener
        Overrides:
        transferInitiated in class org.eclipse.aether.transfer.AbstractTransferListener
      • transferStarted

        public void transferStarted​(org.eclipse.aether.transfer.TransferEvent event)
                             throws org.eclipse.aether.transfer.TransferCancelledException
        Specified by:
        transferStarted in interface org.eclipse.aether.transfer.TransferListener
        Overrides:
        transferStarted in class org.eclipse.aether.transfer.AbstractTransferListener
        Throws:
        org.eclipse.aether.transfer.TransferCancelledException
      • transferProgressed

        public void transferProgressed​(org.eclipse.aether.transfer.TransferEvent event)
                                throws org.eclipse.aether.transfer.TransferCancelledException
        Specified by:
        transferProgressed in interface org.eclipse.aether.transfer.TransferListener
        Overrides:
        transferProgressed in class org.eclipse.aether.transfer.AbstractTransferListener
        Throws:
        org.eclipse.aether.transfer.TransferCancelledException
      • transferCorrupted

        public void transferCorrupted​(org.eclipse.aether.transfer.TransferEvent event)
                               throws org.eclipse.aether.transfer.TransferCancelledException
        Specified by:
        transferCorrupted in interface org.eclipse.aether.transfer.TransferListener
        Overrides:
        transferCorrupted in class org.eclipse.aether.transfer.AbstractTransferListener
        Throws:
        org.eclipse.aether.transfer.TransferCancelledException
      • transferSucceeded

        public void transferSucceeded​(org.eclipse.aether.transfer.TransferEvent event)
        Specified by:
        transferSucceeded in interface org.eclipse.aether.transfer.TransferListener
        Overrides:
        transferSucceeded in class org.eclipse.aether.transfer.AbstractTransferListener
      • transferFailed

        public void transferFailed​(org.eclipse.aether.transfer.TransferEvent event)
        Specified by:
        transferFailed in interface org.eclipse.aether.transfer.TransferListener
        Overrides:
        transferFailed in class org.eclipse.aether.transfer.AbstractTransferListener