diff --git a/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitManager.java b/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitManager.java index 2a869aa..94ec429 100644 --- a/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitManager.java +++ b/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitManager.java @@ -202,8 +202,14 @@ public static String getActor(String projectName, String path) { ProjectManager projectManager = context.getProjectManager(); RuntimeProject project = projectManager.getProject(projectName).get(); - ProjectResource projectResource = project.getResource(getResourcePath(path)).get(); - return LastModification.of(projectResource).map(LastModification::getActor).orElse("unknown"); + ResourcePath resourcePath = getResourcePath(path); + try { + ProjectResource projectResource = project.getResource(resourcePath).get(); + return LastModification.of(projectResource).map(LastModification::getActor).orElse("unknown"); + } catch (Exception e) { + logger.error(String.valueOf(e), e); + return "unknown"; + } } public static List getAddedFiles(String projectName) { diff --git a/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitTagManager.java b/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitTagManager.java index 0b4b3d7..6189c26 100644 --- a/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitTagManager.java +++ b/git-gateway/src/main/java/com/axone_io/ignition/git/managers/GitTagManager.java @@ -8,6 +8,7 @@ import com.inductiveautomation.ignition.common.tags.config.TagConfigurationModel; import com.inductiveautomation.ignition.common.tags.model.TagPath; import com.inductiveautomation.ignition.common.tags.model.TagProvider; +import com.inductiveautomation.ignition.common.tags.model.TagProviderInformation; import com.inductiveautomation.ignition.common.tags.paths.BasicTagPath; import com.inductiveautomation.ignition.common.tags.paths.parser.TagPathParser; import com.inductiveautomation.ignition.common.util.LoggerEx; @@ -63,20 +64,29 @@ public static void exportTag(Path projectFolderPath) { Files.createDirectories(tagFolderPath); for (TagProvider tagProvider : context.getTagManager().getTagProviders()) { - TagPath typesPath = TagPathParser.parse(""); - List tagPaths = new ArrayList<>(); - tagPaths.add(typesPath); - - CompletableFuture> cfTagModels = - tagProvider.getTagConfigsAsync(tagPaths, true, true); - List tModels = cfTagModels.get(); - - JsonObject json = TagUtilities.toJsonObject(tModels.get(0)); - JsonElement sortedJson = JsonUtilities.createDeterministicCopy(json); - - Path newFile = tagFolderPath.resolve(tagProvider.getName() + ".json"); + logger.info("Attempting to export tags for provider " + tagProvider.getName()); + try { + CompletableFuture cfProviderInfo = tagProvider.getStatusInformation(); + TagProviderInformation providerInfo = cfProviderInfo.get(); + if (providerInfo == null || !providerInfo.isAvailable()) { + logger.info("Tag provider unavailable. Skipping export for provider " + tagProvider.getName()); + continue; + } - Files.writeString(newFile, TAG_GSON.toJson(sortedJson)); + TagPath typesPath = TagPathParser.parse(""); + List tagPaths = new ArrayList<>(); + tagPaths.add(typesPath); + CompletableFuture> cfTagModels = + tagProvider.getTagConfigsAsync(tagPaths, true, true); + List tModels = cfTagModels.get(); + JsonObject json = TagUtilities.toJsonObject(tModels.get(0)); + JsonElement sortedJson = JsonUtilities.createDeterministicCopy(json); + Path newFile = tagFolderPath.resolve(tagProvider.getName() + ".json"); + Files.writeString(newFile, TAG_GSON.toJson(sortedJson)); + logger.info("Successfully exported tags for provider " + tagProvider.getName()); + } catch (Exception e) { + logger.error(e.toString(), e); + } } } catch (Exception e) { logger.error(e.toString(), e);