Skip to content

Commit

Permalink
Change yaml parser
Browse files Browse the repository at this point in the history
  • Loading branch information
imbyungjun committed Jan 8, 2024
1 parent d7cc4cf commit 36c3093
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 18 deletions.
2 changes: 1 addition & 1 deletion ngrinder-controller/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ dependencies {
implementation (group: "jaxen", name: "jaxen", version: "1.1.4")
implementation (group: "com.beust", name: "jcommander", version: "1.32")
implementation (group: "org.pf4j", name: "pf4j", version: "3.0.1")
implementation (group: "org.yaml", name: "snakeyaml", version: "1.25")
implementation (group: "com.esotericsoftware.yamlbeans", name: "yamlbeans", version: "1.17")
implementation (group: "commons-collections", name: "commons-collections", version: "3.2.1")
implementation (group: "org.reflections", name: "reflections", version: "0.9.9")
implementation (group: "com.hazelcast", name: "hazelcast", version: hazelcast_version)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.ngrinder.script.service;

import com.esotericsoftware.yamlbeans.YamlReader;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -26,7 +27,6 @@
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.BasicAuthenticationManager;
import org.tmatesoft.svn.core.wc.*;
import org.yaml.snakeyaml.Yaml;

import java.io.File;
import java.io.FileNotFoundException;
Expand Down Expand Up @@ -278,25 +278,26 @@ public Set<GitHubConfig> getAllGitHubConfig(User user) throws FileNotFoundExcept
return getAllGithubConfig(gitConfigYaml);
}

private Set<GitHubConfig> getAllGithubConfig(FileEntry gitConfigYaml) {
protected Set<GitHubConfig> getAllGithubConfig(FileEntry gitConfigYaml) {
Set<GitHubConfig> gitHubConfig = new HashSet<>();
// Yaml is not thread safe. so create it every time.
Yaml yaml = new Yaml();
Iterable<Map<String, Object>> gitConfigs = cast(yaml.loadAll(gitConfigYaml.getContent()));
for (Map<String, Object> configMap : gitConfigs) {
if (configMap == null) {
continue;
}
configMap.put("revision", gitConfigYaml.getRevision());
GitHubConfig config = objectMapper.convertValue(configMap, GitHubConfig.class);
try (YamlReader reader = new YamlReader(gitConfigYaml.getContent())) {
Map<String, Object> gitConfigMap = cast(reader.read());
while (gitConfigMap != null) {
gitConfigMap.put("revision", gitConfigYaml.getRevision());
GitHubConfig config = objectMapper.convertValue(gitConfigMap, GitHubConfig.class);

if (gitHubConfig.contains(config)) {
throw new InvalidGitHubConfigurationException("GitHub configuration '"
+ config.getName() + "' is duplicated.\nPlease check your .gitconfig.yml");
}

if (gitHubConfig.contains(config)) {
throw new InvalidGitHubConfigurationException("GitHub configuration '"
+ config.getName() + "' is duplicated.\nPlease check your .gitconfig.yml");
}
gitHubConfig.add(config);

gitHubConfig.add(config);
}
gitConfigMap = cast(reader.read());
}
} catch (IOException e) {
throw new InvalidGitHubConfigurationException("Fail to read GitHub configuration.", e);
}
return gitHubConfig;
}

Expand Down

0 comments on commit 36c3093

Please sign in to comment.