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

cschneider pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git


The following commit(s) were added to refs/heads/master by this push:
     new a2c3f9c  SLING-12288 - Allow configuration of timeouts for 
SubscriberReady check (#139)
a2c3f9c is described below

commit a2c3f9cff15d6292642bd95e8237afc83ab6fa69
Author: Christian Schneider <cschn...@adobe.com>
AuthorDate: Tue Apr 16 15:08:37 2024 +0200

    SLING-12288 - Allow configuration of timeouts for SubscriberReady check 
(#139)
---
 .../journal/impl/subscriber/DistributionSubscriber.java            | 7 +------
 .../journal/impl/subscriber/SubscriberConfiguration.java           | 6 ++++++
 .../distribution/journal/impl/subscriber/SubscriberReady.java      | 3 ---
 3 files changed, 7 insertions(+), 9 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java
 
b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java
index 170eeb0..f9fc84f 100644
--- 
a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java
+++ 
b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java
@@ -169,7 +169,6 @@ public class DistributionSubscriber {
         requireNonNull(precondition);
         requireNonNull(bookKeeperFactory);
 
-        long idleMillies = getLong(properties, 
SubscriberReady.DEFAULT_IDLE_TIME_MILLIS);
         if (config.editable()) {
             commandPoller = new CommandPoller(messagingProvider, topics, 
subSlingId, subAgentName, delay::signal);
         }
@@ -177,7 +176,7 @@ public class DistributionSubscriber {
         if (config.subscriberIdleCheck()) {
             AtomicBoolean readyHolder = 
subscriberReadyStore.getReadyHolder(subAgentName);
 
-            idleCheck = new SubscriberReady(subAgentName, idleMillies, 
SubscriberReady.DEFAULT_FORCE_IDLE_MILLIS, readyHolder, 
System::currentTimeMillis);
+            idleCheck = new SubscriberReady(subAgentName, 
config.idleMillies(), config.forceReadyMillies(), readyHolder, 
System::currentTimeMillis);
             idleReadyCheck = new SubscriberIdleCheck(context, idleCheck);
         } else {
             idleCheck = new NoopIdle();
@@ -218,10 +217,6 @@ public class DistributionSubscriber {
                 queueNames, config.subscriberIdleCheck());
     }
 
-    private long getLong(Map<String, Object> properties, long defaultValue) {
-        return Long.parseLong(properties.getOrDefault("idleMillies", 
Long.valueOf(defaultValue)).toString());
-    }
-
     public static String escapeTopicName(URI messagingUri, String topicName) {
         return String.format("%s%s_%s",
                 messagingUri.getHost(),
diff --git 
a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java
 
b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java
index fc2aa48..ca0fb65 100644
--- 
a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java
+++ 
b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java
@@ -58,4 +58,10 @@ public @interface SubscriberConfiguration {
 
     @AttributeDefinition(name = 
"ContentPackageExtractor.overwritePrimaryTypesOfFolders", description = "The 
flag determines whether the primary node types of folders should be overwritten 
during content package extraction, with a default value of 'true'.")
     boolean contentPackageExtractorOverwritePrimaryTypesOfFolders() default 
true;
+    
+    @AttributeDefinition(description = "Number of ms being idle before 
reporting ready.")
+    int idleMillies() default 10 * 1000;
+    
+    @AttributeDefinition(description = "Number of ms to force subscriber 
reporting idle.")
+    int forceReadyMillies() default 300 * 1000;
 }
diff --git 
a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java
 
b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java
index 0e8edd7..bb376da 100644
--- 
a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java
+++ 
b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java
@@ -20,7 +20,6 @@ package org.apache.sling.distribution.journal.impl.subscriber;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
 
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -43,8 +42,6 @@ import org.slf4j.LoggerFactory;
  * After becoming ready once, the check stays ready.
  */
 public class SubscriberReady implements IdleCheck {
-    public static final long DEFAULT_IDLE_TIME_MILLIS = SECONDS.toMillis(10);
-    public static final long DEFAULT_FORCE_IDLE_MILLIS = MINUTES.toMillis(5);
     public static final long ACCEPTABLE_AGE_DIFF_MS = MINUTES.toMillis(2);
     public static final int MAX_RETRIES = 10;
     

Reply via email to