activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clebertsuco...@apache.org
Subject activemq-artemis git commit: ARTEMIS-1923 fix constructing binding journalimpl bug
Date Tue, 19 Jun 2018 15:05:18 GMT
Repository: activemq-artemis
Updated Branches:
  refs/heads/2.6.x 9f4798a22 -> 56f5c797f


ARTEMIS-1923 fix constructing binding journalimpl bug

Clebert Suconic ammended this commit by adding a test and getter properties to satisfy the
test

This closes #2133

(cherry picked from commit 1d5128839f0cffe32cdd85032310665450792837)


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/56f5c797
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/56f5c797
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/56f5c797

Branch: refs/heads/2.6.x
Commit: 56f5c797fa28545d84605a979aa6c93034c4c68f
Parents: 9f4798a
Author: yang wei <wy96fyw@gmail.com>
Authored: Mon Jun 11 19:27:00 2018 +0800
Committer: Clebert Suconic <clebertsuconic@apache.org>
Committed: Tue Jun 19 11:05:08 2018 -0400

----------------------------------------------------------------------
 .../journal/impl/JournalFilesRepository.java    |   4 +
 .../artemis/core/journal/impl/JournalImpl.java  |  11 ++
 .../impl/journal/JournalStorageManager.java     |   2 +-
 .../JournalStorageManagerConstantTest.java      | 167 +++++++++++++++++++
 4 files changed, 183 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/56f5c797/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalFilesRepository.java
----------------------------------------------------------------------
diff --git a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalFilesRepository.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalFilesRepository.java
index 488aa1f..5896fba 100644
--- a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalFilesRepository.java
+++ b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalFilesRepository.java
@@ -130,6 +130,10 @@ public class JournalFilesRepository {
 
    // Public --------------------------------------------------------
 
+   public int getPoolSize() {
+      return poolSize;
+   }
+
    public void setExecutor(final Executor fileExecutor) {
       this.openFilesExecutor = fileExecutor;
    }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/56f5c797/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
----------------------------------------------------------------------
diff --git a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
index 849dd3e..55b92c5 100644
--- a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
+++ b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
@@ -215,6 +215,17 @@ public class JournalImpl extends JournalBase implements TestableJournal,
Journal
 
    private final Reclaimer reclaimer = new Reclaimer();
 
+   public float getCompactPercentage() {
+      return compactPercentage;
+   }
+
+   public int getCompactMinFiles() {
+      return compactMinFiles;
+   }
+
+   public JournalFilesRepository getFilesRepository() {
+      return filesRepository;
+   }
    // Constructors --------------------------------------------------
 
    public JournalImpl(final int fileSize,

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/56f5c797/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
index 9199bbe..dd8bb22 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
@@ -129,7 +129,7 @@ public class JournalStorageManager extends AbstractJournalStorageManager
{
       bindingsFF = new NIOSequentialFileFactory(config.getBindingsLocation(), criticalErrorListener,
config.getJournalMaxIO_NIO());
       bindingsFF.setDatasync(config.isJournalDatasync());
 
-      Journal localBindings = new JournalImpl(ioExecutorFactory, 1024 * 1024, 2, config.getJournalCompactMinFiles(),
config.getJournalPoolFiles(), config.getJournalCompactPercentage(), config.getJournalFileOpenTimeout(),
bindingsFF, "activemq-bindings", "bindings", 1, 0, criticalErrorListener);
+      Journal localBindings = new JournalImpl(ioExecutorFactory, 1024 * 1024, 2, config.getJournalPoolFiles(),
config.getJournalCompactMinFiles(), config.getJournalCompactPercentage(), config.getJournalFileOpenTimeout(),
bindingsFF, "activemq-bindings", "bindings", 1, 0, criticalErrorListener);
 
       bindingsJournal = localBindings;
       originalBindingsJournal = localBindings;

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/56f5c797/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/journal/JournalStorageManagerConstantTest.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/journal/JournalStorageManagerConstantTest.java
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/journal/JournalStorageManagerConstantTest.java
new file mode 100644
index 0000000..ee66fd1
--- /dev/null
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/journal/JournalStorageManagerConstantTest.java
@@ -0,0 +1,167 @@
+/*
+ * 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.
+ */
+
+package org.apache.activemq.artemis.core.server.journal;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.activemq.artemis.core.config.Configuration;
+import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
+import org.apache.activemq.artemis.core.journal.impl.JournalImpl;
+import org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager;
+import org.apache.activemq.artemis.core.server.JournalType;
+import org.apache.activemq.artemis.utils.ExecutorFactory;
+import org.apache.activemq.artemis.utils.actors.ArtemisExecutor;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class JournalStorageManagerConstantTest {
+
+   @Test
+   public void testConstant() {
+      Configuration configuration = new ConfigurationImpl();
+      configuration.setJournalType(JournalType.NIO);
+      configuration.setJournalPoolFiles(11);
+      configuration.setJournalCompactMinFiles(22);
+      configuration.setJournalCompactPercentage(33);
+      JournalStorageManager journalStorageManager = new JournalStorageManager(configuration,
null, dumbExecutor, dumbScheduler, dumbExecutor);
+
+      JournalImpl journal = (JournalImpl)journalStorageManager.getBindingsJournal();
+      assertJournalConstants(journal);
+      journal = (JournalImpl)journalStorageManager.getMessageJournal();
+      assertJournalConstants(journal);
+
+   }
+
+   private void assertJournalConstants(JournalImpl journal) {
+      Assert.assertEquals("0.33", "" + journal.getCompactPercentage());
+      Assert.assertEquals(22, journal.getCompactMinFiles());
+      Assert.assertEquals(11, journal.getFilesRepository().getPoolSize());
+   }
+
+   ExecutorFactory dumbExecutor = new ExecutorFactory() {
+      @Override
+      public ArtemisExecutor getExecutor() {
+         return new ArtemisExecutor() {
+            @Override
+            public void execute(Runnable command) {
+               command.run();
+            }
+         };
+      }
+   };
+
+   ScheduledExecutorService dumbScheduler = new ScheduledExecutorService() {
+      @Override
+      public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
{
+         return null;
+      }
+
+      @Override
+      public <V> ScheduledFuture<V> schedule(Callable<V> callable, long
delay, TimeUnit unit) {
+         return null;
+      }
+
+      @Override
+      public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay,
long period, TimeUnit unit) {
+         return null;
+      }
+
+      @Override
+      public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay,
long delay, TimeUnit unit) {
+         return null;
+      }
+
+      @Override
+      public void shutdown() {
+
+      }
+
+      @Override
+      public List<Runnable> shutdownNow() {
+         return null;
+      }
+
+      @Override
+      public boolean isShutdown() {
+         return false;
+      }
+
+      @Override
+      public boolean isTerminated() {
+         return false;
+      }
+
+      @Override
+      public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
{
+         return false;
+      }
+
+      @Override
+      public <T> Future<T> submit(Callable<T> task) {
+         return null;
+      }
+
+      @Override
+      public <T> Future<T> submit(Runnable task, T result) {
+         return null;
+      }
+
+      @Override
+      public Future<?> submit(Runnable task) {
+         return null;
+      }
+
+      @Override
+      public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>>
tasks) throws InterruptedException {
+         return null;
+      }
+
+      @Override
+      public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>>
tasks,
+                                           long timeout,
+                                           TimeUnit unit) throws InterruptedException {
+         return null;
+      }
+
+      @Override
+      public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws
InterruptedException, ExecutionException {
+         return null;
+      }
+
+      @Override
+      public <T> T invokeAny(Collection<? extends Callable<T>> tasks,
+                             long timeout,
+                             TimeUnit unit) throws InterruptedException, ExecutionException,
TimeoutException {
+         return null;
+      }
+
+      @Override
+      public void execute(Runnable command) {
+
+      }
+   };
+
+}


Mime
View raw message