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 2015/06/25 15:27:13 UTC
incubator-taverna-language git commit: Squashed commit of the
following:
Repository: incubator-taverna-language
Updated Branches:
refs/heads/master ed4d4c7ef -> 3bd4874e4
Squashed commit of the following:
This closes #8 scufl-iwir
commit 1effe4f3767bb9a8938df9932a2590637a8b5069
Author: Stian Soiland-Reyes <st...@apache.org>
Date: Thu Jun 25 14:21:43 2015 +0100
ignore dependency-reduced-pom.xml
commit 9ea428b941ca88bb94943295023843d677ad0019
Merge: ebeb3fe ed4d4c7
Author: Stian Soiland-Reyes <st...@apache.org>
Date: Thu Jun 25 14:21:14 2015 +0100
Merge branch 'master' into scufl-iwir
Conflicts:
taverna-language-commandline/pom.xml
taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
commit ebeb3fe6e81f8a58ce71431fb727fcbc7e81dc51
Author: Menaka Madushanka <me...@gmail.com>
Date: Tue Jun 23 17:06:19 2015 +0530
Input file type detection
commit 29c58dfd53fb846b158b515514c96a40886d92a6
Author: Menaka Madushanka <me...@gmail.com>
Date: Tue Jun 23 16:56:16 2015 +0530
Input file type detection .t2flow/ .wfbundle
commit a5a563be13039cc81c604468e2d7586802169675
Author: Menaka Madushanka <me...@gmail.com>
Date: Tue Jun 23 16:33:49 2015 +0530
Jars removed
commit 951e1869a68253085faae45159f86a4a45c9aa7d
Author: Menaka Madushanka <me...@gmail.com>
Date: Sat Jun 20 18:20:01 2015 +0530
iwir dependancy
commit 3cc5d6b93dae383477d92bfe72e5b1e39e3c3385
Author: Menaka Madushanka <me...@gmail.com>
Date: Sat Jun 20 18:15:52 2015 +0530
iwir
commit 52cdf9c708e56a8cefeb1c32bba3d4afb6d5446e
Author: Menaka Madushanka <me...@gmail.com>
Date: Sat Jun 20 18:11:57 2015 +0530
iwir added
commit a64d172016d97db237e0a9ba90c983dabf7208f3
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 23:21:12 2015 +0530
no iwir
commit f099b1e463e7a6648aa0856c46b0e2efbe630295
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 23:17:34 2015 +0530
Revert "new"
This reverts commit e5beb625f29eeda80f64aaf84e22ac6e7efd22df.
commit df02d4f5e4474485c1e97bff6c5483ef9aa42394
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 23:15:21 2015 +0530
new
commit c880f624a8d938572cb40898037a3c0fa1225ef4
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 20:49:19 2015 +0530
iwir removed
commit 4a5651938dc1a8eab21bf840e4dd329e2575349f
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 20:48:32 2015 +0530
iwir removed
commit 0d1be572f4c8f33863968eb5e2bba3c6f4f03b2e
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 20:47:20 2015 +0530
iwir removed
commit 815b3f546662d16458c44cf6daba6f8846e2ce06
Author: Menaka Madushanka <me...@gmail.com>
Date: Fri Jun 19 20:14:30 2015 +0530
Apache header restored
commit 9c393d39d7bf598dbba408ac331b9be5201ba2f4
Author: Menaka Madushanka <me...@gmail.com>
Date: Wed Jun 17 21:11:53 2015 +0530
Basic error detection
commit 0b11c7e2513cb790d5f71c26af7ddd1117614975
Author: Menaka Madushanka <me...@gmail.com>
Date: Wed Jun 17 20:53:08 2015 +0530
Changed pom - mvn clean install is working
commit 995fcb38d4137f00676fbaf3958b8b38459fcf7e
Author: Menaka Madushanka <me...@gmail.com>
Date: Wed Jun 17 20:23:51 2015 +0530
--iwir feature added
commit 5da29d8be7fa0cfb001666795244e0270cf1db08
Author: Menaka Madushanka <me...@gmail.com>
Date: Wed Jun 17 20:17:20 2015 +0530
Iwir conversion and tojson
commit 94a21b1b021ba93f27bbcccc34d02261d2257abb
Author: Menaka Madushanka <me...@gmail.com>
Date: Wed Jun 17 20:12:38 2015 +0530
Iwir added
commit 63566f9205dbb815a0409b7a859e62507110f9a6
Author: Menaka Madushanka <me...@gmail.com>
Date: Wed Jun 17 20:05:56 2015 +0530
Dependancy arrangement
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/3bd4874e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/3bd4874e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/3bd4874e
Branch: refs/heads/master
Commit: 3bd4874e4eb94197c0bba2fc397c868cb450cad8
Parents: ed4d4c7
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jun 25 14:26:12 2015 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jun 25 14:26:12 2015 +0100
----------------------------------------------------------------------
taverna-language-commandline/.gitignore | 1 +
taverna-language-commandline/pom.xml | 256 ++++++----
.../apache/taverna/tavlang/CommandLineTool.java | 289 ++++++-----
.../org/apache/taverna/tavlang/tools/Tools.java | 23 +-
.../tavlang/tools/convert/Scufl2Convert.java | 24 +-
.../taverna/tavlang/tools/convert/ToJson.java | 488 +++++++++----------
.../tavlang/tools/convert/ToRobundle.java | 6 +-
.../taverna/tavlang/test/CommandLineTest.java | 14 -
.../taverna/tavlang/test/Scufl2ConvertTest.java | 3 +-
9 files changed, 597 insertions(+), 507 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/.gitignore b/taverna-language-commandline/.gitignore
new file mode 100644
index 0000000..916e17c
--- /dev/null
+++ b/taverna-language-commandline/.gitignore
@@ -0,0 +1 @@
+dependency-reduced-pom.xml
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/pom.xml b/taverna-language-commandline/pom.xml
index 10d1072..db80698 100644
--- a/taverna-language-commandline/pom.xml
+++ b/taverna-language-commandline/pom.xml
@@ -33,121 +33,167 @@
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
-
- <dependency>
- <groupId>${project.parent.groupId}</groupId>
- <artifactId>taverna-scufl2-api</artifactId>
- <version>${project.parent.version}</version>
+
+ <dependency>
+ <groupId>${project.parent.groupId}</groupId>
+ <artifactId>taverna-scufl2-api</artifactId>
+ <version>${project.parent.version}</version>
</dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>taverna-scufl2-wfbundle</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>taverna-scufl2-t2flow</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>taverna-scufl2-wfdesc</artifactId>
- <version>${project.version}</version>
- <optional>true</optional>
- </dependency> -->
- <!--
+
<dependency>
- <groupId>org.purl.wf4ever</groupId>
- <artifactId>scufl2-wfdesc</artifactId>
- <version>0.3.7</version>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>taverna-scufl2-wfbundle</artifactId>
+ <version>${project.version}</version>
</dependency>
- -->
+
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>taverna-scufl2-t2flow</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+<!-- <dependency> -->
+<!-- <groupId>org.shiwa.iwir</groupId> -->
+<!-- <artifactId>iwir</artifactId> -->
+<!-- <version>1.1.4</version> -->
+<!-- <scope>optional</scope> -->
+<!-- <systemPath>${project.build.directory}/taverna-language-commandline/lib/</systemPath> -->
+<!-- </dependency> -->
+
+ <dependency>
+ <groupId>no.s11.scufl2</groupId>
+ <artifactId>scufl2-iwir</artifactId>
+ <version>0.2-SNAPSHOT</version>
+ <optional>true</optional>
+ </dependency>
+
+
<dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.4.8</version>
+ </dependency>
+
+
+ <!-- <dependency> <groupId>${project.groupId}</groupId> <artifactId>taverna-scufl2-wfdesc</artifactId>
+ <version>${project.version}</version> <optional>true</optional> </dependency> -->
+ <!-- <dependency> <groupId>org.purl.wf4ever</groupId> <artifactId>scufl2-wfdesc</artifactId>
+ <version>0.3.7</version> </dependency> -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>${project.groupId}</groupId>
<artifactId>taverna-scufl2-ucfpackage</artifactId>
<version>${project.version}</version>
</dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>taverna-robundle</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>io.airlift</groupId>
- <artifactId>airline</artifactId>
- <version>${io.airlift.airline.version}</version>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>taverna-robundle</artifactId>
+ <version>${project.version}</version>
</dependency>
-
-
- </dependencies>
-
- <build>
- <!-- TODO: plugins for launchers and executable jar files? -->
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>2.3</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>org.apache.tavlang.commandline.TavernaCommandline</mainClass>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
- <repositories>
- <repository>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots />
- <id>mygrid-repository</id>
- <name>myGrid Repository</name>
- <url>http://www.mygrid.org.uk/maven/repository</url>
- </repository>
-
- <repository>
- <id>apache.snapshots</id>
- <name>Apache Snapshot Repository</name>
- <url>http://repository.apache.org/snapshots</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
- </repositories>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>io.airlift</groupId>
+ <artifactId>airline</artifactId>
+ <version>${io.airlift.airline.version}</version>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <!-- TODO: plugins for launchers and executable jar files? -->
+ <plugins>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>appassembler-maven-plugin</artifactId>
+ <version>1.1.1</version>
+ <executions>
+ <execution>
+ <id>assemble</id>
+ <phase>package</phase>
+ <goals>
+ <goal>assemble</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <repositoryLayout>flat</repositoryLayout>
+ <repositoryName>lib</repositoryName>
+ <assembleDirectory>${project.build.directory}/${project.artifactId}</assembleDirectory>
+ <programs>
+ <program>
+ <mainClass>org.apache.taverna.tavlang.TavernaCommandline</mainClass>
+ <name>tavlang</name>
+ </program>
+ </programs>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>2.3</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <transformers>
+ <transformer
+ implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+ <transformer
+ implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <mainClass>org.apache.taverna.tavlang.TavernaCommandline</mainClass>
+ </transformer>
+ </transformers>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+
+ </plugins>
+ </build>
+
+ <repositories>
+ <repository>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots />
+ <id>mygrid-repository</id>
+ <name>myGrid Repository</name>
+ <url>http://www.mygrid.org.uk/maven/repository</url>
+ </repository>
+
+ <repository>
+ <id>apache.snapshots</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://repository.apache.org/snapshots</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
index eb56801..345f0b5 100644
--- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
+++ b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
@@ -1,6 +1,5 @@
package org.apache.taverna.tavlang;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -20,7 +19,6 @@ package org.apache.taverna.tavlang;
* under the License.
*/
-
import io.airlift.airline.Arguments;
import io.airlift.airline.Cli;
import io.airlift.airline.Cli.CliBuilder;
@@ -28,7 +26,6 @@ import io.airlift.airline.Command;
import io.airlift.airline.Help;
import io.airlift.airline.Option;
-import java.io.File;
import java.io.IOException;
import java.util.List;
@@ -36,8 +33,6 @@ import javax.inject.Inject;
import javax.xml.bind.JAXBException;
import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.tavlang.tools.Tools;
-import org.apache.taverna.tavlang.tools.Tools.ConvertionTools;
import org.apache.taverna.tavlang.tools.convert.Scufl2Convert;
import org.apache.taverna.tavlang.tools.convert.ToRobundle;
import org.apache.taverna.tavlang.tools.inspect.ProcessorNames;
@@ -47,16 +42,15 @@ import org.apache.taverna.tavlang.tools.validate.Validate;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
-
/*
* The command line options for convert, validate and inspect workflows.
* Use the airlift/airline library
* */
public class CommandLineTool {
-
- private Cli<TvnLangTool> parser(){
- CliBuilder<TvnLangTool> build = Cli.<TvnLangTool>builder("tavlang")
+
+ private static Cli<TvnLangTool> parser() {
+ CliBuilder<TvnLangTool> build = Cli.<TvnLangTool> builder("tavlang")
.withDescription("Convert, manage workflows")
.withDefaultCommand(HelpCommand.class)
.withCommand(CommandConvert.class)
@@ -64,198 +58,238 @@ public class CommandLineTool {
.withCommand(CommandInspect.class)
.withCommand(CommandValidate.class)
.withCommand(CommandVersion.class);
-
+
return build.build();
}
- public CommandLineTool(){};
- public void parse(String... args)
- {
- System.out.println("$ tavlang " + Joiner.on(" ").join(args));
- TvnLangTool command = parser().parse(args);
- command.execute();
- System.out.println();
- }
-
- public static abstract class TvnLangTool{
+ public CommandLineTool() {
+ };
+
+ public void parse(String... args) {
+ System.out.println("$ tavlang " + Joiner.on(" ").join(args));
+ TvnLangTool command = parser().parse(args);
+ command.execute();
+ System.out.println();
+ }
+
+ public static abstract class TvnLangTool {
public abstract void execute();
}
-
- //placeholder for output file types
- public static class Filetypes{
- @Option(name= "--wfdesc", description="Convert the workflow file to wfdesc-turtle")
+
+ // placeholder for output file types
+ public static class Filetypes {
+ @Option(name = "--wfdesc", description = "Convert the workflow file to wfdesc-turtle")
public static boolean isWfdesc = false;
-
- @Option(name="--wfbundle", description="Convert the workflow file to wfbundel")
+
+ @Option(name = "--wfbundle", description = "Convert the workflow file to wfbundel")
public static boolean isWfbundel = false;
-
- @Option(name = "--robundle", description = "Convert given bundel in to Research Object bundel")
+
+ @Option(name = "--robundle", description = "Convert given bundel in to Research Object bundel")
public static boolean isRo = false;
-
- @Option(name= "--structure", description = "Convert the workflow into *.structure")
+
+ @Option(name = "--structure", description = "Convert the workflow into *.structure")
public static boolean isStructure = false;
@Option(name = "--json", description = "Convert the workflow into json")
public static boolean isJson = false;
+
- //The tool can only handle one output format at a time.
- //Return the file type which is selected
- public static String isTrue(){
- if(isWfdesc) return "wfdesc";
- else if(isWfbundel) return "wfbundle";
- else if(isRo) return "robundle";
- else if(isStructure) return "structure";
- else if(isJson) return "json";
- else return null;
- }
+ @Option(name = "--iwir", description = "Convert scufl2 workflows into IWIR 1.1 specification")
+ public static boolean isIwir = false;
+
+ // The tool can only handle one output format at a time.
+ // Return the file type which is selected
+ public static String isTrue() {
+ if (isWfdesc)
+ return "wfdesc";
+ else if (isWfbundel)
+ return "wfbundle";
+ else if (isRo)
+ return "robundle";
+ else if (isStructure)
+ return "structure";
+ else if (isJson)
+ return "json";
+
+ else if (isIwir)
+ return "iwir";
+
+
+ else{
+ System.out.println("Invalid argument....");
+ TvnLangTool command = parser().parse("help", "convert");
+ command.execute();
+ return null;
+ }
+
+ }
+
}
-
- public static class Inspect{
+
+ public static class Inspect {
@Option(name = "--servicetypes", description = "List the service types used in workflow")
public static boolean servicetypes = false;
-
+
@Option(name = "--processornames", description = "List a tree of processor names used in workflow")
public static boolean processor = false;
-
- public String getWay(){
- if(servicetypes) return "servicetypes";
- else if (processor) return "processornames";
- else return null;
+
+ public String getWay() {
+ if (servicetypes)
+ return "servicetypes";
+ else if (processor)
+ return "processornames";
+ else{
+ System.out.println("Invalid argument....");
+ TvnLangTool command = parser().parse("help", "inspect");
+ command.execute();
+ return null;
+
+ }
+
}
-
+
}
-
-
- //Placeholder for optional parameters: Ex: -i, -o
- public static class Optional{
-
- //The input file or directory
- @Option(name = {"-i", "--input"}, description="Input file/ file dir for conversion")
+
+ // Placeholder for optional parameters: Ex: -i, -o
+ public static class Optional {
+
+ // The input file or directory
+ @Option(name = { "-i", "--input" }, description = "Input file/ file dir for conversion")
public static String in_file_dir;
-
- //The out put file or directory. When this is set, all the converted files will be saved into the directory that specified.
- @Option(name = {"-o", "--output"}, description="Output file/ directory")
+
+ // The out put file or directory. When this is set, all the converted
+ // files will be saved into the directory that specified.
+ @Option(name = { "-o", "--output" }, description = "Output file/ directory")
public static String out_file_dir;
-
- public static String getInFile(){
+
+ public static String getInFile() {
return in_file_dir;
}
-
- public static String getOutFile(){
+
+ public static String getOutFile() {
return out_file_dir;
}
}
-
+
@Command(name = "help", description = "Display help information about Tvarna")
- public static class HelpCommand extends TvnLangTool{
+ public static class HelpCommand extends TvnLangTool {
@Inject
- public Help help;
+ public Help help;
- @Override
- public void execute(){
- help.call();
- }
+ @Override
+ public void execute() {
+ help.call();
+ }
}
-
- //Command for convert workflows
- @Command(name="convert", description="Convert the given workflow")
- public static class CommandConvert extends TvnLangTool{
+
+ // Command for convert workflows
+ @Command(name = "convert", description = "Convert the given workflow")
+ public static class CommandConvert extends TvnLangTool {
@Inject
Optional optional = new Optional();
-
+
@Inject
Filetypes filetypes = new Filetypes();
-
+
@Arguments(usage = "<output format> <input files> ", description = "List of files to be converted.\n "
+ "Give the list of files to be converted without -i/-o and the converted files will be saved in to /converted folder in the same dir")
- public final List<String> files = Lists.newArrayList();
-
- //When this is true, the command will run recursively in a directory.
- @Option(name={"-r", "--recursive"}, description="Execute the command recursively")
+ public final List<String> files = Lists.newArrayList();
+
+ // When this is true, the command will run recursively in a directory.
+ @Option(name = { "-r", "--recursive" }, description = "Execute the command recursively")
public boolean recurse = false;
-
- //Option for validate the given workflow when converting
- @Option(name = {"-V", "--validate"}, description="Validate the workflow before convert")
+
+ // Option for validate the given workflow when converting
+ @Option(name = { "-V", "--validate" }, description = "Validate the workflow before convert")
public boolean validate = false;
-
+
@Override
- public void execute(){
- Scufl2Convert bn;
- if(filetypes.isJson ){
-
- }else if(filetypes.isRo){
+ public void execute() {
+ if (Filetypes.isRo) {
try {
- ToRobundle ro = new ToRobundle(files, optional.getOutFile());
+ new ToRobundle(files, Optional.getOutFile());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- }else{
- if(recurse){
- bn = new Scufl2Convert(filetypes.isTrue(), optional.getInFile(), optional.getOutFile());
- }else{
- bn = new Scufl2Convert(filetypes.isTrue(), files, optional.getOutFile());
+// else if(Filetypes.isIwir || Filetypes.isJson || Filetypes.isStructure || Filetypes.isWfbundel || Filetypes.isWfdesc)
+ } else if(Filetypes.isIwir || Filetypes.isJson || Filetypes.isStructure || Filetypes.isWfbundel || Filetypes.isWfdesc){
+ if (recurse) {
+ new Scufl2Convert(Filetypes.isTrue(),
+ Optional.getInFile(), Optional.getOutFile());
+ } else {
+ new Scufl2Convert(Filetypes.isTrue(), files,
+ Optional.getOutFile());
}
+ }else{
+ System.out.println("Invalid argument....");
+ TvnLangTool command = parser().parse("help", "convert");
+ command.execute();
}
-
+
}
-
+
}
-
- //Version command
- @Command(name="version", description = "Show version informantion")
- public static class CommandVersion extends TvnLangTool{
+
+ // Version command
+ @Command(name = "version", description = "Show version informantion")
+ public static class CommandVersion extends TvnLangTool {
@Override
public void execute() {
// TODO Auto-generated method stub
- System.out.println("Apache Taverna Language Command line tool. \nVersion 1.0 ");
+ System.out
+ .println("Apache Taverna Language Command line tool. \nVersion 1.0 ");
}
-
+
}
-
- //Command for inspection of workflows....!!
- @Command(name="inspect", description="Inspect the given workflow and show the results on the terminal")
- public static class CommandInspect extends TvnLangTool{
-
+
+ // Command for inspection of workflows....!!
+ @Command(name = "inspect", description = "Inspect the given workflow and show the results on the terminal")
+ public static class CommandInspect extends TvnLangTool {
+
@Inject
Inspect inspect = new Inspect();
-
- @Option(name={"-l", "--log"}, description="Specify the file name where results should be stored ([some dir]/log.txt)")
+
+ @Option(name = { "-l", "--log" }, description = "Specify the file name where results should be stored ([some dir]/log.txt)")
public String file;
-
- @Arguments(usage="<option> <input files>", description="Inspect the given workflow")
+
+ @Arguments(usage = "<option> <input files>", description = "Inspect the given workflow")
public List<String> toInspect = Lists.newArrayList();
-
+
@Override
public void execute() {
// TODO Auto-generated method stub
- if(inspect.processor){
+ if (Inspect.processor) {
try {
- ProcessorNames pn = new ProcessorNames(toInspect, file);
-
+ new ProcessorNames(toInspect, file);
+
} catch (ReaderException | IOException | JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- }else if(inspect.servicetypes){
+ } else if (Inspect.servicetypes) {
try {
- ServiceTypes st = new ServiceTypes(toInspect, file);
+ new ServiceTypes(toInspect, file);
} catch (IOException | ReaderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
+
+ }else{
+ System.out.println("Invalid argument....");
+ TvnLangTool command = parser().parse("help", "inspect");
+ command.execute();
}
-
+
}
-
+
}
-
- //Command for validation
+
+ // Command for validation
@Command(name = "validate", description = "validate the given workflow")
public static class CommandValidate extends TvnLangTool{
@Option(name = { "-l", "--log" }, description = "Specify the file name where results should be stored ([some dir]/log.txt)")
@@ -271,9 +305,12 @@ public class CommandLineTool {
@Override
public void execute() {
// TODO Auto-generated method stub
-
- Validate validate = new Validate(toValidate, file);
+ System.out.println("Invalid argument....");
+ TvnLangTool command = parser().parse("help", "validate");
+ command.execute();
+
}
+
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/Tools.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/Tools.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/Tools.java
index a8ee5f4..fb878fb 100644
--- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/Tools.java
+++ b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/Tools.java
@@ -32,18 +32,18 @@ public class Tools {
@Override
public String getMediaType(ConvertionTools t) {
// TODO Auto-generated method stub
- System.out.println(mediaType);
+// System.out.println(mediaType);
return this.mediaType;
}
},
json{
- public String mediaType = "application/json";
+ public String mediaType = "application/ld+json";
@Override
public String getMediaType(ConvertionTools t) {
// TODO Auto-generated method stub
- System.out.println(mediaType);
+// System.out.println(mediaType);
return mediaType;
}
},
@@ -54,7 +54,7 @@ public class Tools {
@Override
public String getMediaType(ConvertionTools t) {
// TODO Auto-generated method stub
- System.out.println(mediaType);
+// System.out.println(mediaType);
return mediaType;
}
},
@@ -73,11 +73,20 @@ public class Tools {
@Override
public String getMediaType(ConvertionTools t) {
// TODO Auto-generated method stub
- System.out.println(mediaType);
+// System.out.println(mediaType);
return mediaType;
}
-
-
+ },
+
+ iwir{
+ public String mediaType = "application/vnd.shiwa.iwir+xml";
+
+ @Override
+ public String getMediaType(ConvertionTools t) {
+ // TODO Auto-generated method stub
+// System.out.println(mediaType);
+ return mediaType;
+ }
};
ConvertionTools(){}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/Scufl2Convert.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/Scufl2Convert.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/Scufl2Convert.java
index 02135dc..03a9f89 100644
--- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/Scufl2Convert.java
+++ b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/Scufl2Convert.java
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
import org.apache.taverna.scufl2.api.container.WorkflowBundle;
import org.apache.taverna.scufl2.api.io.ReaderException;
import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
@@ -37,6 +38,7 @@ import org.apache.taverna.tavlang.tools.validate.Validate;
* .t2flow --> .wfbundle
* .t2flow --> .structure
* .wfbundle --> .structure
+ * .wfbundle/ .t2flow -> .iwir
* two constructors.
* Scufl2Convert(List<String> list, String out) --> will save the converted files in 'out folder or a directory named /converted in the same folder.
* Scufl2Convert(String in, String out) --> Will convert all the files in the 'in' folder and save them in 'out' folder --> -r must be true.
@@ -163,6 +165,14 @@ public class Scufl2Convert{
//Convert the file
public void convertFile(File t2File, File outFile){
+
+ //Check weather the input files are in valid format...!!!
+ String ext = FilenameUtils.getExtension(t2File.getName());
+ if(!ext.equals("t2flow")||!ext.equals("wfbundle")){
+ System.err.println("Invalid input file format...!!!");
+ return;
+ }
+
WorkflowBundleIO wfbio = new WorkflowBundleIO();
String filename = t2File.getName();
filename = filename.replaceFirst("\\..*", this.type);
@@ -172,7 +182,19 @@ public class Scufl2Convert{
WorkflowBundle wfBundle;
try {
wfBundle = wfbio.readBundle(t2File, null);// null --> will guess the media type for reading.
- wfbio.writeBundle(wfBundle, scufl2File, this.MEDIA_TYPE);
+
+// if(this.type.equals(".iwir")){
+// IwirWriter iww = new IwirWriter();
+// iww.writeBundle(wfBundle, scufl2File, this.MEDIA_TYPE);
+// }else
+
+ if(this.type.equals(".json")){
+ ToJson toJ = new ToJson();
+ toJ.convert(t2File, outFile);
+ }
+ else{
+ wfbio.writeBundle(wfBundle, scufl2File, this.MEDIA_TYPE);
+ }
System.out.println(scufl2File.getPath() + " is created.");
}catch (ReaderException e){
System.err.println(e.getLocalizedMessage());
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToJson.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToJson.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToJson.java
index f2ab156..47d6b57 100644
--- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToJson.java
+++ b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToJson.java
@@ -19,7 +19,6 @@ package org.apache.taverna.tavlang.tools.convert;
* under the License.
*/
-
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
@@ -58,253 +57,242 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
public class ToJson {
- public class JsonWriter implements WorkflowBundleWriter {
-
- @Override
- public Set<String> getMediaTypes() {
- return new HashSet<String>(Arrays.asList("application/ld+json",
- "application/json"));
- }
- @Override
- public void writeBundle(WorkflowBundle wfBundle, File destination,
- String mediaType) throws WriterException, IOException {
- ObjectNode json = toJson(wfBundle);
- mapper.writeValue(destination, json);
- }
-
- @Override
- public void writeBundle(WorkflowBundle wfBundle,
- OutputStream output, String mediaType)
- throws WriterException, IOException {
- ObjectNode json = toJson(wfBundle);
- mapper.writeValue(output, json);
- }
-
- }
-
- public static void main(String[] args) throws ReaderException, IOException,
- WriterException {
- String[] args2 = {"/home/menaka/conv/aaa/as.wfbundle"};
- new ToJson().convert(args2);
- }
-
-
- private WorkflowBundleIO io = new WorkflowBundleIO();;
-
- private WorkflowBundleWriter jsonWriter = new JsonWriter();
-
- private ObjectMapper mapper = new ObjectMapper();
-
- private Scufl2Tools scufl2Tools = new Scufl2Tools();
-
- private URITools uriTools = new URITools();
-
- public ToJson() {
- mapper.enable(SerializationFeature.INDENT_OUTPUT);
- mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
- mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
-
- mapper.setDateFormat(new ISO8601DateFormat());
-
- // Adding custom writer dynamically
- List<WorkflowBundleWriter> writers = io.getWriters();
- writers.add(jsonWriter);
- io.setWriters(writers);
- }
-
- protected void addPorts(Ported ported, ObjectNode p) {
- ArrayNode inputs = mapper.createArrayNode();
- for (Port port : ported.getInputPorts()) {
- inputs.add(toJson(port));
- }
- p.put("inputs", inputs);
-
- ArrayNode outputs = mapper.createArrayNode();
- for (Port port : ported.getOutputPorts()) {
- outputs.add(toJson(port));
- // FIXME: Do we need the id for ports? Needed if we add datalinks
- }
- p.put("outputs", outputs);
- }
-
- protected ObjectNode annotations(Child<?> bean) {
- ObjectNode node = mapper.createObjectNode();
- for (Annotation ann : scufl2Tools.annotationsFor(bean)) {
- URI annUri = uriTools.uriForBean(ann);
-
- // TODO: include annotation body?
- }
- return node;
- }
-
- public void convert(String[] filepaths) throws ReaderException,
- IOException, WriterException {
- if (filepaths[0].equals("-")) {
- // Do piped Stdin/Stdout instead
- WorkflowBundle wfBundle = io.readBundle(System.in, null);
- io.writeBundle(wfBundle, System.err, "application/ld+json");
- return;
- }
-
- for (String filepath : filepaths) {
- File workflow = new File(filepath);
-
- String filename = workflow.getName();
- filename = filename.replaceFirst("\\..*", ".json");
- File workflowFile = new File(workflow.getParentFile(), filename);
-
- WorkflowBundle wfBundle = io.readBundle(workflow, null);
- io.writeBundle(wfBundle, workflowFile, "application/ld+json");
- System.out.println(workflowFile);
- }
- }
-
- protected ObjectNode toJson(Port port) {
- ObjectNode p = mapper.createObjectNode();
- p.put("name", port.getName());
- p.putPOJO("id", uriTools.relativeUriForBean(port,
- scufl2Tools.findParent(WorkflowBundle.class, ((Child<?>)port))));
-
- if (port instanceof DepthPort) {
- DepthPort depthPort = (DepthPort) port;
- if (depthPort.getDepth() != null) {
- p.put("depth", depthPort.getDepth());
- }
- }
- if (port instanceof GranularDepthPort) {
- GranularDepthPort granularDepthPort = (GranularDepthPort) port;
- if (granularDepthPort.getGranularDepth() != null &&
- ! granularDepthPort.getGranularDepth().equals(granularDepthPort.getDepth())) {
- p.put("granularDepth", granularDepthPort.getGranularDepth());
- }
- }
- p.putAll(annotations((Child<?>)port));
- return p;
- }
-
- protected JsonNode toJson(Processor proc) {
- ObjectNode p = mapper.createObjectNode();
- p.putPOJO("id", uriTools.relativeUriForBean(proc, proc.getParent().getParent()));
- p.put("name", proc.getName());
- addPorts(proc, p);
- p.putAll(annotations(proc));
-
- List<Workflow> nested = scufl2Tools.nestedWorkflowsForProcessor(proc,
- proc.getParent().getParent().getMainProfile());
- if (! nested.isEmpty()) {
- if (nested.size() == 1) {
- p.put("nestedWorkflow", toJson(nested.iterator().next()));
- } else {
- ArrayNode list = mapper.createArrayNode();
- for (Workflow w : nested) {
- list.add(toJson(w));
- }
- p.put("nestedWorkflow", list);
- }
- }
- return p;
- }
-
- protected JsonNode toJson(Revision currentRevision) {
- ArrayNode revisions = mapper.createArrayNode();
- while (currentRevision != null) {
- ObjectNode rev = mapper.createObjectNode();
- rev.putPOJO("id", currentRevision.getIdentifier());
- if (currentRevision.getGeneratedAtTime() != null) {
- rev.putPOJO("generatedAtTime", currentRevision.getGeneratedAtTime());
- }
- currentRevision = currentRevision.getPreviousRevision();
- if (currentRevision != null) {
- rev.putPOJO("wasRevisionOf", currentRevision.getIdentifier());
- }
- revisions.add(rev);
- }
- return revisions;
- }
-
- protected ObjectNode toJson(Workflow workflow) {
- ObjectNode wf = mapper.createObjectNode();
-
- wf.putPOJO("id", uriTools.relativeUriForBean(workflow, workflow.getParent()));
-
- wf.put("name", workflow.getName());
- wf.put("revisions", toJson(workflow.getCurrentRevision()));
-
- ArrayNode processors = mapper.createArrayNode();
- for (Processor p : workflow.getProcessors()) {
- processors.add(toJson(p));
- }
- addPorts(workflow, wf);
- wf.put("processors", processors);
-
- ArrayNode datalinks = mapper.createArrayNode();
- for (DataLink link : workflow.getDataLinks()) {
- datalinks.add(toJson(link));
- }
- wf.put("datalinks", datalinks);
-
- ArrayNode controlLinks = mapper.createArrayNode();
- for (ControlLink link : workflow.getControlLinks()) {
- controlLinks.add(toJson(link));
- }
- wf.put("controllinks", controlLinks);
-
-
- wf.putAll(annotations(workflow));
-
- return wf;
- }
-
- protected JsonNode toJson(ControlLink link) {
- ObjectNode l = mapper.createObjectNode();
- if (link instanceof BlockingControlLink) {
- BlockingControlLink controlLink = (BlockingControlLink) link;
- l.putPOJO("block", uriTools.relativeUriForBean(controlLink.getBlock(),
- link.getParent().getParent()));
- l.putPOJO("untilFinished", uriTools.relativeUriForBean(controlLink.getUntilFinished(),
- link.getParent().getParent()));
- }
- return l;
- }
-
- protected JsonNode toJson(DataLink link) {
- ObjectNode l = mapper.createObjectNode();
- l.putPOJO("receivesFrom", uriTools.relativeUriForBean(link.getReceivesFrom(),
- link.getParent().getParent()));
- l.putPOJO("sendsTo", uriTools.relativeUriForBean(link.getSendsTo(),
- link.getParent().getParent()));
- if (link.getMergePosition() != null) {
- l.put("mergePosition", link.getMergePosition());
- }
- return l;
- }
-
- public ObjectNode toJson(WorkflowBundle wfBundle) {
-
- ObjectNode root = mapper.createObjectNode();
- ArrayNode contextList = root.arrayNode();
- root.put("@context", contextList);
- ObjectNode context = root.objectNode();
- contextList.add("https://w3id.org/scufl2/context");
- contextList.add(context);
- URI base = wfBundle.getGlobalBaseURI();
- context.put("@base", base.toASCIIString());
- root.put("id", base.toASCIIString());
-
-// root.put("name", wfBundle.getName());
-// root.put("revisions", toJson(wfBundle.getCurrentRevision()));
-
- root.put("workflow", toJson(wfBundle.getMainWorkflow()));
- root.put("profile", toJson(wfBundle.getMainProfile()));
-
- return root;
- }
-
- private JsonNode toJson(Profile profile) {
- ObjectNode pf = mapper.createObjectNode();
-
- pf.putPOJO("id", uriTools.relativeUriForBean(profile, profile.getParent()));
- // TODO: Activities and configurations
- return pf;
- }
+ public class JsonWriter implements WorkflowBundleWriter {
+
+ @Override
+ public Set<String> getMediaTypes() {
+ return new HashSet<String>(Arrays.asList("application/ld+json",
+ "application/json"));
+ }
+
+ @Override
+ public void writeBundle(WorkflowBundle wfBundle, File destination,
+ String mediaType) throws WriterException, IOException {
+ ObjectNode json = toJson(wfBundle);
+ mapper.writeValue(destination, json);
+ }
+
+ @Override
+ public void writeBundle(WorkflowBundle wfBundle, OutputStream output,
+ String mediaType) throws WriterException, IOException {
+ ObjectNode json = toJson(wfBundle);
+ mapper.writeValue(output, json);
+ }
+
+ }
+
+
+ private WorkflowBundleIO io = new WorkflowBundleIO();;
+
+ private WorkflowBundleWriter jsonWriter = new JsonWriter();
+
+ private ObjectMapper mapper = new ObjectMapper();
+
+ private Scufl2Tools scufl2Tools = new Scufl2Tools();
+
+ private URITools uriTools = new URITools();
+
+ public ToJson() {
+ mapper.enable(SerializationFeature.INDENT_OUTPUT);
+ mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
+ mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
+
+ mapper.setDateFormat(new ISO8601DateFormat());
+
+ // Adding custom writer dynamically
+ List<WorkflowBundleWriter> writers = io.getWriters();
+ writers.add(jsonWriter);
+ io.setWriters(writers);
+ }
+
+ protected void addPorts(Ported ported, ObjectNode p) {
+ ArrayNode inputs = mapper.createArrayNode();
+ for (Port port : ported.getInputPorts()) {
+ inputs.add(toJson(port));
+ }
+ p.put("inputs", inputs);
+
+ ArrayNode outputs = mapper.createArrayNode();
+ for (Port port : ported.getOutputPorts()) {
+ outputs.add(toJson(port));
+ // FIXME: Do we need the id for ports? Needed if we add datalinks
+ }
+ p.put("outputs", outputs);
+ }
+
+ protected ObjectNode annotations(Child<?> bean) {
+ ObjectNode node = mapper.createObjectNode();
+ for (Annotation ann : scufl2Tools.annotationsFor(bean)) {
+ URI annUri = uriTools.uriForBean(ann);
+
+ // TODO: include annotation body?
+ }
+ return node;
+ }
+
+ public void convert(File in, File out) throws ReaderException, IOException,
+ WriterException {
+ String filename = in.getName();
+ filename = filename.replaceFirst("\\..*", ".json");
+ File workflowFile = new File(out.getAbsolutePath(), filename);
+
+ WorkflowBundle wfBundle = io.readBundle(in, null);
+ io.writeBundle(wfBundle, workflowFile, "application/ld+json");
+ System.out.println(workflowFile);
+
+ }
+
+ protected ObjectNode toJson(Port port) {
+ ObjectNode p = mapper.createObjectNode();
+ p.put("name", port.getName());
+ p.putPOJO("id",
+ uriTools.relativeUriForBean(port, scufl2Tools.findParent(
+ WorkflowBundle.class, ((Child<?>) port))));
+
+ if (port instanceof DepthPort) {
+ DepthPort depthPort = (DepthPort) port;
+ if (depthPort.getDepth() != null) {
+ p.put("depth", depthPort.getDepth());
+ }
+ }
+ if (port instanceof GranularDepthPort) {
+ GranularDepthPort granularDepthPort = (GranularDepthPort) port;
+ if (granularDepthPort.getGranularDepth() != null
+ && !granularDepthPort.getGranularDepth().equals(
+ granularDepthPort.getDepth())) {
+ p.put("granularDepth", granularDepthPort.getGranularDepth());
+ }
+ }
+ p.putAll(annotations((Child<?>) port));
+ return p;
+ }
+
+ protected JsonNode toJson(Processor proc) {
+ ObjectNode p = mapper.createObjectNode();
+ p.putPOJO("id",
+ uriTools.relativeUriForBean(proc, proc.getParent().getParent()));
+ p.put("name", proc.getName());
+ addPorts(proc, p);
+ p.putAll(annotations(proc));
+
+ List<Workflow> nested = scufl2Tools.nestedWorkflowsForProcessor(proc,
+ proc.getParent().getParent().getMainProfile());
+ if (!nested.isEmpty()) {
+ if (nested.size() == 1) {
+ p.put("nestedWorkflow", toJson(nested.iterator().next()));
+ } else {
+ ArrayNode list = mapper.createArrayNode();
+ for (Workflow w : nested) {
+ list.add(toJson(w));
+ }
+ p.put("nestedWorkflow", list);
+ }
+ }
+ return p;
+ }
+
+ protected JsonNode toJson(Revision currentRevision) {
+ ArrayNode revisions = mapper.createArrayNode();
+ while (currentRevision != null) {
+ ObjectNode rev = mapper.createObjectNode();
+ rev.putPOJO("id", currentRevision.getIdentifier());
+ if (currentRevision.getGeneratedAtTime() != null) {
+ rev.putPOJO("generatedAtTime",
+ currentRevision.getGeneratedAtTime());
+ }
+ currentRevision = currentRevision.getPreviousRevision();
+ if (currentRevision != null) {
+ rev.putPOJO("wasRevisionOf", currentRevision.getIdentifier());
+ }
+ revisions.add(rev);
+ }
+ return revisions;
+ }
+
+ protected ObjectNode toJson(Workflow workflow) {
+ ObjectNode wf = mapper.createObjectNode();
+
+ wf.putPOJO("id",
+ uriTools.relativeUriForBean(workflow, workflow.getParent()));
+
+ wf.put("name", workflow.getName());
+ wf.put("revisions", toJson(workflow.getCurrentRevision()));
+
+ ArrayNode processors = mapper.createArrayNode();
+ for (Processor p : workflow.getProcessors()) {
+ processors.add(toJson(p));
+ }
+ addPorts(workflow, wf);
+ wf.put("processors", processors);
+
+ ArrayNode datalinks = mapper.createArrayNode();
+ for (DataLink link : workflow.getDataLinks()) {
+ datalinks.add(toJson(link));
+ }
+ wf.put("datalinks", datalinks);
+
+ ArrayNode controlLinks = mapper.createArrayNode();
+ for (ControlLink link : workflow.getControlLinks()) {
+ controlLinks.add(toJson(link));
+ }
+ wf.put("controllinks", controlLinks);
+
+ wf.putAll(annotations(workflow));
+
+ return wf;
+ }
+
+ protected JsonNode toJson(ControlLink link) {
+ ObjectNode l = mapper.createObjectNode();
+ if (link instanceof BlockingControlLink) {
+ BlockingControlLink controlLink = (BlockingControlLink) link;
+ l.putPOJO("block", uriTools.relativeUriForBean(
+ controlLink.getBlock(), link.getParent().getParent()));
+ l.putPOJO("untilFinished", uriTools.relativeUriForBean(controlLink
+ .getUntilFinished(), link.getParent().getParent()));
+ }
+ return l;
+ }
+
+ protected JsonNode toJson(DataLink link) {
+ ObjectNode l = mapper.createObjectNode();
+ l.putPOJO("receivesFrom", uriTools.relativeUriForBean(
+ link.getReceivesFrom(), link.getParent().getParent()));
+ l.putPOJO("sendsTo", uriTools.relativeUriForBean(link.getSendsTo(),
+ link.getParent().getParent()));
+ if (link.getMergePosition() != null) {
+ l.put("mergePosition", link.getMergePosition());
+ }
+ return l;
+ }
+
+ public ObjectNode toJson(WorkflowBundle wfBundle) {
+
+ ObjectNode root = mapper.createObjectNode();
+ ArrayNode contextList = root.arrayNode();
+ root.put("@context", contextList);
+ ObjectNode context = root.objectNode();
+ contextList.add("https://w3id.org/scufl2/context");
+ contextList.add(context);
+ URI base = wfBundle.getGlobalBaseURI();
+ context.put("@base", base.toASCIIString());
+ root.put("id", base.toASCIIString());
+
+ // root.put("name", wfBundle.getName());
+ // root.put("revisions", toJson(wfBundle.getCurrentRevision()));
+
+ root.put("workflow", toJson(wfBundle.getMainWorkflow()));
+ root.put("profile", toJson(wfBundle.getMainProfile()));
+
+ return root;
+ }
+
+ private JsonNode toJson(Profile profile) {
+ ObjectNode pf = mapper.createObjectNode();
+
+ pf.putPOJO("id",
+ uriTools.relativeUriForBean(profile, profile.getParent()));
+ // TODO: Activities and configurations
+ return pf;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToRobundle.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToRobundle.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToRobundle.java
index 8781ca6..0b7a6a0 100644
--- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToRobundle.java
+++ b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToRobundle.java
@@ -58,9 +58,9 @@ public class ToRobundle{
public void convert(Path file) throws IOException{
try (Bundle bundle = Bundles.openBundle(file)) {
- System.out.println(bundle.getManifest().toString());
-// bundle.getManifest().writeAsJsonLD();
-// bundle.getManifest().writeAsCombineManifest();
+// System.out.println(bundle.getManifest().toString());
+ bundle.getManifest().writeAsJsonLD();
+ bundle.getManifest().writeAsCombineManifest();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/CommandLineTest.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/CommandLineTest.java b/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/CommandLineTest.java
index 0d1b3b2..6beaa8e 100644
--- a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/CommandLineTest.java
+++ b/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/CommandLineTest.java
@@ -29,7 +29,6 @@ public class CommandLineTest {
@Test
public void testHelp(){
-// Assert
commandLineTool.parse();
commandLineTool.parse("version");
commandLineTool.parse("help");
@@ -39,19 +38,6 @@ public class CommandLineTest {
commandLineTool.parse("help", "help");
}
- @Test
- public void testConvert(){
-
-
-// CommandLineTool tool = new CommandLineTool();
- commandLineTool.parse("convert", "-r", "-structure", "-i", "/home/menaka/conv/aaa");
-// CommandLineTool tool2 = new CommandLineTool();
-// commandLineTool.parse("convert", "-r", "-wfdesc", "-o", "/files/dir", "-i", "/files0/dir");
-// commandLineTool.parse();
-// commandLineTool.parse();
-// commandLineTool.parse();
-
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bd4874e/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/Scufl2ConvertTest.java
----------------------------------------------------------------------
diff --git a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/Scufl2ConvertTest.java b/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/Scufl2ConvertTest.java
index c98b005..cb33241 100644
--- a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/Scufl2ConvertTest.java
+++ b/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/Scufl2ConvertTest.java
@@ -26,8 +26,9 @@ import org.junit.Test;
public class Scufl2ConvertTest{
@Test
- public void test() {
+ public void testConvertS() {
// fail("Not yet implemented");
+
}
}