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));

Reply via email to