Repository: incubator-taverna-language Updated Branches: refs/heads/master 63a168963 -> 304af94cd
TAVERNA-1027: Avoid app:// for Jena .. by making a fake file:/// URI instead without the UUID As Jena would fail with ERR_RESOLVING_AGAINST_MALFORMED_BASE not recognising app:// from https://www.w3.org/TR/app-uri/ as a valid URL scheme Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/cb45105e Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/cb45105e Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/cb45105e Branch: refs/heads/master Commit: cb45105e7be1ca53eae3818bdaf9c82968d3a0e4 Parents: d9552b6 Author: Stian Soiland-Reyes <[email protected]> Authored: Fri Jan 5 15:59:32 2018 +0000 Committer: Stian Soiland-Reyes <[email protected]> Committed: Fri Jan 5 15:59:32 2018 +0000 ---------------------------------------------------------------------- .../manifest/combine/CombineManifest.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/cb45105e/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java ---------------------------------------------------------------------- diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java index 0594f4e..13fa452 100644 --- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java +++ b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java @@ -237,11 +237,21 @@ public class CombineManifest { private static Model parseRDF(Path metadata) throws IOException { Model model = createDefaultModel(); try (InputStream in = newInputStream(metadata)) { - read(model, in, metadata.toUri().toASCIIString(), RDFXML); + // TAVERNA-1027: Avoid Jena error over non-IANA URI scheme app:// + read(model, in, fakeFileURI(metadata), RDFXML); } return model; } + private static String fakeFileURI(Path path) { + return fakeFileURI(path.toAbsolutePath().toUri()); + } + + private static String fakeFileURI(URI uri) { + // Assume path starts with "/" + return "file://" + uri.getPath(); + } + protected static void setPrefixMapper(Marshaller marshaller) { boolean setPrefixMapper = false; @@ -330,6 +340,7 @@ public class CombineManifest { Model metadata; try { metadata = parseRDF(metadataRdf); + metadata.write(System.out, "turtle"); } catch (IOException e) { logger.log(WARNING, "Can't read " + metadataRdf, e); return; @@ -339,9 +350,11 @@ public class CombineManifest { } for (URI about : bundleSubjects()) { - Resource resource = metadata.getResource(about.toString()); - if (!metadata.containsResource(resource)) + Resource resource = metadata.getResource(fakeFileURI(about)); + if (!metadata.containsResource(resource)) { + System.out.println("Nothing known about " + resource); continue; + } PathAnnotation ann = new PathAnnotation(); ann.setAbout(manifest.relativeToBundleRoot(about));
