refactory

This commit is contained in:
2022-05-10 23:42:25 +03:00
parent 6bb083755c
commit 8f2e416678
11 changed files with 45 additions and 47 deletions

View File

@@ -1,8 +1,8 @@
package ru.di9.mirror.core.repository; package ru.di9.mirror.core.dao;
import ru.di9.mirror.core.entity.ArtifactEntity; import ru.di9.mirror.core.entity.ArtifactEntity;
public interface ArtifactRepository { public interface ArtifactDao {
ArtifactEntity save(ArtifactEntity artifactEntity); ArtifactEntity save(ArtifactEntity artifactEntity);
} }

View File

@@ -2,17 +2,17 @@ package ru.di9.mirror.core.handler;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import ru.di9.mirror.core.domain.FileItem; import ru.di9.mirror.core.domain.FileItem;
import ru.di9.mirror.core.repository.FileStorageRepository; import ru.di9.mirror.core.storage.FileStorage;
import java.util.List; import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class IndexOfHandler { public class IndexOfHandler {
private final FileStorageRepository fileStorageRepository; private final FileStorage fileStorage;
public List<FileItem> walker(String path) { public List<FileItem> walker(String path) {
return fileStorageRepository.list("/local/" + path); return fileStorage.list("/local/" + path);
} }
} }

View File

@@ -5,8 +5,8 @@ import lombok.extern.slf4j.Slf4j;
import ru.di9.mirror.core.domain.FileInfo; import ru.di9.mirror.core.domain.FileInfo;
import ru.di9.mirror.core.entity.ArtifactEntity; import ru.di9.mirror.core.entity.ArtifactEntity;
import ru.di9.mirror.core.handler.response.GetFileResponse; import ru.di9.mirror.core.handler.response.GetFileResponse;
import ru.di9.mirror.core.repository.ArtifactRepository; import ru.di9.mirror.core.dao.ArtifactDao;
import ru.di9.mirror.core.repository.FileStorageRepository; import ru.di9.mirror.core.storage.FileStorage;
import ru.di9.mirror.core.service.ExternalMavenService; import ru.di9.mirror.core.service.ExternalMavenService;
import java.io.InputStream; import java.io.InputStream;
@@ -17,9 +17,9 @@ import java.util.Optional;
@RequiredArgsConstructor @RequiredArgsConstructor
public class MavenHandler { public class MavenHandler {
private final FileStorageRepository fileStorageRepository; private final FileStorage fileStorage;
private final List<ExternalMavenService> externalMavenServices; private final List<ExternalMavenService> externalMavenServices;
private final ArtifactRepository repository; private final ArtifactDao repository;
public Optional<GetFileResponse> getFile(String path) { public Optional<GetFileResponse> getFile(String path) {
var fileInfo = FileInfo.of(path.substring(path.lastIndexOf("/") + 1)); var fileInfo = FileInfo.of(path.substring(path.lastIndexOf("/") + 1));
@@ -32,7 +32,7 @@ public class MavenHandler {
log.info(artifactEntity.toString()); log.info(artifactEntity.toString());
} }
Optional<InputStream> optionalInputStream = fileStorageRepository.findByName("/local/" + path); Optional<InputStream> optionalInputStream = fileStorage.findByName("/local/" + path);
if (optionalInputStream.isPresent()) { if (optionalInputStream.isPresent()) {
return optionalInputStream return optionalInputStream
.map(inputStream -> new GetFileResponse(fileInfo.name(), inputStream)); .map(inputStream -> new GetFileResponse(fileInfo.name(), inputStream));
@@ -46,7 +46,7 @@ public class MavenHandler {
for (ExternalMavenService externalMavenService : externalMavenServices) { for (ExternalMavenService externalMavenService : externalMavenServices) {
final String nameForStore = "/" + externalMavenService.getId() + "/" + path; final String nameForStore = "/" + externalMavenService.getId() + "/" + path;
result = fileStorageRepository.findByName(nameForStore); result = fileStorage.findByName(nameForStore);
if (result.isPresent()) { if (result.isPresent()) {
return result return result
.map(inputStream -> new GetFileResponse(fileName, inputStream)); .map(inputStream -> new GetFileResponse(fileName, inputStream));
@@ -57,8 +57,8 @@ public class MavenHandler {
repository.save(artifactEntity); repository.save(artifactEntity);
} }
fileStorageRepository.save(nameForStore, result.get()); fileStorage.save(nameForStore, result.get());
return fileStorageRepository.findByName(nameForStore) return fileStorage.findByName(nameForStore)
.map(inputStream -> new GetFileResponse(fileName, inputStream)); .map(inputStream -> new GetFileResponse(fileName, inputStream));
} }
} }
@@ -77,6 +77,6 @@ public class MavenHandler {
log.info(artifactEntity.toString()); log.info(artifactEntity.toString());
} }
fileStorageRepository.save("/local/" + path, inputStream); fileStorage.save("/local/" + path, inputStream);
} }
} }

View File

@@ -1,4 +1,4 @@
package ru.di9.mirror.core.repository; package ru.di9.mirror.core.storage;
import ru.di9.mirror.core.domain.FileItem; import ru.di9.mirror.core.domain.FileItem;
@@ -6,7 +6,7 @@ import java.io.InputStream;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface FileStorageRepository { public interface FileStorage {
Optional<InputStream> findByName(String name); Optional<InputStream> findByName(String name);

View File

@@ -1,11 +1,10 @@
package ru.di9.mirror.core.service; package ru.di9.mirror.minio.storage;
import io.minio.MinioClient; 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.FileItem; import ru.di9.mirror.core.domain.FileItem;
import ru.di9.mirror.minio.service.MinioRepository;
import java.io.InputStream; import java.io.InputStream;
import java.util.List; import java.util.List;
@@ -13,13 +12,13 @@ import java.util.Optional;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
class MinioServiceIntTest { class MinioStorageIntegrationTest {
static final String url = "http://dev.di9.ru:9000"; static final String url = "http://dev.di9.ru:9000";
static final String accessKey = "mirror"; static final String accessKey = "mirror";
static final String secretKey = "mirror123"; static final String secretKey = "mirror123";
static final String bucket = "mirror"; static final String bucket = "mirror";
static MinioClient minioClient; static MinioClient minioClient;
MinioRepository minioService; MinioStorage minioService;
@BeforeAll @BeforeAll
static void beforeAll() { static void beforeAll() {
@@ -31,7 +30,7 @@ class MinioServiceIntTest {
@BeforeEach @BeforeEach
void setUp() { void setUp() {
minioService = new MinioRepository(minioClient, bucket); minioService = new MinioStorage(minioClient, bucket);
} }
@Test @Test

View File

@@ -1,11 +1,11 @@
package ru.di9.mirror.minio.service; package ru.di9.mirror.minio.storage;
import io.minio.*; import io.minio.*;
import io.minio.errors.ErrorResponseException; import io.minio.errors.ErrorResponseException;
import io.minio.messages.Item; import io.minio.messages.Item;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import ru.di9.mirror.core.domain.FileItem; import ru.di9.mirror.core.domain.FileItem;
import ru.di9.mirror.core.repository.FileStorageRepository; import ru.di9.mirror.core.storage.FileStorage;
import ru.di9.mirror.minio.domain.MinioFileItem; import ru.di9.mirror.minio.domain.MinioFileItem;
import ru.di9.mirror.minio.exception.MinioException; import ru.di9.mirror.minio.exception.MinioException;
@@ -15,7 +15,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
@RequiredArgsConstructor @RequiredArgsConstructor
public class MinioRepository implements FileStorageRepository { public class MinioStorage implements FileStorage {
private static final long UNKNOWN_SIZE = -1L; private static final long UNKNOWN_SIZE = -1L;
private static final long PART_SIZE = (5 * 1024 * 1024); // 5 MB private static final long PART_SIZE = (5 * 1024 * 1024); // 5 MB

View File

@@ -1,4 +1,4 @@
package ru.di9.mirror.core.service; package ru.di9.mirror.minio.storage;
import io.minio.ListObjectsArgs; import io.minio.ListObjectsArgs;
import io.minio.MinioClient; import io.minio.MinioClient;
@@ -8,14 +8,13 @@ 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.FileItem; import ru.di9.mirror.core.domain.FileItem;
import ru.di9.mirror.minio.service.MinioRepository;
import java.util.List; import java.util.List;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
class MinioServiceTest { class MinioStorageTest {
static final String bucket = "mirror"; static final String bucket = "mirror";
static MinioClient mockMinioClient; static MinioClient mockMinioClient;
@@ -32,7 +31,7 @@ class MinioServiceTest {
@Test @Test
void list() { void list() {
MinioRepository minioService = new MinioRepository(mockMinioClient, bucket); MinioStorage minioService = new MinioStorage(mockMinioClient, bucket);
List<FileItem> list = minioService.list("/ghast/ghast-tools/"); List<FileItem> list = minioService.list("/ghast/ghast-tools/");
assertNotNull(list); assertNotNull(list);

View File

@@ -1,4 +1,4 @@
package ru.di9.mirror.mongo.repository; package ru.di9.mirror.mongo.dao;
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCollection;
import com.mongodb.client.result.InsertOneResult; import com.mongodb.client.result.InsertOneResult;
@@ -7,11 +7,11 @@ import lombok.extern.slf4j.Slf4j;
import org.bson.Document; import org.bson.Document;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import ru.di9.mirror.core.entity.ArtifactEntity; import ru.di9.mirror.core.entity.ArtifactEntity;
import ru.di9.mirror.core.repository.ArtifactRepository; import ru.di9.mirror.core.dao.ArtifactDao;
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
public class MongoArtifactRepository implements ArtifactRepository { public class MongoArtifactDao implements ArtifactDao {
private final MongoCollection<Document> collection; private final MongoCollection<Document> collection;
@Override @Override

View File

@@ -4,16 +4,16 @@ import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import ru.di9.mirror.core.repository.FileStorageRepository; import ru.di9.mirror.core.storage.FileStorage;
import ru.di9.mirror.minio.service.MinioRepository; import ru.di9.mirror.minio.storage.MinioStorage;
@Configuration @Configuration
public class MinioConfig { public class MinioConfig {
@Bean @Bean
public FileStorageRepository fileStorageRepository(MinioClient minioClient, public FileStorage fileStorage(MinioClient minioClient,
@Value("${minio.bucket}") String bucket) { @Value("${minio.bucket}") String bucket) {
return new MinioRepository(minioClient, bucket); return new MinioStorage(minioClient, bucket);
} }
@Bean @Bean

View File

@@ -10,8 +10,8 @@ import org.bson.Document;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import ru.di9.mirror.core.repository.ArtifactRepository; import ru.di9.mirror.core.dao.ArtifactDao;
import ru.di9.mirror.mongo.repository.MongoArtifactRepository; import ru.di9.mirror.mongo.dao.MongoArtifactDao;
import java.util.List; import java.util.List;
@@ -38,7 +38,7 @@ public class MongoConfig {
} }
@Bean @Bean
public ArtifactRepository artifactRepository(MongoCollection<Document> artifactCollection) { public ArtifactDao artifactDao(MongoCollection<Document> artifactCollection) {
return new MongoArtifactRepository(artifactCollection); return new MongoArtifactDao(artifactCollection);
} }
} }

View File

@@ -5,8 +5,8 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import ru.di9.mirror.core.handler.IndexOfHandler; import ru.di9.mirror.core.handler.IndexOfHandler;
import ru.di9.mirror.core.handler.MavenHandler; import ru.di9.mirror.core.handler.MavenHandler;
import ru.di9.mirror.core.repository.ArtifactRepository; import ru.di9.mirror.core.dao.ArtifactDao;
import ru.di9.mirror.core.repository.FileStorageRepository; import ru.di9.mirror.core.storage.FileStorage;
import ru.di9.mirror.core.service.ExternalMavenService; import ru.di9.mirror.core.service.ExternalMavenService;
import java.util.List; import java.util.List;
@@ -15,15 +15,15 @@ import java.util.List;
public class WebConfig { public class WebConfig {
@Bean @Bean
public MavenHandler mavenHandler(FileStorageRepository fileStorageRepository, public MavenHandler mavenHandler(FileStorage fileStorage,
List<ExternalMavenService> externalMavenServices, List<ExternalMavenService> externalMavenServices,
ArtifactRepository artifactRepository) { ArtifactDao artifactDao) {
return new MavenHandler(fileStorageRepository, externalMavenServices, artifactRepository); return new MavenHandler(fileStorage, externalMavenServices, artifactDao);
} }
@Bean @Bean
public IndexOfHandler indexOfHandler(FileStorageRepository fileStorageRepository) { public IndexOfHandler indexOfHandler(FileStorage fileStorage) {
return new IndexOfHandler(fileStorageRepository); return new IndexOfHandler(fileStorage);
} }
@Bean @Bean