Class PulsarMockBookKeeper

  • All Implemented Interfaces:
    AutoCloseable, org.apache.bookkeeper.client.api.BookKeeper

    public class PulsarMockBookKeeper
    extends org.apache.bookkeeper.client.BookKeeper
    Mocked version of BookKeeper client that keeps all ledgers data in memory.

    This mocked client is meant to be used in unit tests for applications using the BookKeeper API.

    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.bookkeeper.client.BookKeeper

        org.apache.bookkeeper.client.BookKeeper.Builder, org.apache.bookkeeper.client.BookKeeper.DigestType
    • Constructor Summary

      Constructors 
      Constructor Description
      PulsarMockBookKeeper​(org.apache.bookkeeper.common.util.OrderedExecutor orderedExecutor)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addEntryDelay​(long delay, TimeUnit unit)  
      void asyncCreateLedger​(int ensSize, int writeQuorumSize, int ackQuorumSize, org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd, org.apache.bookkeeper.client.AsyncCallback.CreateCallback cb, Object ctx, Map<String,​byte[]> properties)  
      void asyncCreateLedger​(int ensSize, int qSize, org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd, org.apache.bookkeeper.client.AsyncCallback.CreateCallback cb, Object ctx)  
      void asyncDeleteLedger​(long lId, org.apache.bookkeeper.client.AsyncCallback.DeleteCallback cb, Object ctx)  
      void asyncOpenLedger​(long lId, org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd, org.apache.bookkeeper.client.AsyncCallback.OpenCallback cb, Object ctx)  
      void asyncOpenLedgerNoRecovery​(long lId, org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd, org.apache.bookkeeper.client.AsyncCallback.OpenCallback cb, Object ctx)  
      void close()  
      org.apache.bookkeeper.client.LedgerHandle createLedger​(int ensSize, int writeQuorumSize, int ackQuorumSize, org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd)  
      org.apache.bookkeeper.client.LedgerHandle createLedger​(int ensSize, int qSize, org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd)  
      org.apache.bookkeeper.client.LedgerHandle createLedger​(org.apache.bookkeeper.client.BookKeeper.DigestType digestType, byte[] passwd)  
      void deleteLedger​(long lId)  
      void failAfter​(int steps, int rc)  
      void failNow​(int rc)  
      org.apache.bookkeeper.conf.ClientConfiguration getConf()  
      Map<Long,​PulsarMockLedgerHandle> getLedgerMap()  
      Set<Long> getLedgers()  
      org.apache.bookkeeper.common.util.OrderedExecutor getMainWorkerPool()  
      org.apache.bookkeeper.meta.MetadataClientDriver getMetadataClientDriver()  
      static Collection<org.apache.bookkeeper.net.BookieId> getMockEnsemble()  
      org.apache.bookkeeper.client.api.DeleteBuilder newDeleteLedgerOp()  
      org.apache.bookkeeper.client.api.OpenBuilder newOpenLedgerOp()  
      CompletableFuture<Void> promiseAfter​(int steps)  
      void returnEmptyLedgerAfter​(int steps)
      After N times, make a ledger to appear to be empty
      void shutdown()  
      • Methods inherited from class org.apache.bookkeeper.client.BookKeeper

        asyncCreateLedgerAdv, asyncCreateLedgerAdv, asyncIsClosed, createLedger, createLedgerAdv, createLedgerAdv, createLedgerAdv, forConfig, getBookieAddressResolver, getBookieInfo, getLedgerManager, getLedgerManagerFactory, getLedgerMetadata, isClosed, newCreateLedgerOp, newListLedgersOp, openLedger, openLedgerNoRecovery
    • Constructor Detail

      • PulsarMockBookKeeper

        public PulsarMockBookKeeper​(org.apache.bookkeeper.common.util.OrderedExecutor orderedExecutor)
                             throws Exception
        Throws:
        Exception
    • Method Detail

      • getConf

        public org.apache.bookkeeper.conf.ClientConfiguration getConf()
        Overrides:
        getConf in class org.apache.bookkeeper.client.BookKeeper
      • getMockEnsemble

        public static Collection<org.apache.bookkeeper.net.BookieId> getMockEnsemble()
      • getMainWorkerPool

        public org.apache.bookkeeper.common.util.OrderedExecutor getMainWorkerPool()
        Overrides:
        getMainWorkerPool in class org.apache.bookkeeper.client.BookKeeper
      • createLedger

        public org.apache.bookkeeper.client.LedgerHandle createLedger​(org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                                                      byte[] passwd)
                                                               throws org.apache.bookkeeper.client.BKException,
                                                                      InterruptedException
        Overrides:
        createLedger in class org.apache.bookkeeper.client.BookKeeper
        Throws:
        org.apache.bookkeeper.client.BKException
        InterruptedException
      • createLedger

        public org.apache.bookkeeper.client.LedgerHandle createLedger​(int ensSize,
                                                                      int qSize,
                                                                      org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                                                      byte[] passwd)
                                                               throws org.apache.bookkeeper.client.BKException,
                                                                      InterruptedException
        Overrides:
        createLedger in class org.apache.bookkeeper.client.BookKeeper
        Throws:
        org.apache.bookkeeper.client.BKException
        InterruptedException
      • asyncCreateLedger

        public void asyncCreateLedger​(int ensSize,
                                      int writeQuorumSize,
                                      int ackQuorumSize,
                                      org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                      byte[] passwd,
                                      org.apache.bookkeeper.client.AsyncCallback.CreateCallback cb,
                                      Object ctx,
                                      Map<String,​byte[]> properties)
        Overrides:
        asyncCreateLedger in class org.apache.bookkeeper.client.BookKeeper
      • createLedger

        public org.apache.bookkeeper.client.LedgerHandle createLedger​(int ensSize,
                                                                      int writeQuorumSize,
                                                                      int ackQuorumSize,
                                                                      org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                                                      byte[] passwd)
                                                               throws org.apache.bookkeeper.client.BKException,
                                                                      InterruptedException
        Overrides:
        createLedger in class org.apache.bookkeeper.client.BookKeeper
        Throws:
        org.apache.bookkeeper.client.BKException
        InterruptedException
      • asyncCreateLedger

        public void asyncCreateLedger​(int ensSize,
                                      int qSize,
                                      org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                      byte[] passwd,
                                      org.apache.bookkeeper.client.AsyncCallback.CreateCallback cb,
                                      Object ctx)
        Overrides:
        asyncCreateLedger in class org.apache.bookkeeper.client.BookKeeper
      • asyncOpenLedger

        public void asyncOpenLedger​(long lId,
                                    org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                    byte[] passwd,
                                    org.apache.bookkeeper.client.AsyncCallback.OpenCallback cb,
                                    Object ctx)
        Overrides:
        asyncOpenLedger in class org.apache.bookkeeper.client.BookKeeper
      • asyncOpenLedgerNoRecovery

        public void asyncOpenLedgerNoRecovery​(long lId,
                                              org.apache.bookkeeper.client.BookKeeper.DigestType digestType,
                                              byte[] passwd,
                                              org.apache.bookkeeper.client.AsyncCallback.OpenCallback cb,
                                              Object ctx)
        Overrides:
        asyncOpenLedgerNoRecovery in class org.apache.bookkeeper.client.BookKeeper
      • asyncDeleteLedger

        public void asyncDeleteLedger​(long lId,
                                      org.apache.bookkeeper.client.AsyncCallback.DeleteCallback cb,
                                      Object ctx)
        Overrides:
        asyncDeleteLedger in class org.apache.bookkeeper.client.BookKeeper
      • deleteLedger

        public void deleteLedger​(long lId)
                          throws InterruptedException,
                                 org.apache.bookkeeper.client.BKException
        Overrides:
        deleteLedger in class org.apache.bookkeeper.client.BookKeeper
        Throws:
        InterruptedException
        org.apache.bookkeeper.client.BKException
      • close

        public void close()
                   throws InterruptedException,
                          org.apache.bookkeeper.client.BKException
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface org.apache.bookkeeper.client.api.BookKeeper
        Overrides:
        close in class org.apache.bookkeeper.client.BookKeeper
        Throws:
        InterruptedException
        org.apache.bookkeeper.client.BKException
      • newOpenLedgerOp

        public org.apache.bookkeeper.client.api.OpenBuilder newOpenLedgerOp()
        Specified by:
        newOpenLedgerOp in interface org.apache.bookkeeper.client.api.BookKeeper
        Overrides:
        newOpenLedgerOp in class org.apache.bookkeeper.client.BookKeeper
      • newDeleteLedgerOp

        public org.apache.bookkeeper.client.api.DeleteBuilder newDeleteLedgerOp()
        Specified by:
        newDeleteLedgerOp in interface org.apache.bookkeeper.client.api.BookKeeper
        Overrides:
        newDeleteLedgerOp in class org.apache.bookkeeper.client.BookKeeper
      • shutdown

        public void shutdown()
      • getLedgers

        public Set<Long> getLedgers()
      • failNow

        public void failNow​(int rc)
      • failAfter

        public void failAfter​(int steps,
                              int rc)
      • returnEmptyLedgerAfter

        public void returnEmptyLedgerAfter​(int steps)
        After N times, make a ledger to appear to be empty
      • addEntryDelay

        public void addEntryDelay​(long delay,
                                  TimeUnit unit)
      • getMetadataClientDriver

        public org.apache.bookkeeper.meta.MetadataClientDriver getMetadataClientDriver()
        Overrides:
        getMetadataClientDriver in class org.apache.bookkeeper.client.BookKeeper