From 37f2ec134ddba3b9bf6fad74179d7e52d41803de Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 9 Oct 2024 16:28:04 +0300 Subject: [PATCH] Git: minor refactoring --- .../server/service/sync/DefaultGitSyncService.java | 5 ++--- .../service/sync/vc/DefaultGitRepositoryService.java | 3 +-- .../thingsboard/server/service/sync/vc/GitRepository.java | 7 ++++++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/sync/DefaultGitSyncService.java b/application/src/main/java/org/thingsboard/server/service/sync/DefaultGitSyncService.java index 3480a5c9c8..3b4e8d6985 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/DefaultGitSyncService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/DefaultGitSyncService.java @@ -28,7 +28,6 @@ import org.thingsboard.server.service.sync.vc.GitRepository.FileType; import org.thingsboard.server.service.sync.vc.GitRepository.RepoFile; import java.net.URI; -import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.Map; @@ -64,7 +63,7 @@ public class DefaultGitSyncService implements GitSyncService { executor.scheduleWithFixedDelay(() -> { GitRepository repository = repositories.get(key); - if (repository == null || Files.notExists(Path.of(repository.getDirectory()))) { + if (repository == null || !GitRepository.exists(repository.getDirectory())) { initRepository(key, settings); return; } @@ -111,7 +110,7 @@ public class DefaultGitSyncService implements GitSyncService { private GitRepository getRepository(String key) { GitRepository repository = repositories.get(key); if (repository != null) { - if (Files.notExists(Path.of(repository.getDirectory()))) { + if (!GitRepository.exists(repository.getDirectory())) { // reinitializing the repository because folder was deleted initRepository(key, repository.getSettings()); } diff --git a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultGitRepositoryService.java b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultGitRepositoryService.java index 07edfedf21..239eb18748 100644 --- a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultGitRepositoryService.java +++ b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultGitRepositoryService.java @@ -40,7 +40,6 @@ import org.thingsboard.server.service.sync.vc.GitRepository.Diff; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; import java.nio.file.Path; import java.util.HashSet; import java.util.List; @@ -203,7 +202,7 @@ public class DefaultGitRepositoryService implements GitRepositoryService { GitRepository gitRepository = Optional.ofNullable(repositories.get(tenantId)) .orElseThrow(() -> new IllegalStateException("Repository is not initialized")); - if (!Files.exists(Path.of(gitRepository.getDirectory()))) { + if (!GitRepository.exists(gitRepository.getDirectory())) { try { return openOrCloneRepository(tenantId, gitRepository.getSettings(), false); } catch (Exception e) { diff --git a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java index 015eab1492..251821b74e 100644 --- a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java +++ b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java @@ -140,12 +140,13 @@ public class GitRepository { public static GitRepository openOrClone(Path directory, RepositorySettings settings, boolean fetch) throws IOException, GitAPIException { GitRepository repository; - if (Files.exists(directory)) { + if (GitRepository.exists(directory.toString())) { repository = GitRepository.open(directory.toFile(), settings); if (fetch) { repository.fetch(); } } else { + FileUtils.deleteDirectory(directory.toFile()); Files.createDirectories(directory); if (settings.isLocalOnly()) { repository = GitRepository.create(settings, directory.toFile()); @@ -436,6 +437,10 @@ public class GitRepository { return result; } + public static boolean exists(String directory) { + return Files.exists(Path.of(directory, ".git")); + } + private , T> T execute(C command) throws GitAPIException { if (command instanceof TransportCommand transportCommand && authHandler != null) { authHandler.configureCommand(transportCommand);