private void writeNodeProperties(final ExplorerNode explorerNode,
                                     final List<String> pathElements,
                                     final Path parentDir,
                                     final String filePrefix,
                                     final List<Message> messageList) {
        final String fileName = filePrefix + ".node";

        try {
            final Properties properties = new Properties();
            properties.setProperty("uuid", explorerNode.getUuid());
            properties.setProperty("type", explorerNode.getType());
            properties.setProperty("name", explorerNode.getName());
            properties.setProperty("path", String.join("/", pathElements));
            final String tagsStr = NullSafe.get(explorerNode.getTags(), explorerService::nodeTagsToString);
            if (!NullSafe.isBlankString(tagsStr)) {
                properties.setProperty("tags", tagsStr);
            }

            final OutputStream outputStream = Files.newOutputStream(parentDir.resolve(fileName));
            PropertiesSerialiser.write(properties, outputStream);
        } catch (final Exception e) {
            messageList.add(new Message(
                    Severity.ERROR,
                    "Error writing properties to file '" + fileName + "': " + LogUtil.exceptionMessage(e)));
        }
    }
Prunes the node path for GitRepo exports. Removes everything in the rootPath
from the nodePath if the rootPath matches the start of the nodePath.
@param rootPath Can be null, in which case this function just returns nodePath.
                Otherwise, the list of items to prune from the start of nodePath.
@param nodePath The node path to prune.
@return The pruned nodePath.
stroom-importexport/stroom-importexport-impl/src/main/java/stroom/importexport/impl/ImportExportSerializerImpl.java