add RO conformsTo for COMBINE archives

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/dec76891
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/dec76891
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/dec76891

Branch: refs/heads/master
Commit: dec76891b4bc7613753520adcc931c256563bbe6
Parents: a8c8446
Author: Stian Soiland-Reyes <[email protected]>
Authored: Thu May 10 11:13:52 2018 +0100
Committer: Stian Soiland-Reyes <[email protected]>
Committed: Thu May 10 17:40:11 2018 +0100

----------------------------------------------------------------------
 .../manifest/combine/CombineManifest.java       | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/dec76891/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 0efdd81..898149d 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
@@ -37,6 +37,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.attribute.FileTime;
 import java.util.ArrayList;
@@ -526,6 +527,25 @@ public class CombineManifest {
                                }
                        } else {
                                Path path = 
bundle.getRoot().resolve(c.getLocation());
+                               if (Files.isSameFile(bundle.getRoot(), path)) {
+                                       // metadata about the archive itself
+                                       if (c.getFormat() != null && ! 
c.getFormat().isEmpty()) {
+                                               URI uri;
+                                               try {
+                                                       uri = new 
URI(c.getFormat());
+                                               } catch (URISyntaxException e) {
+                                                       
logger.warning(MANIFEST_XML + " non-URI format for . expected 
http://identifiers.org/combine.specifications/omex";);
+                                                       continue;
+                                               }
+                                               if (! 
manifest.getConformsTo().contains(uri)) {
+                                                       
manifest.getConformsTo().add(uri);
+                                               }
+                                       }
+                                       // Don't add / to the list of 
aggregations in RO,
+                                       // as / is the RO itself!
+                                       continue;
+                               }
+
                                if (!exists(path)) {
                                        logger.warning(MANIFEST_XML + " listed 
relative path "
                                                        + path + ", but it does 
not exist in bundle");

Reply via email to