You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by si...@apache.org on 2019/08/10 03:36:34 UTC

[pulsar] branch master updated: [Transaction][Buffer] move the transaction buffer code to the broker module (#4919)

This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ad632d  [Transaction][Buffer] move the transaction buffer code to the broker module (#4919)
1ad632d is described below

commit 1ad632d691959f2d657bac8303edd500e8e75703
Author: Yong Zhang <zh...@gmail.com>
AuthorDate: Sat Aug 10 11:36:27 2019 +0800

    [Transaction][Buffer] move the transaction buffer code to the broker module (#4919)
    
    
    *Motivation*
    
    Currently, all transaction buffer code in the transaction module. A transaction buffer inherits `PersistentTopic`, it depends on the pulsar-broker module. When we need to create a transaction buffer at the pulsar-broker, the pulsar-broker depends on the transaction module. So it will cause cyclic reference.
    
    *Modifications*
    
    - move the code under transaction buffer module to the broker module
---
 .../transaction/buffer/TransactionBuffer.java      |  12 +--
 .../buffer/TransactionBufferProvider.java          |   2 +-
 .../buffer/TransactionBufferReader.java            |   4 +-
 .../transaction/buffer/TransactionCursor.java      |   2 +-
 .../transaction/buffer/TransactionEntry.java       |   2 +-
 .../transaction/buffer/TransactionMeta.java        |   2 +-
 .../exceptions/EndOfTransactionException.java      |   2 +-
 .../NoTxnsCommittedAtLedgerException.java          |   2 +-
 .../exceptions/TransactionBufferException.java     |   2 +-
 .../exceptions/TransactionNotFoundException.java   |   2 +-
 .../exceptions/TransactionNotSealedException.java  |   2 +-
 .../exceptions/TransactionSealedException.java     |   2 +-
 .../exceptions/UnexpectedTxnStatusException.java   |   2 +-
 .../buffer/exceptions/package-info.java            |   2 +-
 .../buffer/impl/InMemTransactionBuffer.java        |  16 ++--
 .../impl/InMemTransactionBufferProvider.java       |   6 +-
 .../buffer/impl/InMemTransactionBufferReader.java  |  16 ++--
 .../buffer/impl/PersistentTransactionBuffer.java   |  12 +--
 .../impl/PersistentTransactionBufferReader.java    |  10 +-
 .../buffer/impl/TransactionCursorImpl.java         |  10 +-
 .../buffer/impl/TransactionEntryImpl.java          |   8 +-
 .../buffer/impl/TransactionMetaImpl.java           |  10 +-
 .../transaction/buffer/impl/package-info.java      |   2 +-
 .../broker}/transaction/buffer/package-info.java   |   2 +-
 .../buffer}/InMemTransactionBufferReaderTest.java  |   6 +-
 .../buffer}/PersistentTransactionBufferTest.java   |  30 +++---
 .../transaction/buffer}/TransactionBufferTest.java |  14 +--
 .../buffer}/TransactionEntryImplTest.java          |   3 +-
 pulsar-transaction/buffer/pom.xml                  | 101 ---------------------
 pulsar-transaction/pom.xml                         |   1 -
 30 files changed, 87 insertions(+), 200 deletions(-)

diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBuffer.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBuffer.java
similarity index 88%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBuffer.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBuffer.java
index f106f1c..2b2f75c 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBuffer.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBuffer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import com.google.common.annotations.Beta;
 import io.netty.buffer.ByteBuf;
@@ -52,7 +52,7 @@ public interface TransactionBuffer {
      *
      * @param txnID the transaction id
      * @return a future represents the result of the operation
-     * @throws org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
+     * @throws org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
      *         is not in the buffer.
      */
     CompletableFuture<TransactionMeta> getTransactionMeta(TxnID txnID);
@@ -66,7 +66,7 @@ public interface TransactionBuffer {
      * @param sequenceId the sequence id of the entry in this transaction buffer.
      * @param buffer the entry buffer
      * @return a future represents the result of the operation.
-     * @throws org.apache.pulsar.transaction.buffer.exceptions.TransactionSealedException if the transaction
+     * @throws org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionSealedException if the transaction
      *         has been sealed.
      */
     CompletableFuture<Void> appendBufferToTxn(TxnID txnId, long sequenceId, ByteBuf buffer);
@@ -78,7 +78,7 @@ public interface TransactionBuffer {
      * @param txnID transaction id
      * @param startSequenceId the sequence id to start read
      * @return a future represents the result of open operation.
-     * @throws org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
+     * @throws org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
      *         is not in the buffer.
      */
     CompletableFuture<TransactionBufferReader> openTransactionBufferReader(TxnID txnID, long startSequenceId);
@@ -92,7 +92,7 @@ public interface TransactionBuffer {
      * @param committedAtLedgerId the data ledger id where the commit marker of the transaction was appended to.
      * @param committedAtEntryId the data ledger id where the commit marker of the transaction was appended to.
      * @return a future represents the result of commit operation.
-     * @throws org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
+     * @throws org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
      *         is not in the buffer.
      */
     CompletableFuture<Void> commitTxn(TxnID txnID, long committedAtLedgerId, long committedAtEntryId);
@@ -103,7 +103,7 @@ public interface TransactionBuffer {
      *
      * @param txnID the transaction id
      * @return a future represents the result of abort operation.
-     * @throws org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
+     * @throws org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException if the transaction
      *         is not in the buffer.
      */
     CompletableFuture<Void> abortTxn(TxnID txnID);
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBufferProvider.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferProvider.java
similarity index 97%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBufferProvider.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferProvider.java
index 59a12b7..9fc5e9d 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBufferProvider.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferProvider.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBufferReader.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferReader.java
similarity index 92%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBufferReader.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferReader.java
index f1759db..4547de0 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionBufferReader.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferReader.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import com.google.common.annotations.Beta;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
-import org.apache.pulsar.transaction.buffer.exceptions.EndOfTransactionException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.EndOfTransactionException;
 
 /**
  * A reader to read entries of a given transaction from transaction buffer.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionCursor.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionCursor.java
similarity index 97%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionCursor.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionCursor.java
index a7dc070..d62171b 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionCursor.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionCursor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionEntry.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionEntry.java
similarity index 97%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionEntry.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionEntry.java
index bd8195f..9c524f7 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionEntry.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionEntry.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import com.google.common.annotations.Beta;
 import io.netty.buffer.ByteBuf;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionMeta.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionMeta.java
similarity index 98%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionMeta.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionMeta.java
index 2b929d2..c123953 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/TransactionMeta.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/TransactionMeta.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import com.google.common.annotations.Beta;
 import java.util.SortedMap;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/EndOfTransactionException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/EndOfTransactionException.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/EndOfTransactionException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/EndOfTransactionException.java
index 3d503cb..57fce9a 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/EndOfTransactionException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/EndOfTransactionException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 /**
  * Exception thrown when reaching end of a transaction.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/NoTxnsCommittedAtLedgerException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/NoTxnsCommittedAtLedgerException.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/NoTxnsCommittedAtLedgerException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/NoTxnsCommittedAtLedgerException.java
index 74f950a..b20b29a 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/NoTxnsCommittedAtLedgerException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/NoTxnsCommittedAtLedgerException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 /**
  * Exception is thrown when no transactions found committed at a given ledger.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionBufferException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionBufferException.java
similarity index 95%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionBufferException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionBufferException.java
index dbc0977..3ecbf2b 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionBufferException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionBufferException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 /**
  * The base exception class for the errors thrown from Transaction Buffer.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionNotFoundException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionNotFoundException.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionNotFoundException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionNotFoundException.java
index 6749e8d..0f1dc46 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionNotFoundException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionNotFoundException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 /**
  * Exception is thrown when the transaction is not found in the transaction buffer.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionNotSealedException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionNotSealedException.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionNotSealedException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionNotSealedException.java
index 4dfd0bf..c732c88 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionNotSealedException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionNotSealedException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 /**
  * Exception is thrown when opening a reader on a transaction that is not sealed yet.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionSealedException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionSealedException.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionSealedException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionSealedException.java
index b446189..13fdec5 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/TransactionSealedException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/TransactionSealedException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 /**
  * Exception thrown if a transaction is already sealed.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/UnexpectedTxnStatusException.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/UnexpectedTxnStatusException.java
similarity index 95%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/UnexpectedTxnStatusException.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/UnexpectedTxnStatusException.java
index 20d612d..dddbddf 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/UnexpectedTxnStatusException.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/UnexpectedTxnStatusException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
 
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.apache.pulsar.transaction.impl.common.TxnStatus;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/package-info.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/package-info.java
similarity index 93%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/package-info.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/package-info.java
index b3243e8..2aee740 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/exceptions/package-info.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/exceptions/package-info.java
@@ -19,4 +19,4 @@
 /**
  * Exceptions thrown when encountering errors in transaction buffer.
  */
-package org.apache.pulsar.transaction.buffer.exceptions;
\ No newline at end of file
+package org.apache.pulsar.broker.transaction.buffer.exceptions;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBuffer.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBuffer.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBuffer.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBuffer.java
index 1ce8234..633d1fd 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBuffer.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBuffer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import io.netty.buffer.ByteBuf;
 import java.util.ArrayList;
@@ -32,13 +32,13 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import org.apache.bookkeeper.mledger.Position;
 import org.apache.pulsar.common.util.FutureUtil;
-import org.apache.pulsar.transaction.buffer.TransactionBuffer;
-import org.apache.pulsar.transaction.buffer.TransactionBufferReader;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotSealedException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionSealedException;
-import org.apache.pulsar.transaction.buffer.exceptions.UnexpectedTxnStatusException;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBuffer;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBufferReader;
+import org.apache.pulsar.broker.transaction.buffer.TransactionMeta;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotSealedException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionSealedException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.UnexpectedTxnStatusException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.apache.pulsar.transaction.impl.common.TxnStatus;
 
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferProvider.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBufferProvider.java
similarity index 85%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferProvider.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBufferProvider.java
index b3e29af..ed30ed0 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferProvider.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBufferProvider.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import java.util.concurrent.CompletableFuture;
-import org.apache.pulsar.transaction.buffer.TransactionBuffer;
-import org.apache.pulsar.transaction.buffer.TransactionBufferProvider;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBuffer;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBufferProvider;
 
 /**
  * A provider that provides in-memory implementations of {@link TransactionBuffer}.
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferReader.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBufferReader.java
similarity index 84%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferReader.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBufferReader.java
index b563b9b..49adf7a 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferReader.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBufferReader.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import io.netty.buffer.ByteBuf;
 import java.util.ArrayList;
@@ -24,15 +24,15 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map.Entry;
 import java.util.concurrent.CompletableFuture;
-import org.apache.pulsar.transaction.buffer.TransactionBufferReader;
-import org.apache.pulsar.transaction.buffer.TransactionEntry;
-import org.apache.pulsar.transaction.buffer.exceptions.EndOfTransactionException;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBufferReader;
+import org.apache.pulsar.broker.transaction.buffer.TransactionEntry;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.EndOfTransactionException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 
 /**
  * A {@link TransactionBufferReader} implementation that reads entries from {@link InMemTransactionBuffer}.
  */
-class InMemTransactionBufferReader implements TransactionBufferReader {
+public class InMemTransactionBufferReader implements TransactionBufferReader {
 
     private final TxnID txnId;
     private final Iterator<Entry<Long, ByteBuf>> entries;
@@ -41,10 +41,8 @@ class InMemTransactionBufferReader implements TransactionBufferReader {
 
     // the iterator should hold the references to the entries
     // so when the reader is closed, all the entries can be released.
-    InMemTransactionBufferReader(TxnID txnId,
-                                 Iterator<Entry<Long, ByteBuf>> entries,
-                                 long committedAtLedgerId,
-                                 long committedAtEntryId) {
+    public InMemTransactionBufferReader(TxnID txnId, Iterator<Entry<Long, ByteBuf>> entries, long committedAtLedgerId,
+                                        long committedAtEntryId) {
         this.txnId = txnId;
         this.entries = entries;
         this.committedAtLedgerId = committedAtLedgerId;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBuffer.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/PersistentTransactionBuffer.java
similarity index 96%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBuffer.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/PersistentTransactionBuffer.java
index f0513cd..0b480d2 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBuffer.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/PersistentTransactionBuffer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import io.netty.buffer.ByteBuf;
 import java.util.List;
@@ -38,11 +38,11 @@ import org.apache.pulsar.broker.service.persistent.PersistentTopic;
 import org.apache.pulsar.common.api.proto.PulsarMarkers.MessageIdData;
 import org.apache.pulsar.common.protocol.Markers;
 import org.apache.pulsar.common.util.FutureUtil;
-import org.apache.pulsar.transaction.buffer.TransactionBuffer;
-import org.apache.pulsar.transaction.buffer.TransactionBufferReader;
-import org.apache.pulsar.transaction.buffer.TransactionCursor;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotSealedException;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBuffer;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBufferReader;
+import org.apache.pulsar.broker.transaction.buffer.TransactionCursor;
+import org.apache.pulsar.broker.transaction.buffer.TransactionMeta;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotSealedException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 
 /**
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBufferReader.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/PersistentTransactionBufferReader.java
similarity index 93%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBufferReader.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/PersistentTransactionBufferReader.java
index 4806c9e..f3250ca 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBufferReader.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/PersistentTransactionBufferReader.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -34,10 +34,10 @@ import org.apache.bookkeeper.mledger.Position;
 import org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl;
 import org.apache.bookkeeper.mledger.impl.PositionImpl;
 import org.apache.pulsar.common.util.FutureUtil;
-import org.apache.pulsar.transaction.buffer.TransactionBufferReader;
-import org.apache.pulsar.transaction.buffer.TransactionEntry;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotSealedException;
+import org.apache.pulsar.broker.transaction.buffer.TransactionBufferReader;
+import org.apache.pulsar.broker.transaction.buffer.TransactionEntry;
+import org.apache.pulsar.broker.transaction.buffer.TransactionMeta;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotSealedException;
 import org.apache.pulsar.transaction.impl.common.TxnStatus;
 
 /**
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionCursorImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionCursorImpl.java
similarity index 92%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionCursorImpl.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionCursorImpl.java
index 65431fa..61ab6e0 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionCursorImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionCursorImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import java.util.HashSet;
 import java.util.Map;
@@ -26,10 +26,10 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import org.apache.bookkeeper.mledger.Position;
-import org.apache.pulsar.transaction.buffer.TransactionCursor;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.NoTxnsCommittedAtLedgerException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException;
+import org.apache.pulsar.broker.transaction.buffer.TransactionCursor;
+import org.apache.pulsar.broker.transaction.buffer.TransactionMeta;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.NoTxnsCommittedAtLedgerException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 
 public class TransactionCursorImpl implements TransactionCursor {
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionEntryImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionEntryImpl.java
similarity index 89%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionEntryImpl.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionEntryImpl.java
index 945aefa..9b1c96c 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionEntryImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionEntryImpl.java
@@ -16,16 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import io.netty.buffer.ByteBuf;
-import org.apache.pulsar.transaction.buffer.TransactionEntry;
+import org.apache.pulsar.broker.transaction.buffer.TransactionEntry;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 
 /**
  * A simple implementation of {@link TransactionEntry}.
  */
-class TransactionEntryImpl implements TransactionEntry {
+public class TransactionEntryImpl implements TransactionEntry {
 
     private final TxnID txnId;
     private final long sequenceId;
@@ -33,7 +33,7 @@ class TransactionEntryImpl implements TransactionEntry {
     private final long committedAtEntryId;
     private final ByteBuf entryBuf;
 
-    TransactionEntryImpl(TxnID txnId,
+    public TransactionEntryImpl(TxnID txnId,
                          long sequenceId,
                          ByteBuf entryBuf,
                          long committedAtLedgerId,
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionMetaImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionMetaImpl.java
similarity index 92%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionMetaImpl.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionMetaImpl.java
index 9325d04..55c0132 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/TransactionMetaImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionMetaImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
 
 import com.google.common.annotations.VisibleForTesting;
 import java.util.Map;
@@ -24,10 +24,10 @@ import java.util.SortedMap;
 import java.util.TreeMap;
 import java.util.concurrent.CompletableFuture;
 import org.apache.bookkeeper.mledger.Position;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.EndOfTransactionException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionSealedException;
-import org.apache.pulsar.transaction.buffer.exceptions.UnexpectedTxnStatusException;
+import org.apache.pulsar.broker.transaction.buffer.TransactionMeta;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.EndOfTransactionException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionSealedException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.UnexpectedTxnStatusException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.apache.pulsar.transaction.impl.common.TxnStatus;
 
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/package-info.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/package-info.java
similarity index 93%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/package-info.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/package-info.java
index efc9f71..e707675 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/impl/package-info.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/package-info.java
@@ -19,4 +19,4 @@
 /**
  * The implementation of a transaction buffer.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer.impl;
diff --git a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/package-info.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/package-info.java
similarity index 94%
rename from pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/package-info.java
rename to pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/package-info.java
index 4670a70..acde304 100644
--- a/pulsar-transaction/buffer/src/main/java/org/apache/pulsar/transaction/buffer/package-info.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/package-info.java
@@ -19,4 +19,4 @@
 /**
  * Implementation of a transaction buffer.
  */
-package org.apache.pulsar.transaction.buffer;
+package org.apache.pulsar.broker.transaction.buffer;
diff --git a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferReaderTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/InMemTransactionBufferReaderTest.java
similarity index 96%
rename from pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferReaderTest.java
rename to pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/InMemTransactionBufferReaderTest.java
index bf6daa2..e2af027 100644
--- a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/InMemTransactionBufferReaderTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/InMemTransactionBufferReaderTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.testng.Assert.assertEquals;
@@ -33,8 +33,8 @@ import java.util.SortedMap;
 import java.util.TreeMap;
 import java.util.concurrent.CompletionException;
 import java.util.concurrent.ExecutionException;
-import org.apache.pulsar.transaction.buffer.TransactionEntry;
-import org.apache.pulsar.transaction.buffer.exceptions.EndOfTransactionException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.EndOfTransactionException;
+import org.apache.pulsar.broker.transaction.buffer.impl.InMemTransactionBufferReader;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.testng.annotations.Test;
 
diff --git a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBufferTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/PersistentTransactionBufferTest.java
similarity index 97%
rename from pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBufferTest.java
rename to pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/PersistentTransactionBufferTest.java
index f77f50c..82982a1 100644
--- a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/PersistentTransactionBufferTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/PersistentTransactionBufferTest.java
@@ -16,15 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.mockito.ArgumentMatchers.endsWith;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyObject;
 import static org.mockito.Matchers.anyString;
@@ -33,6 +27,10 @@ import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
 
 import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -49,7 +47,6 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.stream.Collectors;
-import lombok.Cleanup;
 import org.apache.bookkeeper.client.PulsarMockBookKeeper;
 import org.apache.bookkeeper.mledger.AsyncCallbacks.AddEntryCallback;
 import org.apache.bookkeeper.mledger.AsyncCallbacks.CloseCallback;
@@ -76,6 +73,8 @@ import org.apache.pulsar.broker.namespace.NamespaceService;
 import org.apache.pulsar.broker.service.BrokerService;
 import org.apache.pulsar.broker.service.BrokerServiceException;
 import org.apache.pulsar.broker.service.ServerCnx;
+import org.apache.pulsar.broker.transaction.buffer.impl.PersistentTransactionBuffer;
+import org.apache.pulsar.broker.transaction.buffer.impl.TransactionMetaImpl;
 import org.apache.pulsar.common.api.proto.PulsarApi.CommandSubscribe.InitialPosition;
 import org.apache.pulsar.common.naming.NamespaceBundle;
 import org.apache.pulsar.common.naming.TopicName;
@@ -83,15 +82,11 @@ import org.apache.pulsar.common.policies.data.Policies;
 import org.apache.pulsar.common.protocol.Commands;
 import org.apache.pulsar.common.protocol.Markers;
 import org.apache.pulsar.compaction.Compactor;
-import org.apache.pulsar.transaction.buffer.TransactionBufferReader;
-import org.apache.pulsar.transaction.buffer.TransactionEntry;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.EndOfTransactionException;
-import org.apache.pulsar.transaction.buffer.exceptions.NoTxnsCommittedAtLedgerException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionBufferException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotSealedException;
-import org.apache.pulsar.transaction.buffer.exceptions.UnexpectedTxnStatusException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.EndOfTransactionException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.NoTxnsCommittedAtLedgerException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotSealedException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.UnexpectedTxnStatusException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.apache.pulsar.transaction.impl.common.TxnStatus;
 import org.apache.pulsar.zookeeper.ZooKeeperCache;
@@ -101,7 +96,6 @@ import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.MockZooKeeper;
 import org.apache.zookeeper.ZooKeeper;
 import org.apache.zookeeper.data.ACL;
-import org.apache.zookeeper.txn.Txn;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 import org.slf4j.Logger;
diff --git a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/TransactionBufferTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferTest.java
similarity index 94%
rename from pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/TransactionBufferTest.java
rename to pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferTest.java
index 4902e2f..0724a68 100644
--- a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/TransactionBufferTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionBufferTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.testng.Assert.assertEquals;
@@ -28,14 +28,10 @@ import io.netty.buffer.ByteBufUtil;
 import io.netty.buffer.Unpooled;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
-import org.apache.pulsar.transaction.buffer.TransactionBuffer;
-import org.apache.pulsar.transaction.buffer.TransactionBufferProvider;
-import org.apache.pulsar.transaction.buffer.TransactionBufferReader;
-import org.apache.pulsar.transaction.buffer.TransactionEntry;
-import org.apache.pulsar.transaction.buffer.TransactionMeta;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotFoundException;
-import org.apache.pulsar.transaction.buffer.exceptions.TransactionNotSealedException;
-import org.apache.pulsar.transaction.buffer.exceptions.UnexpectedTxnStatusException;
+import org.apache.pulsar.broker.transaction.buffer.impl.InMemTransactionBufferProvider;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotFoundException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.TransactionNotSealedException;
+import org.apache.pulsar.broker.transaction.buffer.exceptions.UnexpectedTxnStatusException;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.apache.pulsar.transaction.impl.common.TxnStatus;
 import org.testng.annotations.AfterMethod;
diff --git a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/TransactionEntryImplTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionEntryImplTest.java
similarity index 92%
rename from pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/TransactionEntryImplTest.java
rename to pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionEntryImplTest.java
index 53e2ec9..afb4fea 100644
--- a/pulsar-transaction/buffer/src/test/java/org/apache/pulsar/transaction/buffer/impl/TransactionEntryImplTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionEntryImplTest.java
@@ -16,13 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.transaction.buffer.impl;
+package org.apache.pulsar.broker.transaction.buffer;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.testng.Assert.assertEquals;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
+import org.apache.pulsar.broker.transaction.buffer.impl.TransactionEntryImpl;
 import org.apache.pulsar.transaction.impl.common.TxnID;
 import org.testng.annotations.Test;
 
diff --git a/pulsar-transaction/buffer/pom.xml b/pulsar-transaction/buffer/pom.xml
deleted file mode 100644
index 9605ec1..0000000
--- a/pulsar-transaction/buffer/pom.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<project
-        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-        xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.pulsar</groupId>
-        <artifactId>pulsar-transaction-parent</artifactId>
-        <version>2.5.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>pulsar-transaction-buffer</artifactId>
-    <name>Pulsar Transaction :: Buffer </name>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.pulsar</groupId>
-            <artifactId>pulsar-transaction-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.pulsar</groupId>
-            <artifactId>managed-ledger-original</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.pulsar</groupId>
-            <artifactId>pulsar-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.pulsar</groupId>
-            <artifactId>pulsar-broker</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>managed-ledger-original</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>managed-ledger-original</artifactId>
-            <version>${project.parent.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.xolstice.maven.plugins</groupId>
-                <artifactId>protobuf-maven-plugin</artifactId>
-                <version>${protobuf-maven-plugin.version}</version>
-                <configuration>
-                    <protocArtifact>com.google.protobuf:protoc:${protoc3.version}:exe:${os.detected.classifier}</protocArtifact>
-                    <checkStaleness>true</checkStaleness>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>compile</goal>
-                            <goal>test-compile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/pulsar-transaction/pom.xml b/pulsar-transaction/pom.xml
index d266b20..e1157be 100644
--- a/pulsar-transaction/pom.xml
+++ b/pulsar-transaction/pom.xml
@@ -33,7 +33,6 @@
 
   <modules>
     <module>common</module>
-    <module>buffer</module>
     <module>coordinator</module>
   </modules>