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 2016/02/10 13:47:02 UTC
[18/50] [abbrv] incubator-taverna-language git commit: Merge
remote-tracking branch 'gale/patch-2'
Merge remote-tracking branch 'gale/patch-2'
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/579bafe4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/579bafe4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/579bafe4
Branch: refs/heads/wfdesc-jena
Commit: 579bafe40f1b372f7354549a5073070fd8c11bc0
Parents: 755469c 0abb308
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Feb 2 22:16:57 2016 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Feb 2 22:16:57 2016 +0000
----------------------------------------------------------------------
.../java/org/apache/taverna/tavlang/CommandLineTool.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/579bafe4/taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
----------------------------------------------------------------------
diff --cc taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
index 068c933,0000000..366ebc5
mode 100644,000000..100644
--- a/taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
+++ b/taverna-tavlang-tool/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java
@@@ -1,350 -1,0 +1,350 @@@
+package org.apache.taverna.tavlang;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import io.airlift.airline.Arguments;
+import io.airlift.airline.Cli;
+import io.airlift.airline.Cli.CliBuilder;
+import io.airlift.airline.Command;
+import io.airlift.airline.Help;
+import io.airlift.airline.Option;
+
+import java.io.IOException;
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.xml.bind.JAXBException;
+
+import org.apache.taverna.scufl2.api.io.ReaderException;
+import org.apache.taverna.tavlang.tools.convert.Scufl2Convert;
+import org.apache.taverna.tavlang.tools.convert.ToRobundle;
+import org.apache.taverna.tavlang.tools.inspect.ProcessorNames;
+import org.apache.taverna.tavlang.tools.inspect.ServiceTypes;
+import org.apache.taverna.tavlang.tools.stats.GetWfStat;
+import org.apache.taverna.tavlang.tools.validate.Validate;
+
+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 static Cli<TvnLangTool> parser() {
+ CliBuilder<TvnLangTool> build = Cli.<TvnLangTool> builder("tavlang")
+ .withDescription("Convert, manage workflows")
+ .withDefaultCommand(HelpCommand.class)
+ .withCommand(CommandConvert.class) // Conversion
+ .withCommand(HelpCommand.class) // Help
+ .withCommand(CommandInspect.class) // Inspect
+ .withCommand(CommandValidate.class) // Validate
+ .withCommand(CommandVersion.class) // Version
+ .withCommand(CommandStat.class); // Statistics
+
+ return build.build();
+ }
+
+ public CommandLineTool() {
+ };
+
+ public void parse(String... 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")
+ public static boolean isWfdesc = false;
+
+ @Option(name = "--wfbundle", description = "Convert the workflow file to wfbundle")
+ public static boolean isWfbundle = false;
+
- @Option(name = "--robundle", description = "Convert given bundle in to Research Object bundle")
++ @Option(name = "--robundle", description = "Convert the given bundle into Research Object bundle")
+ public static boolean isRo = false;
+
+ @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;
+
+
+ @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 (isWfbundle)
+ 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 {
+ @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{
+ 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")
+ 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")
+ public static String out_file_dir;
+
+ public static String getInFile() {
+ return in_file_dir;
+ }
+
+ public static String getOutFile() {
+ return out_file_dir;
+ }
+
+ }
+
- @Command(name = "help", description = "Display help information about Tvarna")
++ @Command(name = "help", description = "Display help information about Taverna")
+ public static class HelpCommand extends TvnLangTool {
+ @Inject
+ public Help help;
+
+ @Override
+ public void execute() {
+ help.call();
+ }
+ }
+
+ // 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 boolean recurse = false;
+
+ // 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() {
+
+ //Validate before convert
+ if(validate){
+ Validate validate = new Validate(files, null, false);
+ if(validate.getCheck()){
+ System.out.println("Conversion failed...! Workflow bundle has errors");
+ return;
+ }else{
+ runcommand();
+ }
+ }
+ }
+
+ public void runcommand(){
+ if (Filetypes.isRo) {
+ try {
+ new ToRobundle(files, Optional.getOutFile());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+// else if(Filetypes.isIwir || Filetypes.isJson || Filetypes.isStructure || Filetypes.isWfbundle || Filetypes.isWfdesc)
+ } else if(Filetypes.isIwir || Filetypes.isJson || Filetypes.isStructure || Filetypes.isWfbundle || 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")
++ @Command(name = "version", description = "Show version information")
+ public static class CommandVersion extends TvnLangTool {
+
+ @Override
+ public void execute() {
+ System.out.print(getClass().getPackage().getImplementationTitle());
+ System.out.println(" " + getClass().getPackage().getImplementationVersion());
+ }
+
+ }
+
+ // 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)")
+ public String file;
+
+ @Arguments(usage = "<option> <input files>", description = "Inspect the given workflow")
+ public List<String> toInspect = Lists.newArrayList();
+
+ @Override
+ public void execute() {
+ if (Inspect.processor) {
+ try {
+ new ProcessorNames(toInspect, file);
+
+ } catch (ReaderException | IOException | JAXBException e) {
+ e.printStackTrace();
+ }
+ } else if (Inspect.servicetypes) {
+ try {
+ new ServiceTypes(toInspect, file);
+ } catch (IOException | ReaderException e) {
+ e.printStackTrace();
+ }
+
+ }else{
+ System.out.println("Invalid argument....");
+ TvnLangTool command = parser().parse("help", "inspect");
+ command.execute();
+ }
+
+ }
+
+ }
+
+ // Command for validation
- @Command(name = "validate", description = "validate the given workflow")
++ @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)")
+ public String file;
+
+ @Option(name = {"-v", "--verbose"}, description = "Verbose mode")
+ public boolean verbose;
+
+// @Arguments(usage = "<option> <input files> <output dir>", description = "Validate the given workflow file/s")
+ @Arguments(usage = "input files", description = "Validate the given workflow file/s")
+ public List<String> toValidate = Lists.newArrayList();
+
+ @Override
+ public void execute() {
+
+ Validate validate = new Validate(toValidate, file, verbose);
+
+
+ }
+
+ }
+
+ //Command for getting workflow stats
+ @Command (name = "stats", description = "Shows the workflow statistics")
+ public static class CommandStat extends TvnLangTool{
+
+
- @Option(name = {"-l", "--log"}, description ="Save the workflow statictics in a file")
++ @Option(name = {"-l", "--log"}, description ="Save the workflow statistics in a file")
+ public String file;
+
+ @Option(name = {"-v", "--verbose"}, description = "Verbose mode")
+ public boolean verbose;
+
+ @Arguments(usage="input files", description = "Enter the workflow bundle files")
+ public List<String> files;
+
+ @Override
+ public void execute() {
+
+ GetWfStat stat = new GetWfStat(files, file, verbose);
+
+ }
+
+ }
+
+}