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

apelluru pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-base.git


The following commit(s) were added to refs/heads/master by this push:
     new 3e60ae7  SLING-11355: sling discovery bundles: update to sling parent 
48 (#7)
3e60ae7 is described below

commit 3e60ae71785ab5ef83684b251d737e125b6fd5d1
Author: Ashok Pelluru <[email protected]>
AuthorDate: Wed Jul 20 07:25:29 2022 +0200

    SLING-11355: sling discovery bundles: update to sling parent 48 (#7)
    
    * SLING-11355: upgrade to 48
    
    * SLING-11355: fixing pr comments
    
    * SLING-11355: exclude impl packages from baseline
    
    * SLING-11355: stop exporting private packages
    
    * SLING-11355: fixing PR comments and sonar issues
    
    * Revert "SLING-11355: fixing PR comments and sonar issues"
---
 bnd.bnd                                            |   7 +
 pom.xml                                            | 136 +++++++----------
 .../discovery/base/commons/BaseViewChecker.java    |  19 ++-
 .../sling/discovery/base/commons/package-info.java |   5 +-
 .../announcement/AnnouncementRegistry.java         |   1 +
 .../{ => impl}/AnnouncementRegistryImpl.java       |  28 ++--
 .../{ => impl}/CachedAnnouncement.java             |   3 +-
 .../base/connectors/announcement/package-info.java |   5 +-
 .../discovery/base/connectors/package-info.java    |   5 +-
 .../connectors/ping/TopologyConnectorServlet.java  | 169 ++++++++++-----------
 .../ping/{ => impl}/ConnectorRegistryImpl.java     |  30 ++--
 .../ping/{ => impl}/TopologyConnectorClient.java   |   8 +-
 .../base/connectors/ping/package-info.java         |   5 +-
 .../base/connectors/ping/wl/package-info.java      |   5 +-
 .../announcement/AnnouncementRegistryImplTest.java |   1 +
 .../connectors/ping/ConnectorRegistryImplTest.java |   3 +-
 .../ping/TopologyConnectorServletTest.java         |  32 +++-
 .../base/its/setup/VirtualInstanceBuilder.java     |   4 +-
 18 files changed, 234 insertions(+), 232 deletions(-)

diff --git a/bnd.bnd b/bnd.bnd
new file mode 100644
index 0000000..db30b0c
--- /dev/null
+++ b/bnd.bnd
@@ -0,0 +1,7 @@
+-includeresource:\
+    @commons-net-*.jar!/org/apache/commons/net/util/SubnetUtils*
+
+# whitelist the private reference usage
+-fixupmessages:"Export 
org.apache.sling.discovery.base.connectors.announcement,  has 1,  private 
references [org.apache.sling.discovery.base.connectors.announcement.impl]"; \
+    restrict:=warning; \
+    is:=warn
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 023b01a..93d7bbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,13 +22,12 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.sling</groupId>
-        <artifactId>sling</artifactId>
-        <version>26</version>
+        <artifactId>sling-bundle-parent</artifactId>
+        <version>48</version>
         <relativePath />
     </parent>
 
     <artifactId>org.apache.sling.discovery.base</artifactId>
-    <packaging>bundle</packaging>
     <version>2.0.13-SNAPSHOT</version>
 
     <name>Apache Sling Discovery Base</name>
@@ -38,11 +37,13 @@
         
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-base.git</connection>
         
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-base.git</developerConnection>
         
<url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-discovery-base.git</url>
-      <tag>HEAD</tag>
-  </scm>
+        <tag>HEAD</tag>
+    </scm>
 
     <properties>
-      <jackrabbit.version>2.12.2</jackrabbit.version>
+        <!-- SLING-11355: delete after release has been created -->
+        <bnd.baseline.diffpackages>!*.announcement.*, !*.ping.*, 
*</bnd.baseline.diffpackages>
+        <jackrabbit.version>2.14.3</jackrabbit.version>
         <!-- by default Slow tests are excluded - use -PincludeSlowTests to 
include them -->
         
<sling.excluded.surefire.groups>org.apache.sling.commons.testing.junit.categories.Slow</sling.excluded.surefire.groups>
     </properties>
@@ -57,29 +58,6 @@
                     <argLine>-Xmx2048m</argLine>
                     
<excludedGroups>${sling.excluded.surefire.groups}</excludedGroups>
                 </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <!--  with 3.0.0 the following bundle dependency is failing
-                      on AEM 5.6.1 - thus switching back to 2.5.3 here:
-                                       javax.servlet,version=[2.6,3) - - 
Cannot be resolved
-                                       javax.servlet.http,version=[2.6,3) - - 
Cannot be resolved
-                                       
org.apache.commons.codec.binary,version=[1.6,2) - - Cannot be resolved
-                       -->
-                <version>2.5.3</version>
-                <extensions>true</extensions>
-                <configuration>
-                  <instructions>
-                           <Embed-Dependency>
-                             
commons-net;inline=org/apache/commons/net/util/SubnetUtils*
-                           </Embed-Dependency>
-                         </instructions>
-                       </configuration>
             </plugin>
                        <!-- discovery.base exports a few test classes for 
reuse.
                  In order for others to use these, the test-jar must be 
built/installed too.
@@ -98,50 +76,36 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <!-- when -PincludeSlowTests is set, the Slow tests should also be 
executed, 
-                hence unsetting the category excludes 
'sling.excluded.surefire.groups' to 
-                achieve that. -->
-            <id>includeSlowTests</id>
-            <properties>
-                <sling.excluded.surefire.groups />
-            </properties>
-        </profile>
-    </profiles>
+
     <dependencies>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>biz.aQute</groupId>
-            <artifactId>bndlib</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
-               <version>1.6.1</version>
+            <scope>provided</scope>
         </dependency>
+
+        <!-- OSGi Dependencies -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.http</artifactId>
+            <version>1.2.2</version>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-json_1.0_spec</artifactId>
             <version>1.0-alpha-1</version>
             <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.johnzon</artifactId>
-            <version>1.0.0</version>
-            <scope>test</scope>
         </dependency>
                <dependency>
                        <groupId>org.apache.sling</groupId>
@@ -152,21 +116,25 @@
                <dependency>
                        <groupId>javax.jcr</groupId>
                        <artifactId>jcr</artifactId>
-                       <version>2.0</version>
-                       <scope>provided</scope>
+            <scope>provided</scope>
                </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
                <dependency>
                        <groupId>org.apache.jackrabbit</groupId>
                        <artifactId>jackrabbit-api</artifactId>
                        <version>${jackrabbit.version}</version>
                        <scope>provided</scope>
                </dependency>
-               <dependency>
-                       <groupId>org.apache.sling</groupId>
-                       <artifactId>org.apache.sling.commons.osgi</artifactId>
-                       <version>2.1.0</version>
-                       <scope>provided</scope>
-               </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-spi-commons</artifactId>
+            <version>${jackrabbit.version}</version>
+            <scope>provided</scope>
+        </dependency>
                <dependency>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>org.apache.sling.settings</artifactId>
@@ -218,10 +186,6 @@
              <version>8.1.2.v20120308</version>
              <scope>test</scope>
            </dependency>
-               <dependency>
-                       <groupId>javax.servlet</groupId>
-                       <artifactId>servlet-api</artifactId>
-               </dependency>
                <dependency>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient-osgi</artifactId>
@@ -240,10 +204,12 @@
             <version>3.3</version>
             <scope>provided</scope>
         </dependency>
+
       <!-- Testing -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>junit-addons</groupId>
@@ -251,18 +217,10 @@
             <version>1.4</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock-junit4</artifactId>
-            <!-- with 2.5.1 jmock-junit4, which has a dependency on junit 4.4 
-                you get the following: NoSuchMethodError: 
org.junit.runner.Request.classes(Lorg/junit/runner/Computer;[Ljava/lang/Class;)Lorg/junit/runner/Request;
 
-                hence this explicit newer dependency. -->
-            <!-- <version>2.8.2</version> -->
-        </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.9.5</version>
+            <artifactId>mockito-core</artifactId>
+            <version>4.4.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -322,10 +280,22 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-          <groupId>org.apache.sling</groupId>
-          <artifactId>org.apache.sling.testing.sling-mock</artifactId>
-          <version>1.2.0</version>
-          <scope>test</scope>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
+            <version>3.2.2</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
+
+    <profiles>
+        <profile>
+            <!-- when -PincludeSlowTests is set, the Slow tests should also be 
executed,
+                hence unsetting the category excludes 
'sling.excluded.surefire.groups' to
+                achieve that. -->
+            <id>includeSlowTests</id>
+            <properties>
+                <sling.excluded.surefire.groups />
+            </properties>
+        </profile>
+    </profiles>
 </project>
diff --git 
a/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java 
b/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java
index 9cacb79..e8bbf22 100644
--- a/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java
+++ b/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java
@@ -25,8 +25,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.commons.scheduler.Scheduler;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
@@ -36,6 +34,12 @@ import org.apache.sling.settings.SlingSettingsService;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.http.HttpService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -84,7 +88,7 @@ public abstract class BaseViewChecker implements ViewChecker, 
Runnable {
     private boolean forcePing;
 
     /** SLING-4765 : store endpoints to /clusterInstances for more verbose 
duplicate slingId/ghost detection **/
-    protected final Map<Long, String[]> endpoints = new HashMap<Long, 
String[]>();
+    protected final Map<Long, String[]> endpoints = new HashMap<>();
 
     protected PeriodicBackgroundJob periodicPingJob;
 
@@ -227,6 +231,10 @@ public abstract class BaseViewChecker implements 
ViewChecker, Runnable {
     /**
      * Bind a http service
      */
+    @Reference(service = HttpService.class,
+            cardinality = ReferenceCardinality.MULTIPLE,
+            policy = ReferencePolicy.DYNAMIC,
+            bind = "bindHttpService", unbind = "unbindHttpService")
     protected void bindHttpService(final ServiceReference reference) {
         String[] endpointUrls = 
toStringArray(reference.getProperty(REG_PROPERTY_ENDPOINTS));
         if ( endpointUrls == null ) {
@@ -245,6 +253,7 @@ public abstract class BaseViewChecker implements 
ViewChecker, Runnable {
     protected void unbindHttpService(final ServiceReference reference) {
         synchronized ( lock ) {
             if ( 
this.endpoints.remove(reference.getProperty(Constants.SERVICE_ID)) != null ) {
+                // do nothing
             }
         }
     }
@@ -265,7 +274,7 @@ public abstract class BaseViewChecker implements 
ViewChecker, Runnable {
         } else if (propValue.getClass().isArray()) {
             // other array
             Object[] valueArray = (Object[]) propValue;
-            List<String> values = new ArrayList<String>(valueArray.length);
+            List<String> values = new ArrayList<>(valueArray.length);
             for (Object value : valueArray) {
                 if (value != null) {
                     values.add(value.toString());
@@ -276,7 +285,7 @@ public abstract class BaseViewChecker implements 
ViewChecker, Runnable {
         } else if (propValue instanceof Collection<?>) {
             // collection
             Collection<?> valueCollection = (Collection<?>) propValue;
-            List<String> valueList = new 
ArrayList<String>(valueCollection.size());
+            List<String> valueList = new ArrayList<>(valueCollection.size());
             for (Object value : valueCollection) {
                 if (value != null) {
                     valueList.add(value.toString());
diff --git 
a/src/main/java/org/apache/sling/discovery/base/commons/package-info.java 
b/src/main/java/org/apache/sling/discovery/base/commons/package-info.java
index 91962da..0839ae5 100644
--- a/src/main/java/org/apache/sling/discovery/base/commons/package-info.java
+++ b/src/main/java/org/apache/sling/discovery/base/commons/package-info.java
@@ -23,8 +23,7 @@
  *
  * @version 1.1.0
  */
-@Version("2.0.0")
+@Version("2.0.1")
 package org.apache.sling.discovery.base.commons;
 
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistry.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistry.java
index fb8b2c1..05c0610 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistry.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistry.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 
 import org.apache.sling.discovery.ClusterView;
 import org.apache.sling.discovery.InstanceDescription;
+import 
org.apache.sling.discovery.base.connectors.announcement.impl.CachedAnnouncement;
 
 /**
  * The announcement registry keeps track of all the announcement that this
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImpl.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/impl/AnnouncementRegistryImpl.java
similarity index 97%
rename from 
src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImpl.java
rename to 
src/main/java/org/apache/sling/discovery/base/connectors/announcement/impl/AnnouncementRegistryImpl.java
index a4f3957..5b275eb 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImpl.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/impl/AnnouncementRegistryImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.discovery.base.connectors.announcement;
+package org.apache.sling.discovery.base.connectors.announcement.impl;
 
 import java.util.Collection;
 import java.util.HashMap;
@@ -27,10 +27,6 @@ import java.util.Map.Entry;
 
 import javax.json.JsonException;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
@@ -40,8 +36,14 @@ import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.discovery.ClusterView;
 import org.apache.sling.discovery.InstanceDescription;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
+import org.apache.sling.discovery.base.connectors.announcement.Announcement;
+import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementFilter;
+import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
 import org.apache.sling.discovery.commons.providers.util.ResourceHelper;
 import org.apache.sling.settings.SlingSettingsService;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,8 +52,7 @@ import org.slf4j.LoggerFactory;
  * handles JSON-backed announcements and does so by storing
  * them in a local like /var/discovery/impl/clusterNodes/$slingId/announcement.
  */
-@Component
-@Service(value = AnnouncementRegistry.class)
+@Component(service = AnnouncementRegistry.class)
 public class AnnouncementRegistryImpl implements AnnouncementRegistry {
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -88,8 +89,7 @@ public class AnnouncementRegistryImpl implements 
AnnouncementRegistry {
         slingId = settingsService.getSlingId();
     }
 
-    private final Map<String,CachedAnnouncement> ownAnnouncementsCache =
-            new HashMap<String,CachedAnnouncement>();
+    private final Map<String, CachedAnnouncement> ownAnnouncementsCache = new 
HashMap<>();
 
     @Override
     public synchronized void unregisterAnnouncement(final String ownerId) {
@@ -138,12 +138,12 @@ public class AnnouncementRegistryImpl implements 
AnnouncementRegistry {
 
     @Override
     public synchronized Collection<Announcement> listLocalAnnouncements() {
-        return fillWithCachedAnnouncements(new LinkedList<Announcement>());
+        return fillWithCachedAnnouncements(new LinkedList<>());
     }
 
     @Override
     public synchronized Collection<CachedAnnouncement> 
listLocalIncomingAnnouncements() {
-        Collection<CachedAnnouncement> result = new 
LinkedList<CachedAnnouncement>(ownAnnouncementsCache.values());
+        Collection<CachedAnnouncement> result = new 
LinkedList<>(ownAnnouncementsCache.values());
         for (Iterator<CachedAnnouncement> it = result.iterator(); 
it.hasNext();) {
             CachedAnnouncement cachedAnnouncement = it.next();
             if (cachedAnnouncement.getAnnouncement().isInherited()) {
@@ -176,7 +176,7 @@ public class AnnouncementRegistryImpl implements 
AnnouncementRegistry {
             throw new IllegalArgumentException("clusterView must not be null");
         }
         ResourceResolver resourceResolver = null;
-        final Collection<Announcement> incomingAnnouncements = new 
LinkedList<Announcement>();
+        final Collection<Announcement> incomingAnnouncements = new 
LinkedList<>();
         final InstanceDescription localInstance = 
getLocalInstanceDescription(localClusterView);
         try {
             resourceResolver = resourceResolverFactory
@@ -339,7 +339,7 @@ public class AnnouncementRegistryImpl implements 
AnnouncementRegistry {
         }
 
         logger.debug("registerAnnouncement: getting the list of all local 
announcements");
-        final Collection<Announcement> announcements = new 
LinkedList<Announcement>();
+        final Collection<Announcement> announcements = new LinkedList<>();
         fillWithCachedAnnouncements(announcements);
         if (logger.isDebugEnabled()) {
             logger.debug("registerAnnouncement: list returned: 
"+(announcements==null ? "null" : announcements.size()));
@@ -587,7 +587,7 @@ public class AnnouncementRegistryImpl implements 
AnnouncementRegistry {
     @Override
     public synchronized Collection<InstanceDescription> listInstances(final 
ClusterView localClusterView) {
         logger.debug("listInstances: start. localClusterView: {}", 
localClusterView);
-        final Collection<InstanceDescription> instances = new 
LinkedList<InstanceDescription>();
+        final Collection<InstanceDescription> instances = new LinkedList<>();
 
         final Collection<Announcement> announcements = 
listAnnouncementsInSameCluster(localClusterView);
         if (announcements == null) {
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/CachedAnnouncement.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/impl/CachedAnnouncement.java
similarity index 97%
rename from 
src/main/java/org/apache/sling/discovery/base/connectors/announcement/CachedAnnouncement.java
rename to 
src/main/java/org/apache/sling/discovery/base/connectors/announcement/impl/CachedAnnouncement.java
index 426c63f..e1a7042 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/CachedAnnouncement.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/impl/CachedAnnouncement.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.discovery.base.connectors.announcement;
+package org.apache.sling.discovery.base.connectors.announcement.impl;
 
 import org.apache.sling.discovery.base.connectors.BaseConfig;
+import org.apache.sling.discovery.base.connectors.announcement.Announcement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/package-info.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/package-info.java
index b1e3218..2c89e07 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/announcement/package-info.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/announcement/package-info.java
@@ -23,8 +23,7 @@
  *
  * @version 1.1.2
  */
-@Version("2.0.0")
+@Version("2.0.1")
 package org.apache.sling.discovery.base.connectors.announcement;
 
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/package-info.java 
b/src/main/java/org/apache/sling/discovery/base/connectors/package-info.java
index 2fa7bf8..c1e6682 100644
--- a/src/main/java/org/apache/sling/discovery/base/connectors/package-info.java
+++ b/src/main/java/org/apache/sling/discovery/base/connectors/package-info.java
@@ -23,8 +23,7 @@
  *
  * @version 1.0.0
  */
-@Version("1.0.0")
+@Version("1.0.1")
 package org.apache.sling.discovery.base.connectors;
 
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServlet.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServlet.java
index 037bc3f..748b868 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServlet.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServlet.java
@@ -34,23 +34,21 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.discovery.ClusterView;
 import org.apache.sling.discovery.base.commons.ClusterViewHelper;
 import org.apache.sling.discovery.base.commons.ClusterViewService;
 import org.apache.sling.discovery.base.commons.UndefinedClusterViewException;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
 import org.apache.sling.discovery.base.connectors.announcement.Announcement;
-import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementFilter;
 import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
 import org.apache.sling.discovery.base.connectors.ping.wl.SubnetWhitelistEntry;
 import org.apache.sling.discovery.base.connectors.ping.wl.WhitelistEntry;
 import 
org.apache.sling.discovery.base.connectors.ping.wl.WildcardWhitelistEntry;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.http.HttpService;
 import org.osgi.service.http.NamespaceException;
 import org.slf4j.Logger;
@@ -63,13 +61,12 @@ import org.slf4j.LoggerFactory;
  * hmac-signature with a shared key or via a flexible whitelist)
  */
 @SuppressWarnings("serial")
-@Component(immediate = true)
-@Service(value=TopologyConnectorServlet.class)
+@Component(immediate = true, service = TopologyConnectorServlet.class)
 public class TopologyConnectorServlet extends HttpServlet {
 
-    /** 
+    /**
      * prefix under which the topology connector servlet is registered -
-     * the URL will consist of this prefix + "connector.slingId.json" 
+     * the URL will consist of this prefix + "connector.slingId.json"
      */
     private static final String TOPOLOGY_CONNECTOR_PREFIX = 
"/libs/sling/topology";
 
@@ -83,18 +80,20 @@ public class TopologyConnectorServlet extends HttpServlet {
 
     @Reference
     private HttpService httpService;
-    
+
     @Reference
     private BaseConfig config;
 
-    /** 
+    /**
      * This list contains WhitelistEntry (ips/hostnames, cidr, wildcards),
      * each filtering some hostname/addresses that are allowed to connect to 
this servlet.
      **/
-    private final List<WhitelistEntry> whitelist = new 
ArrayList<WhitelistEntry>();
-    
-    /** Set of plaintext whitelist entries - for faster lookups **/
-    private final Set<String> plaintextWhitelist = new HashSet<String>();
+    private final List<WhitelistEntry> whitelist = new ArrayList<>();
+
+    /**
+     * Set of plaintext whitelist entries - for faster lookups
+     **/
+    private final Set<String> plaintextWhitelist = new HashSet<>();
 
     private TopologyRequestValidator requestValidator;
 
@@ -106,59 +105,57 @@ public class TopologyConnectorServlet extends HttpServlet 
{
             initWhitelist(whitelistConfig);
         }
         requestValidator = new TopologyRequestValidator(config);
-        
+
         try {
-            
httpService.registerServlet(TopologyConnectorServlet.TOPOLOGY_CONNECTOR_PREFIX, 
-                    this, null, null);
-            logger.info("activate: connector servlet registered at "+
-                    TopologyConnectorServlet.TOPOLOGY_CONNECTOR_PREFIX);
+            
httpService.registerServlet(TopologyConnectorServlet.TOPOLOGY_CONNECTOR_PREFIX, 
this, null, null);
+            logger.info("activate: connector servlet registered at " + 
TopologyConnectorServlet.TOPOLOGY_CONNECTOR_PREFIX);
         } catch (ServletException e) {
-            logger.error("activate: ServletException while registering 
topology connector servlet: "+e, e);
+            logger.error("activate: ServletException while registering 
topology connector servlet: " + e, e);
         } catch (NamespaceException e) {
-            logger.error("activate: NamespaceException while registering 
topology connector servlet: "+e, e);
+            logger.error("activate: NamespaceException while registering 
topology connector servlet: " + e, e);
         }
     }
-    
+
     @Deactivate
     protected void deactivate() {
         httpService.unregister(TOPOLOGY_CONNECTOR_PREFIX);
     }
 
     void initWhitelist(String[] whitelistConfig) {
-        if (whitelistConfig==null) {
+        if (whitelistConfig == null) {
             return;
         }
         for (int i = 0; i < whitelistConfig.length; i++) {
             String aWhitelistEntry = whitelistConfig[i];
-            
+
             WhitelistEntry whitelistEntry = null;
             if (aWhitelistEntry.contains(".") && 
aWhitelistEntry.contains("/")) {
                 // then this is a CIDR notation
-                try{
+                try {
                     whitelistEntry = new SubnetWhitelistEntry(aWhitelistEntry);
-                } catch(Exception e) {
-                    logger.error("activate: wrongly formatted CIDR subnet 
definition. Expected eg '1.2.3.4/24'. ignoring: "+aWhitelistEntry);
+                } catch (Exception e) {
+                    logger.error("activate: wrongly formatted CIDR subnet 
definition. Expected eg '1.2.3.4/24'. ignoring: " + aWhitelistEntry);
                     continue;
                 }
             } else if (aWhitelistEntry.contains(".") && 
aWhitelistEntry.contains(" ")) {
                 // then this is a IP/subnet-mask notation
-                try{
+                try {
                     final StringTokenizer st = new 
StringTokenizer(aWhitelistEntry, " ");
                     final String ip = st.nextToken();
                     if (st.hasMoreTokens()) {
                         final String mask = st.nextToken();
                         if (st.hasMoreTokens()) {
-                            logger.error("activate: wrongly formatted ip 
subnet definition. Expected '10.1.2.3 255.0.0.0'. Ignoring: "+aWhitelistEntry);
+                            logger.error("activate: wrongly formatted ip 
subnet definition. Expected '10.1.2.3 255.0.0.0'. Ignoring: " + 
aWhitelistEntry);
                             continue;
                         }
                         whitelistEntry = new SubnetWhitelistEntry(ip, mask);
                     }
-                } catch(Exception e) {
-                    logger.error("activate: wrongly formatted ip subnet 
definition. Expected '10.1.2.3 255.0.0.0'. Ignoring: "+aWhitelistEntry);
+                } catch (Exception e) {
+                    logger.error("activate: wrongly formatted ip subnet 
definition. Expected '10.1.2.3 255.0.0.0'. Ignoring: " + aWhitelistEntry);
                     continue;
                 }
             }
-            if (whitelistEntry==null) {
+            if (whitelistEntry == null) {
                 if (aWhitelistEntry.contains("*") || 
aWhitelistEntry.contains("?")) {
                     whitelistEntry = new 
WildcardWhitelistEntry(aWhitelistEntry);
                 } else {
@@ -166,7 +163,7 @@ public class TopologyConnectorServlet extends HttpServlet {
                 }
             }
             logger.info("activate: adding whitelist entry: " + 
aWhitelistEntry);
-            if (whitelistEntry!=null) {
+            if (whitelistEntry != null) {
                 whitelist.add(whitelistEntry);
             }
         }
@@ -184,16 +181,16 @@ public class TopologyConnectorServlet extends HttpServlet 
{
         }
 
         final String[] pathInfo = request.getPathInfo().split("\\.");
-        final String extension = pathInfo.length==3 ? pathInfo[2] : "";
+        final String extension = pathInfo.length == 3 ? pathInfo[2] : "";
         if (!"json".equals(extension)) {
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
             return;
         }
-        final String selector = pathInfo.length==3 ? pathInfo[1] : "";
+        final String selector = pathInfo.length == 3 ? pathInfo[1] : "";
 
         announcementRegistry.unregisterAnnouncement(selector);
     }
-    
+
     @Override
     protected void doPut(HttpServletRequest request, HttpServletResponse 
response)
             throws ServletException, IOException {
@@ -206,23 +203,23 @@ public class TopologyConnectorServlet extends HttpServlet 
{
         }
 
         final String[] pathInfo = request.getPathInfo().split("\\.");
-        final String extension = pathInfo.length==3 ? pathInfo[2] : "";
+        final String extension = pathInfo.length == 3 ? pathInfo[2] : "";
         if (!"json".equals(extension)) {
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
             return;
         }
-        
-        final String selector = pathInfo.length==3 ? pathInfo[1] : "";
+
+        final String selector = pathInfo.length == 3 ? pathInfo[1] : "";
 
         String topologyAnnouncementJSON = 
requestValidator.decodeMessage(request);
-       if (logger.isDebugEnabled()) {
-               logger.debug("doPost: incoming topology announcement is: "
-                       + topologyAnnouncementJSON);
-       }
+
+        if (logger.isDebugEnabled()) {
+            // javasecurity:S5145: Replace pattern-breaking characters
+            logger.debug("doPost: incoming topology announcement is: " + 
topologyAnnouncementJSON.replaceAll("[\n\r\t]", "_"));
+        }
         final Announcement incomingTopologyAnnouncement;
         try {
-            incomingTopologyAnnouncement = Announcement
-                    .fromJSON(topologyAnnouncementJSON);
+            incomingTopologyAnnouncement = 
Announcement.fromJSON(topologyAnnouncementJSON);
 
             if (!incomingTopologyAnnouncement.getOwnerId().equals(selector)) {
                 response.sendError(HttpServletResponse.SC_BAD_REQUEST);
@@ -230,15 +227,14 @@ public class TopologyConnectorServlet extends HttpServlet 
{
             }
 
             String slingId = clusterViewService.getSlingId();
-            if (slingId==null) {
-               
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-               logger.info("doPut: no slingId available. Service not ready as 
expected at the moment.");
-               return;
+            if (slingId == null) {
+                
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                logger.info("doPut: no slingId available. Service not ready as 
expected at the moment.");
+                return;
             }
-                       incomingTopologyAnnouncement.removeInherited(slingId);
+            incomingTopologyAnnouncement.removeInherited(slingId);
 
-            final Announcement replyAnnouncement = new Announcement(
-                    slingId);
+            final Announcement replyAnnouncement = new Announcement(slingId);
 
             long backoffInterval = -1;
             ClusterView clusterView = clusterViewService.getLocalClusterView();
@@ -249,19 +245,19 @@ public class TopologyConnectorServlet extends HttpServlet 
{
                 return;
             } else if (ClusterViewHelper.contains(clusterView, 
incomingTopologyAnnouncement
                     .getOwnerId())) {
-               if (logger.isDebugEnabled()) {
-                       logger.debug("doPost: rejecting an announcement from an 
instance that is part of my cluster: "
-                               + incomingTopologyAnnouncement);
-               }
+                if (logger.isDebugEnabled()) {
+                    logger.debug("doPost: rejecting an announcement from an 
instance that is part of my cluster: "
+                            + incomingTopologyAnnouncement);
+                }
                 // marking as 'loop'
                 replyAnnouncement.setLoop(true);
                 backoffInterval = config.getBackoffStandbyInterval();
             } else if (ClusterViewHelper.containsAny(clusterView, 
incomingTopologyAnnouncement
                     .listInstances())) {
-               if (logger.isDebugEnabled()) {
-                       logger.debug("doPost: rejecting an announcement as it 
contains instance(s) that is/are part of my cluster: "
-                               + incomingTopologyAnnouncement);
-               }
+                if (logger.isDebugEnabled()) {
+                    logger.debug("doPost: rejecting an announcement as it 
contains instance(s) that is/are part of my cluster: "
+                            + incomingTopologyAnnouncement);
+                }
                 // marking as 'loop'
                 replyAnnouncement.setLoop(true);
                 backoffInterval = config.getBackoffStandbyInterval();
@@ -269,13 +265,13 @@ public class TopologyConnectorServlet extends HttpServlet 
{
                 backoffInterval = announcementRegistry
                         .registerAnnouncement(incomingTopologyAnnouncement);
                 if (logger.isDebugEnabled()) {
-                    logger.debug("doPost: backoffInterval after registration: 
"+backoffInterval);
+                    logger.debug("doPost: backoffInterval after registration: 
" + backoffInterval);
                 }
-                if (backoffInterval==-1) {
-                       if (logger.isDebugEnabled()) {
-                       logger.debug("doPost: rejecting an announcement from an 
instance that I already see in my topology: "
-                               + incomingTopologyAnnouncement);
-                       }
+                if (backoffInterval == -1) {
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("doPost: rejecting an announcement from 
an instance that I already see in my topology: "
+                                + incomingTopologyAnnouncement);
+                    }
                     // marking as 'loop'
                     replyAnnouncement.setLoop(true);
                     backoffInterval = config.getBackoffStandbyInterval();
@@ -283,33 +279,29 @@ public class TopologyConnectorServlet extends HttpServlet 
{
                     // normal, successful case: replying with the part of the 
topology which this instance sees
                     replyAnnouncement.setLocalCluster(clusterView);
                     announcementRegistry.addAllExcept(replyAnnouncement, 
clusterView,
-                            new AnnouncementFilter() {
-    
-                                public boolean accept(final String 
receivingSlingId, Announcement announcement) {
-                                    if (announcement.getPrimaryKey().equals(
-                                            incomingTopologyAnnouncement
-                                                    .getPrimaryKey())) {
-                                        return false;
-                                    }
-                                    return true;
+                            (receivingSlingId, announcement) -> {
+                                if (announcement.getPrimaryKey().equals(
+                                        
incomingTopologyAnnouncement.getPrimaryKey())) {
+                                    return false;
                                 }
+                                return true;
                             });
                 }
             }
-            if (backoffInterval>0) {
+            if (backoffInterval > 0) {
                 replyAnnouncement.setBackoffInterval(backoffInterval);
                 if (logger.isDebugEnabled()) {
-                    logger.debug("doPost: backoffInterval for client set to 
"+replyAnnouncement.getBackoffInterval());
+                    logger.debug("doPost: backoffInterval for client set to " 
+ replyAnnouncement.getBackoffInterval());
                 }
             }
             final String p = 
requestValidator.encodeMessage(replyAnnouncement.asJSON());
             requestValidator.trustMessage(response, request, p);
             // gzip the response if the client accepts this
             final String acceptEncodingHeader = 
request.getHeader("Accept-Encoding");
-            if (acceptEncodingHeader!=null && 
acceptEncodingHeader.contains("gzip")) {
+            if (acceptEncodingHeader != null && 
acceptEncodingHeader.contains("gzip")) {
                 // tell the client that the content is gzipped:
                 response.setHeader("Content-Encoding", "gzip");
-                
+
                 // then gzip the body
                 final GZIPOutputStream gzipOut = new 
GZIPOutputStream(response.getOutputStream());
                 gzipOut.write(p.getBytes("UTF-8"));
@@ -324,13 +316,15 @@ public class TopologyConnectorServlet extends HttpServlet 
{
             logger.error("doPost: Got a JSONException: " + e, e);
             response.sendError(500);
         } catch (UndefinedClusterViewException e) {
-            logger.warn("doPost: no clusterView available at the moment - 
cannot handle connectors now: "+e);
+            logger.warn("doPost: no clusterView available at the moment - 
cannot handle connectors now: " + e);
             response.sendError(503); // "please retry, but atm I can't help 
since I'm isolated"
         }
 
     }
-    
-    /** Checks if the provided request's remote server is whitelisted **/
+
+    /**
+     * Checks if the provided request's remote server is whitelisted
+     **/
     boolean isWhitelisted(final HttpServletRequest request) {
         if (config.isHmacEnabled()) {
             final boolean isTrusted = requestValidator.isTrusted(request);
@@ -340,20 +334,19 @@ public class TopologyConnectorServlet extends HttpServlet 
{
             }
             return isTrusted;
         }
-        
+
         if (plaintextWhitelist.contains(request.getRemoteHost()) ||
                 plaintextWhitelist.contains(request.getRemoteAddr())) {
             return true;
         }
 
-        for (Iterator<WhitelistEntry> it = whitelist.iterator(); 
it.hasNext();) {
+        for (Iterator<WhitelistEntry> it = whitelist.iterator(); it.hasNext(); 
) {
             WhitelistEntry whitelistEntry = it.next();
             if (whitelistEntry.accepts(request)) {
                 return true;
             }
         }
-        logger.info("isWhitelisted: rejecting " + request.getRemoteAddr()
-                + ", " + request.getRemoteHost());
+        logger.info("isWhitelisted: rejecting " + request.getRemoteAddr() + ", 
" + request.getRemoteHost());
         return false;
     }
 
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImpl.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/impl/ConnectorRegistryImpl.java
similarity index 87%
rename from 
src/main/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImpl.java
rename to 
src/main/java/org/apache/sling/discovery/base/connectors/ping/impl/ConnectorRegistryImpl.java
index f46a6e4..2baa8db 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImpl.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/impl/ConnectorRegistryImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.discovery.base.connectors.ping;
+package org.apache.sling.discovery.base.connectors.ping.impl;
 
 import java.net.InetAddress;
 import java.net.URL;
@@ -28,15 +28,16 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.discovery.base.commons.ClusterViewService;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
 import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
-import org.osgi.service.component.ComponentContext;
+import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistry;
+import 
org.apache.sling.discovery.base.connectors.ping.TopologyConnectorClientInformation;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -45,14 +46,13 @@ import org.slf4j.LoggerFactory;
  * keeps a list of outgoing connectors and is capable of
  * pinging them.
  */
-@Component
-@Service(value = ConnectorRegistry.class)
+@Component(service= ConnectorRegistry.class)
 public class ConnectorRegistryImpl implements ConnectorRegistry {
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
     /** A map of id-> topology connector clients currently registered/activate 
**/
-    private final Map<String, TopologyConnectorClient> outgoingClientsMap = 
new HashMap<String, TopologyConnectorClient>();
+    private final Map<String, TopologyConnectorClient> outgoingClientsMap = 
new HashMap<>();
 
     @Reference
     private AnnouncementRegistry announcementRegistry;
@@ -74,8 +74,8 @@ public class ConnectorRegistryImpl implements 
ConnectorRegistry {
     }
     
     @Activate
-    protected void activate(final ComponentContext cc) {
-        port = cc.getBundleContext().getProperty("org.osgi.service.http.port");
+    protected void activate(BundleContext context) {
+        port = context.getProperty("org.osgi.service.http.port");
     }
     
     @Deactivate
@@ -102,7 +102,7 @@ public class ConnectorRegistryImpl implements 
ConnectorRegistry {
                 Entry<String, TopologyConnectorClient> entry = it.next();
                 if 
(entry.getValue().getConnectorUrl().toExternalForm().equals(connectorUrl.toExternalForm()))
 {
                     it.remove();
-                    logger.info("registerOutgoingConnection: re-registering 
connector: "+connectorUrl);
+                    logger.info("registerOutgoingConnection: re-registering 
connector: {}", connectorUrl);
                 }
             }
             String serverInfo;
@@ -122,7 +122,7 @@ public class ConnectorRegistryImpl implements 
ConnectorRegistry {
     }
 
     public Collection<TopologyConnectorClientInformation> 
listOutgoingConnectors() {
-        final List<TopologyConnectorClientInformation> result = new 
ArrayList<TopologyConnectorClientInformation>();
+        final List<TopologyConnectorClientInformation> result = new 
ArrayList<>();
         synchronized (outgoingClientsMap) {
             result.addAll(outgoingClientsMap.values());
         }
@@ -145,7 +145,7 @@ public class ConnectorRegistryImpl implements 
ConnectorRegistry {
     public void pingOutgoingConnectors(boolean force) {
         List<TopologyConnectorClient> outgoingTemplatesClone;
         synchronized (outgoingClientsMap) {
-            outgoingTemplatesClone = new ArrayList<TopologyConnectorClient>(
+            outgoingTemplatesClone = new ArrayList<>(
                     outgoingClientsMap.values());
         }
         for (Iterator<TopologyConnectorClient> it = outgoingTemplatesClone
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorClient.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/impl/TopologyConnectorClient.java
similarity index 97%
rename from 
src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorClient.java
rename to 
src/main/java/org/apache/sling/discovery/base/connectors/ping/impl/TopologyConnectorClient.java
index 9cb6e2c..e3a27c0 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorClient.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/impl/TopologyConnectorClient.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.discovery.base.connectors.ping;
+package org.apache.sling.discovery.base.connectors.ping.impl;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -53,6 +53,8 @@ import org.apache.sling.discovery.base.connectors.BaseConfig;
 import org.apache.sling.discovery.base.connectors.announcement.Announcement;
 import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementFilter;
 import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
+import 
org.apache.sling.discovery.base.connectors.ping.TopologyConnectorClientInformation;
+import 
org.apache.sling.discovery.base.connectors.ping.TopologyRequestValidator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -113,8 +115,8 @@ public class TopologyConnectorClient implements
     private long backoffPeriodEnd = -1;
     
     TopologyConnectorClient(final ClusterViewService clusterViewService,
-            final AnnouncementRegistry announcementRegistry, final BaseConfig 
config,
-            final URL connectorUrl, final String serverInfo) {
+                                   final AnnouncementRegistry 
announcementRegistry, final BaseConfig config,
+                                   final URL connectorUrl, final String 
serverInfo) {
         if (clusterViewService == null) {
             throw new IllegalArgumentException(
                     "clusterViewService must not be null");
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/package-info.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/package-info.java
index c1aa7e0..2732bd1 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/package-info.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/package-info.java
@@ -23,8 +23,7 @@
  *
  * @version 1.0.0
  */
-@Version("1.0.0")
+@Version("1.0.1")
 package org.apache.sling.discovery.base.connectors.ping;
 
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/wl/package-info.java
 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/wl/package-info.java
index 091715c..441f9a9 100644
--- 
a/src/main/java/org/apache/sling/discovery/base/connectors/ping/wl/package-info.java
+++ 
b/src/main/java/org/apache/sling/discovery/base/connectors/ping/wl/package-info.java
@@ -23,8 +23,7 @@
  *
  * @version 1.0.0
  */
-@Version("1.0.0")
+@Version("1.0.1")
 package org.apache.sling.discovery.base.connectors.ping.wl;
 
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git 
a/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
 
b/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
index 3706d6e..bd8bf74 100644
--- 
a/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
+++ 
b/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
@@ -35,6 +35,7 @@ import org.apache.sling.commons.testing.junit.categories.Slow;
 import org.apache.sling.discovery.ClusterView;
 import org.apache.sling.discovery.InstanceDescription;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
+import 
org.apache.sling.discovery.base.connectors.announcement.impl.AnnouncementRegistryImpl;
 import org.apache.sling.discovery.base.its.setup.TopologyHelper;
 import org.apache.sling.discovery.base.its.setup.VirtualInstanceHelper;
 import org.apache.sling.discovery.base.its.setup.mock.MockFactory;
diff --git 
a/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
 
b/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
index f743418..0d6ee31 100644
--- 
a/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
+++ 
b/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
@@ -26,7 +26,8 @@ import java.util.UUID;
 import org.apache.sling.discovery.base.commons.ClusterViewService;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
 import org.apache.sling.discovery.base.connectors.DummyVirtualInstanceBuilder;
-import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistryImpl;
+import 
org.apache.sling.discovery.base.connectors.announcement.impl.AnnouncementRegistryImpl;
+import 
org.apache.sling.discovery.base.connectors.ping.impl.ConnectorRegistryImpl;
 import org.apache.sling.discovery.base.its.setup.VirtualInstance;
 import org.apache.sling.discovery.base.its.setup.VirtualInstanceBuilder;
 import org.apache.sling.discovery.base.its.setup.mock.MockFactory;
diff --git 
a/src/test/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServletTest.java
 
b/src/test/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServletTest.java
index 8bf4c5a..6cd804a 100644
--- 
a/src/test/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServletTest.java
+++ 
b/src/test/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServletTest.java
@@ -25,16 +25,24 @@ import static org.mockito.Mockito.when;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.sling.discovery.base.commons.ClusterViewService;
 import org.apache.sling.discovery.base.connectors.BaseConfig;
+import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
+import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.osgi.service.http.HttpService;
 
-import junitx.util.PrivateAccessor;
+import java.util.Hashtable;
 
 public class TopologyConnectorServletTest {
 
     private TopologyConnectorServlet servlet;
-    
+
+    @Rule
+    public final OsgiContext context = new OsgiContext();
+
     private HttpServletRequest getRequest(String host, String addr) {
         HttpServletRequest result = mock(HttpServletRequest.class);
         when(result.getRemoteAddr()).thenReturn(addr);
@@ -44,9 +52,23 @@ public class TopologyConnectorServletTest {
     
     @Before
     public void setUp() throws Exception {
-        servlet = new TopologyConnectorServlet();
-        BaseConfig config = mock(BaseConfig.class);
-        PrivateAccessor.setField(servlet, "config", config);
+        //Mock BaseConfig
+        BaseConfig baseConfig = mock(BaseConfig.class);
+        context.registerService(BaseConfig.class, baseConfig);
+
+        //Mock AnnouncementRegistry
+        AnnouncementRegistry announcementRegistry = 
mock(AnnouncementRegistry.class);
+        context.registerService(AnnouncementRegistry.class, 
announcementRegistry);
+
+        //Mock ClusterViewService
+        ClusterViewService clusterViewService = mock(ClusterViewService.class);
+        context.registerService(ClusterViewService.class, clusterViewService);
+
+        //Mock HttpService
+        HttpService httpService = mock(HttpService.class);
+        context.registerService(HttpService.class, httpService);
+
+        servlet = 
context.registerInjectActivateService(TopologyConnectorServlet.class, new 
TopologyConnectorServlet(), new Hashtable<>());
     }
     
     @Test
diff --git 
a/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
 
b/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
index 15eee4b..7925258 100644
--- 
a/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
+++ 
b/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
@@ -26,9 +26,9 @@ import 
org.apache.sling.discovery.base.commons.BaseDiscoveryService;
 import org.apache.sling.discovery.base.commons.ClusterViewService;
 import org.apache.sling.discovery.base.commons.ViewChecker;
 import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
-import 
org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistryImpl;
+import 
org.apache.sling.discovery.base.connectors.announcement.impl.AnnouncementRegistryImpl;
 import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistry;
-import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistryImpl;
+import 
org.apache.sling.discovery.base.connectors.ping.impl.ConnectorRegistryImpl;
 import org.apache.sling.discovery.base.its.setup.mock.ArtificialDelay;
 import org.apache.sling.discovery.base.its.setup.mock.FailingScheduler;
 import org.apache.sling.discovery.commons.providers.base.DummyScheduler;

Reply via email to