SLING-8684 - Add support for validating releases from a staging repository

* merged the StagingRepositoryFinder with the RepositoryDownloader into the
RepositoryService
diff --git a/src/main/java/org/apache/sling/cli/impl/nexus/RepositoryDownloader.java b/src/main/java/org/apache/sling/cli/impl/nexus/RepositoryService.java
similarity index 68%
rename from src/main/java/org/apache/sling/cli/impl/nexus/RepositoryDownloader.java
rename to src/main/java/org/apache/sling/cli/impl/nexus/RepositoryService.java
index 4ef6418..22d21e4 100644
--- a/src/main/java/org/apache/sling/cli/impl/nexus/RepositoryDownloader.java
+++ b/src/main/java/org/apache/sling/cli/impl/nexus/RepositoryService.java
@@ -1,21 +1,19 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ~ 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.
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*
+ * 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.sling.cli.impl.nexus;
 
 import java.io.IOException;
@@ -25,32 +23,36 @@
 import java.nio.file.Path;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.sling.cli.impl.http.HttpClientFactory;
+import org.apache.sling.cli.impl.nexus.StagingRepository.Status;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 
-@Component(
-        service = RepositoryDownloader.class
-)
-public class RepositoryDownloader {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(RepositoryDownloader.class);
+@Component(service = RepositoryService.class)
+public class RepositoryService {
+    
+    private static final String REPOSITORY_PREFIX = "orgapachesling-";
+    private static final Logger LOGGER = LoggerFactory.getLogger(RepositoryService.class);
 
     private Map<String, LocalRepository> repositories = new HashMap<>();
     private ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock();
@@ -58,6 +60,44 @@
     @Reference
     private HttpClientFactory httpClientFactory;
 
+    public List<StagingRepository> list() throws IOException {
+        return this.withStagingRepositories( reader -> {
+            Gson gson = new Gson();
+            return gson.fromJson(reader, StagingRepositories.class).getData().stream()
+                    .filter( r -> r.getType() == Status.closed)
+                    .filter( r -> r.getRepositoryId().startsWith(REPOSITORY_PREFIX) )
+                    .collect(Collectors.toList());            
+        });
+    }
+
+    public StagingRepository find(int stagingRepositoryId) throws IOException {
+        return this.withStagingRepositories( reader -> {
+            Gson gson = new Gson();
+            return gson.fromJson(reader, StagingRepositories.class).getData().stream()
+                    .filter( r -> r.getType() == Status.closed)
+                    .filter( r -> r.getRepositoryId().startsWith(REPOSITORY_PREFIX) )
+                    .filter( r -> r.getRepositoryId().endsWith("-" + stagingRepositoryId))
+                    .findFirst()
+                    .orElseThrow(() -> new IllegalArgumentException("No repository found with id " + stagingRepositoryId));            
+        });
+    }
+    
+    private <T> T withStagingRepositories(Function<InputStreamReader, T> function) throws IOException {
+        try ( CloseableHttpClient client = httpClientFactory.newClient() ) {
+            HttpGet get = new HttpGet("https://repository.apache.org/service/local/staging/profile_repositories");
+            get.addHeader("Accept", "application/json");
+            try ( CloseableHttpResponse response = client.execute(get)) {
+                try ( InputStream content = response.getEntity().getContent();
+                        InputStreamReader reader = new InputStreamReader(content)) {
+                    if ( response.getStatusLine().getStatusCode() != 200 )
+                        throw new IOException("Status line : " + response.getStatusLine());
+                    
+                    return function.apply(reader);
+                }
+            }
+        }       
+    }
+
     @NotNull
     public LocalRepository download(@NotNull StagingRepository repository) throws IOException {
         readWriteLock.readLock().lock();
@@ -143,5 +183,4 @@
             }
         }
     }
-
 }
diff --git a/src/main/java/org/apache/sling/cli/impl/nexus/StagingRepositoryFinder.java b/src/main/java/org/apache/sling/cli/impl/nexus/StagingRepositoryFinder.java
deleted file mode 100644
index 1926181..0000000
--- a/src/main/java/org/apache/sling/cli/impl/nexus/StagingRepositoryFinder.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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.sling.cli.impl.nexus;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.sling.cli.impl.http.HttpClientFactory;
-import org.apache.sling.cli.impl.nexus.StagingRepository.Status;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-import com.google.gson.Gson;
-
-@Component(service = StagingRepositoryFinder.class)
-public class StagingRepositoryFinder {
-    
-    private static final String REPOSITORY_PREFIX = "orgapachesling-";
-
-    @Reference
-    private HttpClientFactory httpClientFactory;
-
-    public List<StagingRepository> list() throws IOException {
-        return this.withStagingRepositories( reader -> {
-            Gson gson = new Gson();
-            return gson.fromJson(reader, StagingRepositories.class).getData().stream()
-                    .filter( r -> r.getType() == Status.closed)
-                    .filter( r -> r.getRepositoryId().startsWith(REPOSITORY_PREFIX) )
-                    .collect(Collectors.toList());            
-        });
-    }
-
-    public StagingRepository find(int stagingRepositoryId) throws IOException {
-        return this.withStagingRepositories( reader -> {
-            Gson gson = new Gson();
-            return gson.fromJson(reader, StagingRepositories.class).getData().stream()
-                    .filter( r -> r.getType() == Status.closed)
-                    .filter( r -> r.getRepositoryId().startsWith(REPOSITORY_PREFIX) )
-                    .filter( r -> r.getRepositoryId().endsWith("-" + stagingRepositoryId))
-                    .findFirst()
-                    .orElseThrow(() -> new IllegalArgumentException("No repository found with id " + stagingRepositoryId));            
-        });
-    }
-    
-    private <T> T withStagingRepositories(Function<InputStreamReader, T> function) throws IOException {
-        try ( CloseableHttpClient client = httpClientFactory.newClient() ) {
-            HttpGet get = new HttpGet("https://repository.apache.org/service/local/staging/profile_repositories");
-            get.addHeader("Accept", "application/json");
-            try ( CloseableHttpResponse response = client.execute(get)) {
-                try ( InputStream content = response.getEntity().getContent();
-                        InputStreamReader reader = new InputStreamReader(content)) {
-                    if ( response.getStatusLine().getStatusCode() != 200 )
-                        throw new IOException("Status line : " + response.getStatusLine());
-                    
-                    return function.apply(reader);
-                }
-            }
-        }       
-    }
-}
diff --git a/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java b/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java
index c0bd5d0..09f9f8d 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java
@@ -27,7 +27,7 @@
 import org.apache.sling.cli.impl.jira.Version;
 import org.apache.sling.cli.impl.jira.VersionClient;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
@@ -56,7 +56,7 @@
     private Integer repositoryId;
 
     @Reference
-    private StagingRepositoryFinder repoFinder;
+    private RepositoryService repoFinder;
     
     @Reference
     private VersionClient versionClient;
diff --git a/src/main/java/org/apache/sling/cli/impl/release/ListCommand.java b/src/main/java/org/apache/sling/cli/impl/release/ListCommand.java
index e4115ef..56a1297 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/ListCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/ListCommand.java
@@ -19,7 +19,7 @@
 import java.io.IOException;
 
 import org.apache.sling.cli.impl.Command;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
@@ -42,7 +42,7 @@
     private final Logger logger = LoggerFactory.getLogger(getClass());
 
     @Reference
-    private StagingRepositoryFinder repoFinder;
+    private RepositoryService repoFinder;
 
     @Override
     public void run() {
diff --git a/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java b/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java
index 17185c1..076026c 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java
@@ -35,7 +35,7 @@
 import org.apache.sling.cli.impl.jira.VersionClient;
 import org.apache.sling.cli.impl.mail.Mailer;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.apache.sling.cli.impl.people.Member;
 import org.apache.sling.cli.impl.people.MembersFinder;
 import org.osgi.service.component.annotations.Component;
@@ -67,7 +67,7 @@
     private MembersFinder membersFinder;
 
     @Reference
-    private StagingRepositoryFinder repoFinder;
+    private RepositoryService repoFinder;
 
     @Reference
     private VersionClient versionClient;
diff --git a/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java b/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java
index 5ca49f2..52c3e28 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java
@@ -37,7 +37,7 @@
 import org.apache.sling.cli.impl.mail.Mailer;
 import org.apache.sling.cli.impl.mail.VoteThreadFinder;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.apache.sling.cli.impl.people.Member;
 import org.apache.sling.cli.impl.people.MembersFinder;
 import org.osgi.service.component.annotations.Component;
@@ -65,7 +65,7 @@
     private MembersFinder membersFinder;
 
     @Reference
-    private StagingRepositoryFinder repoFinder;
+    private RepositoryService repoFinder;
 
     @Reference
     private VoteThreadFinder voteThreadFinder;
diff --git a/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java b/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java
index 14cad7e..9f919d6 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java
@@ -26,7 +26,7 @@
 import org.apache.sling.cli.impl.Command;
 import org.apache.sling.cli.impl.jbake.JBakeContentUpdater;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.ResetCommand.ResetType;
 import org.eclipse.jgit.api.errors.GitAPIException;
@@ -54,7 +54,7 @@
     private static final String GIT_CHECKOUT = "/tmp/sling-site";
 
     @Reference
-    private StagingRepositoryFinder repoFinder;
+    private RepositoryService repoFinder;
     
     private final Logger logger = LoggerFactory.getLogger(getClass());
 
diff --git a/src/main/java/org/apache/sling/cli/impl/release/UpdateReporterCommand.java b/src/main/java/org/apache/sling/cli/impl/release/UpdateReporterCommand.java
index a78ff22..137d662 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/UpdateReporterCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/UpdateReporterCommand.java
@@ -36,7 +36,7 @@
 import org.apache.sling.cli.impl.UserInput;
 import org.apache.sling.cli.impl.http.HttpClientFactory;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
@@ -63,7 +63,7 @@
     private static final Logger LOGGER = LoggerFactory.getLogger(UpdateReporterCommand.class);
 
     @Reference
-    private StagingRepositoryFinder repoFinder;
+    private RepositoryService repoFinder;
 
     @Reference
     private HttpClientFactory httpClientFactory;
diff --git a/src/main/java/org/apache/sling/cli/impl/release/VerifyReleasesCommand.java b/src/main/java/org/apache/sling/cli/impl/release/VerifyReleasesCommand.java
index 687e6d5..392f09a 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/VerifyReleasesCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/VerifyReleasesCommand.java
@@ -27,10 +27,9 @@
 import org.apache.sling.cli.impl.ci.CIStatusValidator;
 import org.apache.sling.cli.impl.nexus.Artifact;
 import org.apache.sling.cli.impl.nexus.LocalRepository;
-import org.apache.sling.cli.impl.nexus.RepositoryDownloader;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
-import org.apache.sling.cli.impl.pgp.PGPSignatureValidator;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.apache.sling.cli.impl.pgp.HashValidator;
+import org.apache.sling.cli.impl.pgp.PGPSignatureValidator;
 import org.bouncycastle.openpgp.PGPPublicKey;
 import org.bouncycastle.util.encoders.Hex;
 import org.osgi.service.component.annotations.Component;
@@ -52,10 +51,7 @@
     static final String NAME = "verify";
 
     @Reference
-    private StagingRepositoryFinder stagingRepositoryFinder;
-
-    @Reference
-    private RepositoryDownloader repositoryDownloader;
+    private RepositoryService repositoryService;
 
     @Reference
     private PGPSignatureValidator pgpSignatureValidator;
@@ -77,7 +73,7 @@
         int checksRun = 0;
         int failedChecks = 0;
         try {
-            LocalRepository repository = repositoryDownloader.download(stagingRepositoryFinder.find(repositoryId));
+            LocalRepository repository = repositoryService.download(repositoryService.find(repositoryId));
             Path repositoryRootPath = repository.getRootFolder();
             for (Artifact artifact : repository.getArtifacts()) {
                 Path artifactFilePath = repositoryRootPath.resolve(artifact.getRepositoryRelativePath());
diff --git a/src/test/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommandTest.java b/src/test/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommandTest.java
index 0daf5ce..ea146fd 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommandTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommandTest.java
@@ -30,7 +30,7 @@
 import org.apache.sling.cli.impl.jira.VersionClient;
 import org.apache.sling.cli.impl.mail.Mailer;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.apache.sling.cli.impl.people.Member;
 import org.apache.sling.cli.impl.people.MembersFinder;
 import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
@@ -110,8 +110,8 @@
 
         StagingRepository stagingRepository = mock(StagingRepository.class);
         when(stagingRepository.getDescription()).thenReturn("Apache Sling CLI Test 1.0.0");
-        StagingRepositoryFinder stagingRepositoryFinder = mock(StagingRepositoryFinder.class);
-        when(stagingRepositoryFinder.find(123)).thenReturn(stagingRepository);
+        RepositoryService repositoryService = mock(RepositoryService.class);
+        when(repositoryService.find(123)).thenReturn(stagingRepository);
 
         VersionClient versionClient = mock(VersionClient.class);
         Version version = mock(Version.class);
@@ -131,7 +131,7 @@
         osgiContext.registerService(DateProvider.class, dateProvider);
 
         osgiContext.registerService(MembersFinder.class, membersFinder);
-        osgiContext.registerService(StagingRepositoryFinder.class, stagingRepositoryFinder);
+        osgiContext.registerService(RepositoryService.class, repositoryService);
         osgiContext.registerService(VersionClient.class, versionClient);
         osgiContext.registerService(Mailer.class, mailer);
     }
diff --git a/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java b/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java
index 6583e05..c1c9444 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java
@@ -35,7 +35,7 @@
 import org.apache.sling.cli.impl.mail.Mailer;
 import org.apache.sling.cli.impl.mail.VoteThreadFinder;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.apache.sling.cli.impl.people.Member;
 import org.apache.sling.cli.impl.people.MembersFinder;
 import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
@@ -221,15 +221,15 @@
 
         StagingRepository stagingRepository = mock(StagingRepository.class);
         when(stagingRepository.getDescription()).thenReturn("Apache Sling CLI Test 1.0.0");
-        StagingRepositoryFinder stagingRepositoryFinder = mock(StagingRepositoryFinder.class);
-        when(stagingRepositoryFinder.find(123)).thenReturn(stagingRepository);
+        RepositoryService repositoryService = mock(RepositoryService.class);
+        when(repositoryService.find(123)).thenReturn(stagingRepository);
 
         VoteThreadFinder voteThreadFinder = mock(VoteThreadFinder.class);
         when(voteThreadFinder.findVoteThread("CLI Test 1.0.0")).thenReturn(thread);
 
         osgiContext.registerService(CredentialsService.class, credentialsService);
         osgiContext.registerInjectActivateService(membersFinder);
-        osgiContext.registerService(StagingRepositoryFinder.class, stagingRepositoryFinder);
+        osgiContext.registerService(RepositoryService.class, repositoryService);
         osgiContext.registerService(VoteThreadFinder.class, voteThreadFinder);
         osgiContext.registerService(Mailer.class, mailer);
     }
diff --git a/src/test/java/org/apache/sling/cli/impl/release/UpdateReporterCommandTest.java b/src/test/java/org/apache/sling/cli/impl/release/UpdateReporterCommandTest.java
index ece4d18..55f50d2 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/UpdateReporterCommandTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/UpdateReporterCommandTest.java
@@ -29,7 +29,7 @@
 import org.apache.sling.cli.impl.UserInput;
 import org.apache.sling.cli.impl.http.HttpClientFactory;
 import org.apache.sling.cli.impl.nexus.StagingRepository;
-import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder;
+import org.apache.sling.cli.impl.nexus.RepositoryService;
 import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
 import org.junit.Before;
 import org.junit.Rule;
@@ -68,7 +68,7 @@
 
     @Before
     public void before() throws IOException {
-        StagingRepositoryFinder repositoryFinder = mock(StagingRepositoryFinder.class);
+        RepositoryService repositoryFinder = mock(RepositoryService.class);
         StagingRepository stagingRepository = mock(StagingRepository.class);
         when(stagingRepository.getDescription()).thenReturn("Apache Sling CLI 1, Apache Sling CLI 2");
         when(repositoryFinder.find(42)).thenReturn(stagingRepository);