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

mattrpav pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new a148e598ab [#2140] Improve KahaDB extensibility
a148e598ab is described below

commit a148e598ab065656523f87e54f77900cce44dd07
Author: Matt Pavlovich <[email protected]>
AuthorDate: Mon Jun 22 21:56:34 2026 -0500

    [#2140] Improve KahaDB extensibility
---
 .../store/kahadb/KahaDBPersistenceAdapter.java         |  6 +++++-
 .../apache/activemq/store/kahadb/MessageDatabase.java  | 18 +++++++++---------
 .../activemq/store/kahadb/disk/journal/DataFile.java   |  2 +-
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git 
a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/KahaDBPersistenceAdapter.java
 
b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/KahaDBPersistenceAdapter.java
index 1955f8450b..2725eb08a9 100644
--- 
a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/KahaDBPersistenceAdapter.java
+++ 
b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/KahaDBPersistenceAdapter.java
@@ -67,7 +67,11 @@ import static 
org.apache.activemq.broker.jmx.BrokerMBeanSupport.createPersistenc
 public class KahaDBPersistenceAdapter extends LockableServiceSupport 
implements PersistenceAdapter,
     JournaledStore, TransactionIdTransformerAware, NoLocalSubscriptionAware {
 
-    private final KahaDBStore letter = new KahaDBStore();
+    private final KahaDBStore letter = createStore();
+
+    protected KahaDBStore createStore() {
+        return new KahaDBStore();
+    }
 
     /**
      * @param context
diff --git 
a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
 
b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
index 2709817d01..08751b9c3b 100644
--- 
a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
+++ 
b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
@@ -138,7 +138,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
 
     static final byte COMPACTED_JOURNAL_FILE = DataFile.STANDARD_LOG_FILE + 1;
 
-    class Metadata {
+    protected class Metadata {
         protected Page<Metadata> page;
         protected int state;
         protected BTreeIndex<String, StoredDestination> destinations;
@@ -249,7 +249,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
 
     protected PageFile pageFile;
     protected Journal journal;
-    Metadata metadata = new Metadata();
+    protected Metadata metadata = new Metadata();
     protected final PersistenceAdapterStatistics persistenceAdapterStatistics 
= new PersistenceAdapterStatistics();
 
     MetadataMarshaller metadataMarshaller = new MetadataMarshaller();
@@ -1258,7 +1258,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
     }
 
     @SuppressWarnings("rawtypes")
-    void process(final KahaAddMessageCommand command, final Location location, 
final IndexAware runWithIndexLock) throws IOException {
+    protected void process(final KahaAddMessageCommand command, final Location 
location, final IndexAware runWithIndexLock) throws IOException {
         if (command.hasTransactionInfo()) {
             List<Operation> inflightTx = 
getInflightTx(command.getTransactionInfo());
             inflightTx.add(new AddOperation(command, location, 
runWithIndexLock));
@@ -1334,7 +1334,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
     }
 
     @SuppressWarnings("rawtypes")
-    void process(KahaCommitCommand command, final Location location, final 
IndexAware before) throws IOException {
+    protected void process(KahaCommitCommand command, final Location location, 
final IndexAware before) throws IOException {
         TransactionId key = 
TransactionIdConversion.convert(command.getTransactionInfo());
         List<Operation> inflightTx;
         synchronized (inflightTransactions) {
@@ -3179,7 +3179,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
     @SuppressWarnings("rawtypes")
     private final LinkedHashMap<TransactionId, List<Operation>> 
inflightTransactions = new LinkedHashMap<>();
     @SuppressWarnings("rawtypes")
-    final LinkedHashMap<TransactionId, List<Operation>> preparedTransactions = 
new LinkedHashMap<>();
+    protected final LinkedHashMap<TransactionId, List<Operation>> 
preparedTransactions = new LinkedHashMap<>();
 
     @SuppressWarnings("rawtypes")
     private List<Operation> getInflightTx(KahaTransactionInfo info) {
@@ -3197,7 +3197,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
         return TransactionIdConversion.convert(transactionInfo);
     }
 
-    abstract static class Operation <T extends JournalCommand<T>> {
+    protected abstract static class Operation <T extends JournalCommand<T>> {
         final T command;
         final Location location;
 
@@ -3217,7 +3217,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
         abstract public void execute(Transaction tx) throws IOException;
     }
 
-    class AddOperation extends Operation<KahaAddMessageCommand> {
+    protected class AddOperation extends Operation<KahaAddMessageCommand> {
         final IndexAware runWithIndexLock;
         public AddOperation(KahaAddMessageCommand command, Location location, 
IndexAware runWithIndexLock) {
             super(command, location);
@@ -3233,7 +3233,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
         }
     }
 
-    class RemoveOperation extends Operation<KahaRemoveMessageCommand> {
+    protected class RemoveOperation extends 
Operation<KahaRemoveMessageCommand> {
 
         public RemoveOperation(KahaRemoveMessageCommand command, Location 
location) {
             super(command, location);
@@ -4024,7 +4024,7 @@ public abstract class MessageDatabase extends 
ServiceSupport implements BrokerSe
         this.indexDirectory = indexDirectory;
     }
 
-    interface IndexAware {
+    protected interface IndexAware {
         void sequenceAssignedWithIndexLocked(long index);
     }
 
diff --git 
a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/DataFile.java
 
b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/DataFile.java
index 5e8fb7104e..fc4edeb7bc 100644
--- 
a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/DataFile.java
+++ 
b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/DataFile.java
@@ -38,7 +38,7 @@ public class DataFile extends LinkedNode<DataFile> implements 
Comparable<DataFil
     protected final SequenceSet corruptedBlocks = new SequenceSet();
     protected RecoverableRandomAccessFile appendRandomAccessFile;
 
-    DataFile(File file, int number) {
+    protected DataFile(File file, int number) {
         this.file = file;
         this.dataFileId = number;
         length = (int)(file.exists() ? file.length() : 0);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to