Loading src/main/java/fr/emse/gitlab/saref/SAREF.java +91 −1 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,16 @@ */ */ package fr.emse.gitlab.saref; package fr.emse.gitlab.saref; import java.nio.file.FileSystems; import java.nio.file.PathMatcher; import java.util.ResourceBundle; import java.util.ResourceBundle; import java.util.regex.Matcher; import java.util.regex.Pattern; import fr.emse.gitlab.saref.entities.SAREFCore; import fr.emse.gitlab.saref.entities.SAREFExtension; import fr.emse.gitlab.saref.entities.SAREFProject; import fr.emse.gitlab.saref.entities.SAREFVersionName; /** /** * * Loading @@ -34,6 +43,9 @@ import java.util.ResourceBundle; */ */ public class SAREF { public class SAREF { public static final PathMatcher TTL_MATCHER = FileSystems.getDefault().getPathMatcher("glob:**/*.ttl"); public static final PathMatcher CSV_MATCHER = FileSystems.getDefault().getPathMatcher("glob:**/*.csv"); private final static ResourceBundle BUNDLE = ResourceBundle.getBundle("messages/SAREF"); private final static ResourceBundle BUNDLE = ResourceBundle.getBundle("messages/SAREF"); public final static String BASE = "https://saref.etsi.org/"; public final static String BASE = "https://saref.etsi.org/"; public final static String FORGE = "https://forge.etsi.org/rep/SAREF/"; public final static String FORGE = "https://forge.etsi.org/rep/SAREF/"; Loading @@ -46,6 +58,84 @@ public class SAREF { public static final String NAME_SITE = "site"; public static final String NAME_SITE = "site"; // project acronym public static final String REGEX_ACRONYM_VAR = "acronym"; public static final String REGEX_ACRONYM = String.format("(?<%s>[a-z]{4})", REGEX_ACRONYM_VAR); // project name public static final String REGEX_NAME_EXTENSION = "saref4" + REGEX_ACRONYM; public static final String REGEX_NAME_PROJECT = String.format("(%s|%s)", REGEX_NAME_EXTENSION, SAREFCore.INSTANCE.getRepositoryName()); // project paths public static final String REGEX_PATH_CORE = "core"; public static final String REGEX_PATH_EXTENSION = "saref4" + REGEX_ACRONYM; public static final String REGEX_PATH_PROJECT = String.format("(%s|%s)", REGEX_PATH_CORE, REGEX_PATH_EXTENSION); // project version public static final String REGEX_VERSION_MAJOR_VAR = "major"; public static final String REGEX_VERSION_MINOR_VAR = "minor"; public static final String REGEX_VERSION_PATCH_VAR = "patch"; public static final String REGEX_VERSION_NUMBER = String.format("v(?<%s>[0-9]+)\\.(?<%s>[0-9]+)\\.(?<%s>[0-9]+)", REGEX_VERSION_MAJOR_VAR, REGEX_VERSION_MINOR_VAR, REGEX_VERSION_PATCH_VAR); // project version prefix, namespace, ontology IRI, ontology version IRI, public static final String REGEX_CORE_PREFIX = "saref"; public static final String REGEX_EXTENSION_PREFIX = "s4" + REGEX_ACRONYM; public static final String REGEX_ONTOLOGY_IRI = String.format("^%s%s/$", BASE, REGEX_PATH_PROJECT); public static final String REGEX_ONTOLOGY_VERSION_IRI = String.format("^%s%s/%s/$", BASE, REGEX_PATH_PROJECT, REGEX_VERSION_NUMBER); // example public static final String REGEX_EXAMPLE_NAME_VAR = "examplename"; public static final String REGEX_EXAMPLE_NAME = String.format("(?<%s>([^/]+))", REGEX_EXAMPLE_NAME_VAR); public static final String REGEX_EXAMPLE_FILE_NAME = String.format("^(?<%s>([^/]+))\\.ttl$", REGEX_EXAMPLE_NAME_VAR); // example namespace, IRI public static final String REGEX_EXAMPLE_IRI = String.format("^%s%s/%s/example/%s#$", BASE, REGEX_PATH_PROJECT, REGEX_VERSION_NUMBER, REGEX_EXAMPLE_NAME); // terms public static final String REGEX_TERM_NAME_VAR = "localName"; public static final String REGEX_TERM_NAME = String.format("(?<%s>[^/]+)", REGEX_TERM_NAME_VAR); public static final String REGEX_TERM = String.format("^%s%s/%s$", BASE, REGEX_PATH_PROJECT, REGEX_TERM_NAME); public static SAREFProject extractProject(String uri) { final Matcher matcher = Pattern.compile(String.format("^%s%s/", BASE, REGEX_PATH_PROJECT)) .matcher(uri); if (!matcher.find()) { return null; } final String acronym = matcher.group(REGEX_ACRONYM_VAR); if (acronym == null) { return SAREFCore.INSTANCE; } else { return new SAREFExtension(acronym); } } public static SAREFVersionName extractVersionName(String uri) { final Matcher matcher = Pattern.compile(String.format("^%s%s/%s/", BASE, REGEX_PATH_PROJECT, REGEX_VERSION_NUMBER)).matcher(uri); if (!matcher.find()) { return null; } int major = Integer.parseInt(matcher.group(REGEX_VERSION_MAJOR_VAR)); int minor = Integer.parseInt(matcher.group(REGEX_VERSION_MINOR_VAR)); int patch = Integer.parseInt(matcher.group(REGEX_VERSION_PATCH_VAR)); return new SAREFVersionName(major, minor, patch); } public static String extractExampleName(String uri) { final Matcher matcher = Pattern.compile(REGEX_EXAMPLE_IRI).matcher(uri); if (!matcher.find()) { return null; } return matcher.group(REGEX_EXAMPLE_NAME_VAR); } public static <T> String getMessage(String key, Object... args) { public static <T> String getMessage(String key, Object... args) { String msg = BUNDLE.getString(key); String msg = BUNDLE.getString(key); if (args != null) { if (args != null) { Loading src/main/java/fr/emse/gitlab/saref/SAREFPipeline.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -127,7 +127,9 @@ public class SAREFPipeline { siteManager.prepareSite(); siteManager.prepareSite(); sourcesManager = new SourcesManager(this, logger); sourcesManager = new SourcesManager(this, logger); sourcesManager.initTargetRepositoryManager(); sourcesManager.fetchRepositories(); sourcesManager.fetchRepositories(); sourcesManager.loadRepositories(); sourcesManager.checkClauses(); sourcesManager.checkClauses(); sourcesManager.checkTerms(); sourcesManager.checkTerms(); sourcesManager.generateSite(); sourcesManager.generateSite(); Loading src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_3_Checker.java +4 −6 Original line number Original line Diff line number Diff line Loading @@ -27,13 +27,12 @@ package fr.emse.gitlab.saref.checkers; import java.io.File; import java.io.File; import java.io.IOException; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Path; import java.nio.file.PathMatcher; import java.util.Optional; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Collectors; import fr.emse.gitlab.saref.SAREF; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.managers.RepositoryManager; Loading @@ -43,7 +42,6 @@ import fr.emse.gitlab.saref.managers.RepositoryManager; */ */ public class Clause_9_3_Checker extends AbstractClauseChecker { public class Clause_9_3_Checker extends AbstractClauseChecker { private static final PathMatcher csvMatcher = FileSystems.getDefault().getPathMatcher("glob:**/*.csv"); private static final String FIRST_LINE = "Id;Category;Requirement"; private static final String FIRST_LINE = "Id;Category;Requirement"; private static enum MESSAGE { private static enum MESSAGE { Loading Loading @@ -82,7 +80,7 @@ public class Clause_9_3_Checker extends AbstractClauseChecker { String nonCsv = Files.walk(path, 1).filter(p -> { String nonCsv = Files.walk(path, 1).filter(p -> { try { try { return p.toFile().isFile() && !csvMatcher.matches(p) && !p.toFile().getName().startsWith("."); return p.toFile().isFile() && !SAREF.CSV_MATCHER.matches(p) && !p.toFile().getName().startsWith("."); } catch (Exception ex) { } catch (Exception ex) { return false; return false; } } Loading @@ -92,7 +90,7 @@ public class Clause_9_3_Checker extends AbstractClauseChecker { } } boolean containsFile = Files.walk(path, 1).anyMatch(p -> { boolean containsFile = Files.walk(path, 1).anyMatch(p -> { return csvMatcher.matches(p); return SAREF.CSV_MATCHER.matches(p); }); }); if (!containsFile) { if (!containsFile) { logWarning(getMessage(MESSAGE.missing)); logWarning(getMessage(MESSAGE.missing)); Loading @@ -101,7 +99,7 @@ public class Clause_9_3_Checker extends AbstractClauseChecker { private void checkFirstLine(Path path) throws IOException { private void checkFirstLine(Path path) throws IOException { Files.walk(path).filter(p -> { Files.walk(path).filter(p -> { return csvMatcher.matches(p); return SAREF.CSV_MATCHER.matches(p); }).forEach(p -> { }).forEach(p -> { Optional<String> firstLine; Optional<String> firstLine; try { try { Loading src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_1_Checker.java +0 −27 Original line number Original line Diff line number Diff line Loading @@ -26,17 +26,9 @@ package fr.emse.gitlab.saref.checkers; package fr.emse.gitlab.saref.checkers; import java.io.File; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.nio.charset.MalformedInputException; import java.nio.file.Files; import java.nio.file.Files; import org.apache.jena.atlas.RuntimeIOException; import org.apache.jena.riot.Lang; import fr.emse.gitlab.saref.SAREF; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.utils.Languages; import fr.emse.gitlab.saref.utils.Languages; Loading Loading @@ -73,25 +65,6 @@ public class Clause_9_4_1_Checker extends AbstractClauseChecker { logError(msg); logError(msg); throw new SAREFPipelineException(msg); throw new SAREFPipelineException(msg); } } try (FileInputStream input = new FileInputStream(file)) { version.getModel().read(input, SAREF.BASE, Lang.TTL.getLabel()); } catch (Exception ex) { if (ex instanceof RuntimeIOException && ex.getCause() instanceof MalformedInputException) { version.getModel().removeAll(); try (InputStreamReader input2 = new InputStreamReader(new FileInputStream(file), Charset.defaultCharset())) { version.getModel().read(input2, SAREF.BASE, Lang.TTL.getLabel()); } catch (Exception ex2) { String msg = getMessage(MESSAGE.turtle); logError(msg, ex2); throw new SAREFPipelineException(msg, ex2); } } else { String msg = getMessage(MESSAGE.turtle); logError(msg, ex); throw new SAREFPipelineException(msg, ex); } } } } } } src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_2_Checker.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -30,9 +30,9 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.Pattern; import fr.emse.gitlab.saref.SAREF; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.entities.SAREFExtension; import fr.emse.gitlab.saref.entities.SAREFExtension; import fr.emse.gitlab.saref.entities.SAREFProject; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.managers.RepositoryManager; /** /** Loading @@ -41,7 +41,7 @@ import fr.emse.gitlab.saref.managers.RepositoryManager; */ */ public class Clause_9_4_2_Checker extends AbstractClauseChecker { public class Clause_9_4_2_Checker extends AbstractClauseChecker { private final static Pattern PATTERN_PREFIX = Pattern.compile(SAREFProject.REGEX_EXTENSION_PREFIX); private final static Pattern PATTERN_PREFIX = Pattern.compile(SAREF.REGEX_EXTENSION_PREFIX); private static final Map<String, String> PREFIXES = new HashMap<String, String>(); private static final Map<String, String> PREFIXES = new HashMap<String, String>(); static { static { Loading Loading @@ -78,7 +78,7 @@ public class Clause_9_4_2_Checker extends AbstractClauseChecker { for (String s : prefixes.keySet()) { for (String s : prefixes.keySet()) { Matcher m = PATTERN_PREFIX.matcher(s); Matcher m = PATTERN_PREFIX.matcher(s); if (m.matches()) { if (m.matches()) { String acronym = m.group(SAREFProject.REGEX_ACRONYM_VAR); String acronym = m.group(SAREF.REGEX_ACRONYM_VAR); String expected = new SAREFExtension(acronym).getNamespace(); String expected = new SAREFExtension(acronym).getNamespace(); if(!prefixes.get(s).equals(expected)) { if(!prefixes.get(s).equals(expected)) { logError(getMessage(MESSAGE.different, s, expected, prefixes.get(s))); logError(getMessage(MESSAGE.different, s, expected, prefixes.get(s))); Loading Loading
src/main/java/fr/emse/gitlab/saref/SAREF.java +91 −1 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,16 @@ */ */ package fr.emse.gitlab.saref; package fr.emse.gitlab.saref; import java.nio.file.FileSystems; import java.nio.file.PathMatcher; import java.util.ResourceBundle; import java.util.ResourceBundle; import java.util.regex.Matcher; import java.util.regex.Pattern; import fr.emse.gitlab.saref.entities.SAREFCore; import fr.emse.gitlab.saref.entities.SAREFExtension; import fr.emse.gitlab.saref.entities.SAREFProject; import fr.emse.gitlab.saref.entities.SAREFVersionName; /** /** * * Loading @@ -34,6 +43,9 @@ import java.util.ResourceBundle; */ */ public class SAREF { public class SAREF { public static final PathMatcher TTL_MATCHER = FileSystems.getDefault().getPathMatcher("glob:**/*.ttl"); public static final PathMatcher CSV_MATCHER = FileSystems.getDefault().getPathMatcher("glob:**/*.csv"); private final static ResourceBundle BUNDLE = ResourceBundle.getBundle("messages/SAREF"); private final static ResourceBundle BUNDLE = ResourceBundle.getBundle("messages/SAREF"); public final static String BASE = "https://saref.etsi.org/"; public final static String BASE = "https://saref.etsi.org/"; public final static String FORGE = "https://forge.etsi.org/rep/SAREF/"; public final static String FORGE = "https://forge.etsi.org/rep/SAREF/"; Loading @@ -46,6 +58,84 @@ public class SAREF { public static final String NAME_SITE = "site"; public static final String NAME_SITE = "site"; // project acronym public static final String REGEX_ACRONYM_VAR = "acronym"; public static final String REGEX_ACRONYM = String.format("(?<%s>[a-z]{4})", REGEX_ACRONYM_VAR); // project name public static final String REGEX_NAME_EXTENSION = "saref4" + REGEX_ACRONYM; public static final String REGEX_NAME_PROJECT = String.format("(%s|%s)", REGEX_NAME_EXTENSION, SAREFCore.INSTANCE.getRepositoryName()); // project paths public static final String REGEX_PATH_CORE = "core"; public static final String REGEX_PATH_EXTENSION = "saref4" + REGEX_ACRONYM; public static final String REGEX_PATH_PROJECT = String.format("(%s|%s)", REGEX_PATH_CORE, REGEX_PATH_EXTENSION); // project version public static final String REGEX_VERSION_MAJOR_VAR = "major"; public static final String REGEX_VERSION_MINOR_VAR = "minor"; public static final String REGEX_VERSION_PATCH_VAR = "patch"; public static final String REGEX_VERSION_NUMBER = String.format("v(?<%s>[0-9]+)\\.(?<%s>[0-9]+)\\.(?<%s>[0-9]+)", REGEX_VERSION_MAJOR_VAR, REGEX_VERSION_MINOR_VAR, REGEX_VERSION_PATCH_VAR); // project version prefix, namespace, ontology IRI, ontology version IRI, public static final String REGEX_CORE_PREFIX = "saref"; public static final String REGEX_EXTENSION_PREFIX = "s4" + REGEX_ACRONYM; public static final String REGEX_ONTOLOGY_IRI = String.format("^%s%s/$", BASE, REGEX_PATH_PROJECT); public static final String REGEX_ONTOLOGY_VERSION_IRI = String.format("^%s%s/%s/$", BASE, REGEX_PATH_PROJECT, REGEX_VERSION_NUMBER); // example public static final String REGEX_EXAMPLE_NAME_VAR = "examplename"; public static final String REGEX_EXAMPLE_NAME = String.format("(?<%s>([^/]+))", REGEX_EXAMPLE_NAME_VAR); public static final String REGEX_EXAMPLE_FILE_NAME = String.format("^(?<%s>([^/]+))\\.ttl$", REGEX_EXAMPLE_NAME_VAR); // example namespace, IRI public static final String REGEX_EXAMPLE_IRI = String.format("^%s%s/%s/example/%s#$", BASE, REGEX_PATH_PROJECT, REGEX_VERSION_NUMBER, REGEX_EXAMPLE_NAME); // terms public static final String REGEX_TERM_NAME_VAR = "localName"; public static final String REGEX_TERM_NAME = String.format("(?<%s>[^/]+)", REGEX_TERM_NAME_VAR); public static final String REGEX_TERM = String.format("^%s%s/%s$", BASE, REGEX_PATH_PROJECT, REGEX_TERM_NAME); public static SAREFProject extractProject(String uri) { final Matcher matcher = Pattern.compile(String.format("^%s%s/", BASE, REGEX_PATH_PROJECT)) .matcher(uri); if (!matcher.find()) { return null; } final String acronym = matcher.group(REGEX_ACRONYM_VAR); if (acronym == null) { return SAREFCore.INSTANCE; } else { return new SAREFExtension(acronym); } } public static SAREFVersionName extractVersionName(String uri) { final Matcher matcher = Pattern.compile(String.format("^%s%s/%s/", BASE, REGEX_PATH_PROJECT, REGEX_VERSION_NUMBER)).matcher(uri); if (!matcher.find()) { return null; } int major = Integer.parseInt(matcher.group(REGEX_VERSION_MAJOR_VAR)); int minor = Integer.parseInt(matcher.group(REGEX_VERSION_MINOR_VAR)); int patch = Integer.parseInt(matcher.group(REGEX_VERSION_PATCH_VAR)); return new SAREFVersionName(major, minor, patch); } public static String extractExampleName(String uri) { final Matcher matcher = Pattern.compile(REGEX_EXAMPLE_IRI).matcher(uri); if (!matcher.find()) { return null; } return matcher.group(REGEX_EXAMPLE_NAME_VAR); } public static <T> String getMessage(String key, Object... args) { public static <T> String getMessage(String key, Object... args) { String msg = BUNDLE.getString(key); String msg = BUNDLE.getString(key); if (args != null) { if (args != null) { Loading
src/main/java/fr/emse/gitlab/saref/SAREFPipeline.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -127,7 +127,9 @@ public class SAREFPipeline { siteManager.prepareSite(); siteManager.prepareSite(); sourcesManager = new SourcesManager(this, logger); sourcesManager = new SourcesManager(this, logger); sourcesManager.initTargetRepositoryManager(); sourcesManager.fetchRepositories(); sourcesManager.fetchRepositories(); sourcesManager.loadRepositories(); sourcesManager.checkClauses(); sourcesManager.checkClauses(); sourcesManager.checkTerms(); sourcesManager.checkTerms(); sourcesManager.generateSite(); sourcesManager.generateSite(); Loading
src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_3_Checker.java +4 −6 Original line number Original line Diff line number Diff line Loading @@ -27,13 +27,12 @@ package fr.emse.gitlab.saref.checkers; import java.io.File; import java.io.File; import java.io.IOException; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Path; import java.nio.file.PathMatcher; import java.util.Optional; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Collectors; import fr.emse.gitlab.saref.SAREF; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.managers.RepositoryManager; Loading @@ -43,7 +42,6 @@ import fr.emse.gitlab.saref.managers.RepositoryManager; */ */ public class Clause_9_3_Checker extends AbstractClauseChecker { public class Clause_9_3_Checker extends AbstractClauseChecker { private static final PathMatcher csvMatcher = FileSystems.getDefault().getPathMatcher("glob:**/*.csv"); private static final String FIRST_LINE = "Id;Category;Requirement"; private static final String FIRST_LINE = "Id;Category;Requirement"; private static enum MESSAGE { private static enum MESSAGE { Loading Loading @@ -82,7 +80,7 @@ public class Clause_9_3_Checker extends AbstractClauseChecker { String nonCsv = Files.walk(path, 1).filter(p -> { String nonCsv = Files.walk(path, 1).filter(p -> { try { try { return p.toFile().isFile() && !csvMatcher.matches(p) && !p.toFile().getName().startsWith("."); return p.toFile().isFile() && !SAREF.CSV_MATCHER.matches(p) && !p.toFile().getName().startsWith("."); } catch (Exception ex) { } catch (Exception ex) { return false; return false; } } Loading @@ -92,7 +90,7 @@ public class Clause_9_3_Checker extends AbstractClauseChecker { } } boolean containsFile = Files.walk(path, 1).anyMatch(p -> { boolean containsFile = Files.walk(path, 1).anyMatch(p -> { return csvMatcher.matches(p); return SAREF.CSV_MATCHER.matches(p); }); }); if (!containsFile) { if (!containsFile) { logWarning(getMessage(MESSAGE.missing)); logWarning(getMessage(MESSAGE.missing)); Loading @@ -101,7 +99,7 @@ public class Clause_9_3_Checker extends AbstractClauseChecker { private void checkFirstLine(Path path) throws IOException { private void checkFirstLine(Path path) throws IOException { Files.walk(path).filter(p -> { Files.walk(path).filter(p -> { return csvMatcher.matches(p); return SAREF.CSV_MATCHER.matches(p); }).forEach(p -> { }).forEach(p -> { Optional<String> firstLine; Optional<String> firstLine; try { try { Loading
src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_1_Checker.java +0 −27 Original line number Original line Diff line number Diff line Loading @@ -26,17 +26,9 @@ package fr.emse.gitlab.saref.checkers; package fr.emse.gitlab.saref.checkers; import java.io.File; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.nio.charset.MalformedInputException; import java.nio.file.Files; import java.nio.file.Files; import org.apache.jena.atlas.RuntimeIOException; import org.apache.jena.riot.Lang; import fr.emse.gitlab.saref.SAREF; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.utils.Languages; import fr.emse.gitlab.saref.utils.Languages; Loading Loading @@ -73,25 +65,6 @@ public class Clause_9_4_1_Checker extends AbstractClauseChecker { logError(msg); logError(msg); throw new SAREFPipelineException(msg); throw new SAREFPipelineException(msg); } } try (FileInputStream input = new FileInputStream(file)) { version.getModel().read(input, SAREF.BASE, Lang.TTL.getLabel()); } catch (Exception ex) { if (ex instanceof RuntimeIOException && ex.getCause() instanceof MalformedInputException) { version.getModel().removeAll(); try (InputStreamReader input2 = new InputStreamReader(new FileInputStream(file), Charset.defaultCharset())) { version.getModel().read(input2, SAREF.BASE, Lang.TTL.getLabel()); } catch (Exception ex2) { String msg = getMessage(MESSAGE.turtle); logError(msg, ex2); throw new SAREFPipelineException(msg, ex2); } } else { String msg = getMessage(MESSAGE.turtle); logError(msg, ex); throw new SAREFPipelineException(msg, ex); } } } } } }
src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_2_Checker.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -30,9 +30,9 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.Pattern; import fr.emse.gitlab.saref.SAREF; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.SAREFPipelineException; import fr.emse.gitlab.saref.entities.SAREFExtension; import fr.emse.gitlab.saref.entities.SAREFExtension; import fr.emse.gitlab.saref.entities.SAREFProject; import fr.emse.gitlab.saref.managers.RepositoryManager; import fr.emse.gitlab.saref.managers.RepositoryManager; /** /** Loading @@ -41,7 +41,7 @@ import fr.emse.gitlab.saref.managers.RepositoryManager; */ */ public class Clause_9_4_2_Checker extends AbstractClauseChecker { public class Clause_9_4_2_Checker extends AbstractClauseChecker { private final static Pattern PATTERN_PREFIX = Pattern.compile(SAREFProject.REGEX_EXTENSION_PREFIX); private final static Pattern PATTERN_PREFIX = Pattern.compile(SAREF.REGEX_EXTENSION_PREFIX); private static final Map<String, String> PREFIXES = new HashMap<String, String>(); private static final Map<String, String> PREFIXES = new HashMap<String, String>(); static { static { Loading Loading @@ -78,7 +78,7 @@ public class Clause_9_4_2_Checker extends AbstractClauseChecker { for (String s : prefixes.keySet()) { for (String s : prefixes.keySet()) { Matcher m = PATTERN_PREFIX.matcher(s); Matcher m = PATTERN_PREFIX.matcher(s); if (m.matches()) { if (m.matches()) { String acronym = m.group(SAREFProject.REGEX_ACRONYM_VAR); String acronym = m.group(SAREF.REGEX_ACRONYM_VAR); String expected = new SAREFExtension(acronym).getNamespace(); String expected = new SAREFExtension(acronym).getNamespace(); if(!prefixes.get(s).equals(expected)) { if(!prefixes.get(s).equals(expected)) { logError(getMessage(MESSAGE.different, s, expected, prefixes.get(s))); logError(getMessage(MESSAGE.different, s, expected, prefixes.get(s))); Loading