Browse Source

Git: minor refactoring

pull/11829/head
ViacheslavKlimov 2 years ago
parent
commit
37f2ec134d
  1. 5
      application/src/main/java/org/thingsboard/server/service/sync/DefaultGitSyncService.java
  2. 3
      common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultGitRepositoryService.java
  3. 7
      common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java

5
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());
}

3
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) {

7
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 <C extends GitCommand<T>, T> T execute(C command) throws GitAPIException {
if (command instanceof TransportCommand transportCommand && authHandler != null) {
authHandler.configureCommand(transportCommand);

Loading…
Cancel
Save