diff --git a/mirror-core/src/main/java/ru/di9/mirror/core/handler/MavenHandler.java b/mirror-core/src/main/java/ru/di9/mirror/core/handler/MavenHandler.java index b566592..3d4bb3a 100644 --- a/mirror-core/src/main/java/ru/di9/mirror/core/handler/MavenHandler.java +++ b/mirror-core/src/main/java/ru/di9/mirror/core/handler/MavenHandler.java @@ -23,25 +23,30 @@ public class MavenHandler { return optionalInputStream .map(inputStream -> new GetFileResponse(fileName, inputStream)); } else { - for (ExternalMavenService externalMavenService : externalMavenServices) { - final String nameForStore = "/" + externalMavenService.getId() + "/" + path; + return findInMirrors(path, fileName); + } + } - optionalInputStream = minioService.get(nameForStore); - if (optionalInputStream.isPresent()) { - return optionalInputStream + private Optional findInMirrors(String path, String fileName) { + Optional result; + for (ExternalMavenService externalMavenService : externalMavenServices) { + final String nameForStore = "/" + externalMavenService.getId() + "/" + path; + + result = minioService.get(nameForStore); + if (result.isPresent()) { + return result + .map(inputStream -> new GetFileResponse(fileName, inputStream)); + } else { + result = externalMavenService.getFile(path); + if (result.isPresent()) { + minioService.put(nameForStore, result.get()); + return minioService.get(nameForStore) .map(inputStream -> new GetFileResponse(fileName, inputStream)); - } else { - optionalInputStream = externalMavenService.getFile(path); - if (optionalInputStream.isPresent()) { - minioService.put(nameForStore, optionalInputStream.get()); - return minioService.get(nameForStore) - .map(inputStream -> new GetFileResponse(fileName, inputStream)); - } } } - - return Optional.empty(); } + + return Optional.empty(); } public void putFile(String path, InputStream inputStream) {