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 96a08df SLING-12689 - Refactor to constructor injection (#169)
96a08df is described below
commit 96a08dfbd347be8045423c751aa925d9b1c87be0
Author: Christian Schneider <[email protected]>
AuthorDate: Mon Mar 24 08:21:38 2025 +0100
SLING-12689 - Refactor to constructor injection (#169)
* SLING-12689 - Refactor to constructor injection
* SLING-12689 - Remove unused imports
---
.../impl/subscriber/DistributionSubscriber.java | 53 +++++++---------------
.../journal/impl/subscriber/SubscriberTest.java | 7 ++-
2 files changed, 20 insertions(+), 40 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 4a5c5ef..8a9d0bf 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
@@ -101,31 +101,9 @@ public class DistributionSubscriber {
private static final Logger LOG =
LoggerFactory.getLogger(DistributionSubscriber.class);
- @Reference(name = "packageBuilder")
- private DistributionPackageBuilder packageBuilder;
+ private final Precondition precondition;
- @Reference
- private SlingSettingsService slingSettings;
-
- @Reference
- private MessagingProvider messagingProvider;
-
- @Reference(name = "precondition")
- private Precondition precondition;
-
- @Reference
- private MetricsService metricsService;
-
- @Reference
- BookKeeperFactory bookKeeperFactory;
-
- @Reference
- private SubscriberReadyStore subscriberReadyStore;
-
- @Reference
- private OnlyOnLeader onlyOnLeader;
-
- private SubscriberMetrics subscriberMetrics;
+ private final SubscriberMetrics subscriberMetrics;
private volatile Closeable idleReadyCheck; // NOSONAR
@@ -151,19 +129,22 @@ public class DistributionSubscriber {
private final Delay delay = new Delay();
private AtomicReference<DistributionAgentState> state = new
AtomicReference<DistributionAgentState>(DistributionAgentState.IDLE);
-
- @Activate
- public void activate(SubscriberConfiguration config, BundleContext
context, Map<String, Object> properties) {
- String subSlingId = requireNonNull(slingSettings.getSlingId());
+
+ @Activate
+ public DistributionSubscriber(
+ @Reference(name = "packageBuilder")
DistributionPackageBuilder packageBuilder,
+ @Reference SlingSettingsService slingSettings,
+ @Reference MessagingProvider messagingProvider,
+ @Reference(name = "precondition") Precondition precondition,
+ @Reference MetricsService metricsService,
+ @Reference BookKeeperFactory bookKeeperFactory,
+ @Reference SubscriberReadyStore subscriberReadyStore,
+ @Reference OnlyOnLeader onlyOnLeader,
+ SubscriberConfiguration config, BundleContext context,
Map<String, Object> properties
+ ) {
+ String subSlingId = requireNonNull(slingSettings.getSlingId());
subAgentName = requireNotBlank(config.name());
- requireNonNull(config);
- requireNonNull(context);
- requireNonNull(metricsService);
- requireNonNull(packageBuilder);
- requireNonNull(slingSettings);
- requireNonNull(messagingProvider);
- requireNonNull(precondition);
- requireNonNull(bookKeeperFactory);
+ this.precondition = requireNonNull(precondition);
this.subscriberMetrics = new SubscriberMetrics(metricsService,
subAgentName, getFirst(config.agentNames()), config.editable());
if (config.subscriberIdleCheck()) {
diff --git
a/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
b/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
index 0561cf1..4907b9e 100644
---
a/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
+++
b/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
@@ -65,6 +65,7 @@ import
org.apache.sling.distribution.journal.bookkeeper.BookKeeper;
import org.apache.sling.distribution.journal.bookkeeper.BookKeeperFactory;
import org.apache.sling.distribution.journal.bookkeeper.LocalStore;
import org.apache.sling.distribution.journal.shared.NoOpImportPreProcessor;
+import org.apache.sling.distribution.journal.shared.OnlyOnLeader;
import org.apache.sling.distribution.journal.shared.NoOpImportPostProcessor;
import org.apache.sling.distribution.journal.impl.precondition.Precondition;
import
org.apache.sling.distribution.journal.impl.precondition.Precondition.Decision;
@@ -179,7 +180,6 @@ public class SubscriberTest {
@InjectMocks
BookKeeperFactory bookKeeperFactory;
- @InjectMocks
DistributionSubscriber subscriber;
@Captor
@@ -445,9 +445,8 @@ public class SubscriberTest {
props.putAll(basicProps);
props.putAll(overrides);
SubscriberConfiguration config =
Converters.standardConverter().convert(props).to(SubscriberConfiguration.class);
- subscriber.bookKeeperFactory = bookKeeperFactory;
-
- subscriber.activate(config, context, props);
+ OnlyOnLeader onlyOnLeader = new OnlyOnLeader(context);
+ subscriber = new DistributionSubscriber(packageBuilder,
slingSettings, clientProvider, precondition, metricsService, bookKeeperFactory,
subscriberReadyStore, onlyOnLeader, config, context, props);
verify(clientProvider).createPoller(
Mockito.eq(Topics.PACKAGE_TOPIC),
Mockito.eq(Reset.latest),