From 8bd5684dd1e5c7c8cd267b54d043ef1c1cd39979 Mon Sep 17 00:00:00 2001 From: Dominik Przybysz Date: Sun, 20 Sep 2026 23:20:11 +0200 Subject: [PATCH 1/2] ARIES-1285: Use parameterized generic Service Registration and Service Reference in Quiesce --- .../apache/aries/quiesce/manager/impl/Activator.java | 2 +- .../quiesce/manager/impl/QuiesceManagerImpl.java | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/Activator.java b/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/Activator.java index 759e107de3..8002b9f458 100644 --- a/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/Activator.java +++ b/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/Activator.java @@ -28,7 +28,7 @@ public class Activator implements BundleActivator { public void start(BundleContext bundleContext) throws Exception { QuiesceManager manager = new QuiesceManagerImpl(bundleContext); - serviceReg = bundleContext.registerService(QuiesceManager.class.getName(), manager, null); + serviceReg = bundleContext.registerService(QuiesceManager.class, manager, null); } public void stop(BundleContext bundleContext) throws Exception { diff --git a/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java b/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java index 64be212c43..1a9ff11dd2 100644 --- a/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java +++ b/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java @@ -14,6 +14,7 @@ package org.apache.aries.quiesce.manager.impl; import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -217,8 +218,9 @@ public BundleQuiescer(Set bundlesToQuiesce, long timeout, QuiesceFuture public void run() { try { if (bundleContext != null) { - ServiceReference[] serviceRefs = bundleContext.getServiceReferences(QuiesceParticipant.class.getName(), null); - if (serviceRefs != null) { + Collection> serviceRefs = + bundleContext.getServiceReferences(QuiesceParticipant.class, null); + if (serviceRefs != null && !serviceRefs.isEmpty()) { List participants = new ArrayList(); final List callbacks = new ArrayList(); List copyOfBundles = new ArrayList(bundlesToQuiesce); @@ -241,8 +243,8 @@ public void run() { //Create callback objects for all participants - for( ServiceReference sr : serviceRefs ) { - QuiesceParticipant participant = (QuiesceParticipant) bundleContext.getService(sr); + for( ServiceReference sr : serviceRefs ) { + QuiesceParticipant participant = bundleContext.getService(sr); participants.add(participant); callbacks.add(new QuiesceCallbackImpl(bundlesToQuiesce, callbacks, future, timeoutFuture)); } @@ -355,4 +357,4 @@ private boolean allCallbacksComplete() { return allDone; } } -} \ No newline at end of file +} From 0811e2dce8f270daea1f0faba27cc4bcc318120a Mon Sep 17 00:00:00 2001 From: Dominik Przybysz Date: Sun, 20 Sep 2026 23:51:06 +0200 Subject: [PATCH 2/2] ARIES-1285: Fix PMD findings --- .../quiesce/manager/impl/QuiesceManagerImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java b/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java index 1a9ff11dd2..ae83e74446 100644 --- a/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java +++ b/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/QuiesceManagerImpl.java @@ -98,7 +98,7 @@ public Future quiesceWithFuture(List bundlesToQuiesce) { public Future quiesceWithFuture(long timeout, List bundles) { QuiesceFuture result = new QuiesceFuture(); - if (bundles != null && !!!bundles.isEmpty()) { + if (bundles != null && !bundles.isEmpty()) { //check that bundle b is not already quiescing Iterator it = bundles.iterator(); Set bundlesToQuiesce = new HashSet(); @@ -135,7 +135,7 @@ public Object get() throws InterruptedException, ExecutionException { } public Object get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { - if (!!!latch.await(timeout, unit)) + if (!latch.await(timeout, unit)) throw new TimeoutException(); return null; @@ -150,7 +150,7 @@ public boolean isDone() { } public void registerDone() { - if (!!!isDone()) { + if (!isDone()) { latch.countDown(); } } @@ -313,10 +313,10 @@ public void bundleQuiesced(Bundle... bundlesQuiesced) { synchronized (allCallbacks) { for(Bundle b : bundlesQuiesced) { - if(QuiesceManagerImpl.stillQuiescing(b)) { + if(stillQuiescing(b)) { if(toQuiesce.remove(b)) { if(checkOthers(b)){ - QuiesceManagerImpl.stopBundle(b, toQuiesceShared); + stopBundle(b, toQuiesceShared); if(allCallbacksComplete()){ future.registerDone(); timeoutFuture.cancel(false); @@ -342,7 +342,7 @@ private boolean checkOthers(Bundle b) { boolean allDone = true; Iterator it = allCallbacks.iterator(); while (allDone && it.hasNext()) { - allDone = !!!it.next().toQuiesce.contains(b); + allDone = !it.next().toQuiesce.contains(b); } return allDone; } @@ -352,7 +352,7 @@ private boolean allCallbacksComplete() { Iterator it = allCallbacks.iterator(); while (allDone && it.hasNext()) { QuiesceCallbackImpl next = it.next(); - if (!!!next.toQuiesce.isEmpty()) allDone = false; + if (!next.toQuiesce.isEmpty()) allDone = false; } return allDone; }