refactoring

This commit is contained in:
2022-05-07 19:17:40 +03:00
parent cbfe2c50a7
commit 07eb599f12
11 changed files with 31 additions and 40 deletions

View File

@@ -4,7 +4,7 @@ import io.minio.MinioClient;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import ru.di9.mirror.core.domain.ItemRecord2; import ru.di9.mirror.core.domain.ItemRecord;
import java.io.InputStream; import java.io.InputStream;
import java.util.List; import java.util.List;
@@ -35,7 +35,7 @@ class MinioServiceIntTest {
@Test @Test
void list() { void list() {
List<ItemRecord2> list = minioService.list("/local/ghast/ghast-tools/"); List<ItemRecord> list = minioService.list("/local/ghast/ghast-tools/");
assertNotNull(list); assertNotNull(list);
assertFalse(list.isEmpty()); assertFalse(list.isEmpty());

View File

@@ -1,16 +1,15 @@
package ru.di9.mirror.core; package ru.di9.mirror.core;
import lombok.AccessLevel; import lombok.experimental.UtilityClass;
import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE) @UtilityClass
public final class Utils { public final class Utils {
public static boolean isEmptyString(String string) { public boolean isEmptyString(String string) {
return string == null || string.isEmpty() || string.isBlank(); return string == null || string.isEmpty() || string.isBlank();
} }
public static boolean isNotEmptyString(String string) { public boolean isNotEmptyString(String string) {
return !isEmptyString(string); return !isEmptyString(string);
} }
} }

View File

@@ -4,7 +4,7 @@ import io.minio.Result;
import io.minio.messages.Item; import io.minio.messages.Item;
import lombok.SneakyThrows; import lombok.SneakyThrows;
public record ItemRecord2(Result<Item> itemResult, String prefix) { public record ItemRecord(Result<Item> itemResult, String prefix) {
@SneakyThrows @SneakyThrows
public boolean isDir() { public boolean isDir() {

View File

@@ -1,6 +0,0 @@
package ru.di9.mirror.core.domain;
import java.io.InputStream;
public record MavenHandlerGetFileResponse(String name, InputStream inputStream) {
}

View File

@@ -1,5 +0,0 @@
package ru.di9.mirror.core.domain;
public record WalkerResult(PathType type) {
}

View File

@@ -1,7 +1,7 @@
package ru.di9.mirror.core.handler; package ru.di9.mirror.core.handler;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import ru.di9.mirror.core.domain.ItemRecord2; import ru.di9.mirror.core.domain.ItemRecord;
import ru.di9.mirror.core.service.MinioService; import ru.di9.mirror.core.service.MinioService;
import java.util.List; import java.util.List;
@@ -11,7 +11,7 @@ public class IndexOfHandler {
private final MinioService minioService; private final MinioService minioService;
public List<ItemRecord2> walker(String path) { public List<ItemRecord> walker(String path) {
return minioService.list("/local/" + path); return minioService.list("/local/" + path);
} }

View File

@@ -1,7 +1,7 @@
package ru.di9.mirror.core.handler; package ru.di9.mirror.core.handler;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import ru.di9.mirror.core.domain.MavenHandlerGetFileResponse; import ru.di9.mirror.core.handler.response.GetFileResponse;
import ru.di9.mirror.core.service.ExternalMavenService; import ru.di9.mirror.core.service.ExternalMavenService;
import ru.di9.mirror.core.service.MinioService; import ru.di9.mirror.core.service.MinioService;
@@ -15,13 +15,13 @@ public class MavenHandler {
private final MinioService minioService; private final MinioService minioService;
private final List<ExternalMavenService> externalMavenServices; private final List<ExternalMavenService> externalMavenServices;
public Optional<MavenHandlerGetFileResponse> getFile(String path) { public Optional<GetFileResponse> getFile(String path) {
final String fileName = path.substring(path.lastIndexOf("/") + 1); final String fileName = path.substring(path.lastIndexOf("/") + 1);
Optional<InputStream> optionalInputStream = minioService.get("/local/" + path); Optional<InputStream> optionalInputStream = minioService.get("/local/" + path);
if (optionalInputStream.isPresent()) { if (optionalInputStream.isPresent()) {
return optionalInputStream return optionalInputStream
.map(inputStream -> new MavenHandlerGetFileResponse(fileName, inputStream)); .map(inputStream -> new GetFileResponse(fileName, inputStream));
} else { } else {
for (ExternalMavenService externalMavenService : externalMavenServices) { for (ExternalMavenService externalMavenService : externalMavenServices) {
final String nameForStore = "/" + externalMavenService.getId() + "/" + path; final String nameForStore = "/" + externalMavenService.getId() + "/" + path;
@@ -29,13 +29,13 @@ public class MavenHandler {
optionalInputStream = minioService.get(nameForStore); optionalInputStream = minioService.get(nameForStore);
if (optionalInputStream.isPresent()) { if (optionalInputStream.isPresent()) {
return optionalInputStream return optionalInputStream
.map(inputStream -> new MavenHandlerGetFileResponse(fileName, inputStream)); .map(inputStream -> new GetFileResponse(fileName, inputStream));
} else { } else {
optionalInputStream = externalMavenService.getFile(path); optionalInputStream = externalMavenService.getFile(path);
if (optionalInputStream.isPresent()) { if (optionalInputStream.isPresent()) {
minioService.put(nameForStore, optionalInputStream.get()); minioService.put(nameForStore, optionalInputStream.get());
return minioService.get(nameForStore) return minioService.get(nameForStore)
.map(inputStream -> new MavenHandlerGetFileResponse(fileName, inputStream)); .map(inputStream -> new GetFileResponse(fileName, inputStream));
} }
} }
} }

View File

@@ -0,0 +1,6 @@
package ru.di9.mirror.core.handler.response;
import java.io.InputStream;
public record GetFileResponse(String name, InputStream inputStream) {
}

View File

@@ -5,12 +5,9 @@ import io.minio.errors.*;
import io.minio.messages.Item; import io.minio.messages.Item;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import ru.di9.mirror.core.domain.ItemRecord2; import ru.di9.mirror.core.domain.ItemRecord;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@@ -48,7 +45,7 @@ public class MinioService {
} }
} }
public List<ItemRecord2> list(String prefix) { public List<ItemRecord> list(String prefix) {
if (!prefix.endsWith("/")) { if (!prefix.endsWith("/")) {
prefix = prefix + "/"; prefix = prefix + "/";
} }
@@ -58,9 +55,9 @@ public class MinioService {
.prefix(prefix) .prefix(prefix)
.build()); .build());
List<ItemRecord2> list = new ArrayList<>(); List<ItemRecord> list = new ArrayList<>();
for (Result<Item> result : results) { for (Result<Item> result : results) {
list.add(new ItemRecord2(result, prefix)); list.add(new ItemRecord(result, prefix));
} }
return list; return list;

View File

@@ -7,7 +7,7 @@ import io.minio.messages.Item;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import ru.di9.mirror.core.domain.ItemRecord2; import ru.di9.mirror.core.domain.ItemRecord;
import java.util.List; import java.util.List;
@@ -32,7 +32,7 @@ class MinioServiceTest {
@Test @Test
void list() { void list() {
MinioService minioService = new MinioService(mockMinioClient, bucket); MinioService minioService = new MinioService(mockMinioClient, bucket);
List<ItemRecord2> list = minioService.list("/ghast/ghast-tools/"); List<ItemRecord> list = minioService.list("/ghast/ghast-tools/");
assertNotNull(list); assertNotNull(list);
assertFalse(list.isEmpty()); assertFalse(list.isEmpty());

View File

@@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import ru.di9.mirror.core.Utils; import ru.di9.mirror.core.Utils;
import ru.di9.mirror.core.domain.ItemRecord2; import ru.di9.mirror.core.domain.ItemRecord;
import ru.di9.mirror.core.handler.IndexOfHandler; import ru.di9.mirror.core.handler.IndexOfHandler;
import java.util.ArrayList; import java.util.ArrayList;
@@ -28,7 +28,7 @@ public class IndexOfMavenController {
@ModelAttribute("model") ModelMap model) { @ModelAttribute("model") ModelMap model) {
String path = correctingHttpPath(httpPath); String path = correctingHttpPath(httpPath);
List<ItemRecord2> walker = indexOfHandler.walker(path); List<ItemRecord> walker = indexOfHandler.walker(path);
List<ModelLink> links = new ArrayList<>(); List<ModelLink> links = new ArrayList<>();
StringBuilder sb = new StringBuilder("/maven"); StringBuilder sb = new StringBuilder("/maven");
@@ -46,13 +46,13 @@ public class IndexOfMavenController {
sb.setLength(resetLength); sb.setLength(resetLength);
sb.append("/"); sb.append("/");
resetLength = sb.length(); resetLength = sb.length();
for (ItemRecord2 itemRecord2 : walker) { for (ItemRecord itemRecord : walker) {
if (Utils.isNotEmptyString(path)) { if (Utils.isNotEmptyString(path)) {
sb.append(path).append("/"); sb.append(path).append("/");
} }
sb.append(itemRecord2.name()); sb.append(itemRecord.name());
links.add(new ModelLink(itemRecord2.name() + (itemRecord2.isDir() ? "/" : ""), sb.toString())); links.add(new ModelLink(itemRecord.name() + (itemRecord.isDir() ? "/" : ""), sb.toString()));
sb.setLength(resetLength); sb.setLength(resetLength);
} }