You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/01/05 16:03:36 UTC

[2/2] incubator-taverna-language git commit: TAVERNA-1027: Avoid app:// for Jena

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/TAVERNA-1027
Commit: cb45105e7be1ca53eae3818bdaf9c82968d3a0e4
Parents: d9552b6
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jan 5 15:59:32 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
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));