Command line module removed 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/66a8cfd1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/66a8cfd1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/66a8cfd1
Branch: refs/heads/master Commit: 66a8cfd1fb33925c99a24c8b63a1cc9dda9e8c0f Parents: 021fcd5 Author: Menaka Madushanka <menaka12...@gmail.com> Authored: Tue Feb 2 11:49:46 2016 +0530 Committer: Menaka Madushanka <menaka12...@gmail.com> Committed: Tue Feb 2 11:49:46 2016 +0530 ---------------------------------------------------------------------- taverna-language-commandline/.gitignore | 1 - taverna-language-commandline/README.md | 425 ----- taverna-language-commandline/pom.xml | 213 --- .../src/main/java/.gitignore | 0 .../apache/taverna/tavlang/CommandLineTool.java | 350 ---- .../taverna/tavlang/TavernaCommandline.java | 29 - .../org/apache/taverna/tavlang/tools/Tools.java | 88 - .../tavlang/tools/convert/Scufl2Convert.java | 206 --- .../taverna/tavlang/tools/convert/ToJson.java | 298 ---- .../tavlang/tools/convert/ToRobundle.java | 66 - .../tavlang/tools/inspect/ProcessorNames.java | 169 -- .../tavlang/tools/inspect/ServiceTypes.java | 112 -- .../taverna/tavlang/tools/stats/GetWfStat.java | 193 -- .../tavlang/tools/validate/Validate.java | 151 -- .../src/main/resources/.gitignore | 0 .../src/main/resources/META-INF/NOTICE | 7 - .../src/test/java/.gitignore | 0 .../taverna/tavlang/test/CommandLineTest.java | 43 - .../taverna/tavlang/test/TestConvert.java | 34 - .../apache/taverna/tavlang/test/TestStats.java | 34 - .../apache/taverna/tavlang/test/TestTools.java | 80 - .../taverna/tavlang/test/TestValidate.java | 49 - .../src/test/resources/.gitignore | 0 .../test/resources/workflows/t2flow/as.t2flow | 1674 ------------------ 24 files changed, 4222 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/.gitignore ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/.gitignore b/taverna-language-commandline/.gitignore deleted file mode 100644 index 916e17c..0000000 --- a/taverna-language-commandline/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dependency-reduced-pom.xml http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/README.md ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/README.md b/taverna-language-commandline/README.md deleted file mode 100644 index e76cbcd..0000000 --- a/taverna-language-commandline/README.md +++ /dev/null @@ -1,425 +0,0 @@ -<!-- - 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. ---> - -# Apache Taverna Language Command Line - - -This is planned as a command line for the -[Apache Taverna Language](https://github.com/apache/incubator-taverna-language/), -an API for the -[Apache Taverna](http://taverna.incubator.apache.org/) workflows. - -This module is a **work in progress** as part of Google Summer of Code 2015. - - - -## License - -(c) 2015 Apache Software Foundation - -This product includes software developed at The [Apache Software -Foundation](http://www.apache.org/). - -Licensed under the [Apache License -2.0](https://www.apache.org/licenses/LICENSE-2.0), see the file -[../LICENSE](../LICENSE) for details. - -The file [NOTICE](src/main/resources/NOTICE) contains any additional attributions and -details about embedded third-party libraries and source code. - - -# Contribute - -Please subscribe to and contact the -[dev@taverna](http://taverna.incubator.apache.org/community/lists#dev%20mailing%20list) -for any questions, suggestions and discussions about -Apache Taverna Language Commandline. - -Bugs and planned features are tracked in the Jira -[Issue tracker](https://issues.apache.org/jira/browse/TAVERNA/component/12326903) -under the `TAVERNA` component _GSOC Taverna Language Command line_. Feel free -to add an issue! - -To suggest changes to this source code, feel free to raise a -[GitHub pull request](https://github.com/apache/incubator-taverna-mobile/pulls). -Any contributions received are assumed to be covered by the [Apache License -2.0](https://www.apache.org/licenses/LICENSE-2.0). We might ask you -to sign a [Contributor License Agreement](https://www.apache.org/licenses/#clas) -before accepting a larger contribution. - - -# Building and install requirements - -## Requisites - -* Java 1.7 or newer -* [Apache Maven](https://maven.apache.org/download.html) 3.2.5 or newer (older - versions probably also work) - - -## Building - -To build, run: - - mvn clean install - - -# Usage - - usage: tavlang <command> [<args>] - - The most commonly used tavlang commands are: - convert Convert the given workflow - help Display help information about Tvarna - inspect Inspect the given workflow and show the results on the terminal - validate Validate the given workflow - version Show version informantion - - See 'tavlang help <command>' for more information on a specific command. - -# Documentation - -The Taverna language command line tool is for accessing the features of the Taverna language modules. -The tool has the following functions: - -* Conversion -* Inspection -* Validation -* Viewing workflow statistics. - -## Command line structure - - $tavlang <command> <options> [arguments and parameters] - -Each command has its own set of options. - -###Commands and Options -The tool has the following major commands: - -* convert: Options {-r -- recursive, -i --input, -o --output,} -* inspect: Options {-l --log} -* validate: Options {-l --log, -v --verbose} -* stats: Options {-l --log, -v --verbose} - -## Commands in detail - -### convert ------------------------------------------------------ - -Convert the given workflow file/s into a specified output format. - -Usage: - - tavlang convert (--output_fomat) ([[options] [arguments]]|files...) - - Supported output formats are, - - * wfbundle - * iwir - * json - * robundle - * structure - -Options: - - * -r, --recursive : Convert all workflow files in a given directory recursively - * -i, --input : Used with recursive case. Specify the input directory - * -o, --output : Specify the out put directory - -*The tool can only convert into one format at a time - -There are two methods for using the conversion command. - -#### 1. Non-recursive method - -Usage: - - $tavlang convert (--output_format) [options] [arguments] - -####### Example 1: Without specifying any options - - $tavlang convert --structure /helloworld.t2flow - -Output: - - /converted/helloworld.structure is created - -Convert the helloworld.t2flow into helloworld.structure format and store in the /converted directory - -###### Example 2: Convert multiple workflows - - $tavlang convert --json /helloworld.t2flow /hello.t2flow - -Output: - - /converted/helloworld.json is created - /converted/hello.json is created - -Convert both workflow files and store them in /converted directory - -###### Example 3: with options and arguments - - $tavlang convert --wfbundle /helloworld.t2flow -o /output/workflows - -Output: - - /output/workflows/helloworld.wfbundle is created - -Convert the workflow file/s and store them in the specified output directory - -#### 2. Recursive method - -If there are many workflows in a directory, which are needed to be converted into one single format use this method. - -Usage: - - $tavlang convert -r (--output_format) -i workflow_src_dir <options> [arguments] - -###### Example 4: Without options and arguments - - $tavlang convert -r --json -i /home/user/workflows - -Convert all the workflows in the input directory into the specified format and store them in the "/home/user/workflows/converted" directory. - -Output: Suppose that there are 2 workflow files in the dir 1.t2flow and 2.t2flow - - /home/workflows/converted/1.json is created - /home/workflows/converted/2.json is created - -###### Example 5: with output dir is specified - - $tavlang convert -r --iwir -i /home/workflows -o /home/final - -Convert all the workflows in the input directory and store them in /home/final directory - -Output: - - /home/final/1.iwir is created - /home/final/2.iwir is created - -### inspect ----------------------------------------------------------------- - -Inspect the given workflow file/s and give the inspection report. -Supported workflow bundle formats: .wfbundle, .t2flow - -Usage:- - - $tavlang inspect (--inspection_options) <-other-options> [arguments] workflow_undles_to_be_inspected - -Inspection options: - - * --servicetypes :- List all the service-types used in the workflow - * --processornames :- List the tree of the processor names used in the workflow - -Other Options: - - * -l, --log :- save the inspection report in a text file - -###### Example 1: Without any other-options - -1. Inspection result for Service types - - - $tavlang inspect --servicetypes helloworld.wfbundle - Service types used in helloworld.wfbundle : - - http://ns.taverna.org.uk/2010/activity/constant - ************************************************** - -2. inspection result for Processor names - - - $tavlang inspect --processornames helloworld.wfbundle - Processor tree of helloworld.wfbundle - + Hello_World - - hello - -###### Example 2: With other options -The output is the same but the results will be saved in the given file. - - $tavlang inspect --processornames helloworld.wfbundle -l results.txt - Processor tree of helloworld.wfbundle - + Hello_World - - hello - - -The output will be saved in results.txt in the same format. - -### validate ---------------------------------------------------------------------- - -Validates the given workflow file or files and gives the validation report. -Validate tool checks for the following problematic conditions. - - * Empty Iteration Strategy Top-Node Problems - * Mismatch Configurable Type Problems - * Non-Absolute URI Problems - * Null Field Problems - * Out-Of-Scope Value Problems - * Port Mentioned Twice Problems - * Port Missing From Iteration Strategy Stack Problems - * Wrong Parent Problems - * Incompatible Granular Depth Problems - -Usage:- - - $tavlang validate [options][arguments] input_files - -Options:- - - * -l, --log: Save the validation report in a text file - * -v, --verbose: Verbose mode - -Supported workflow bundle formats: .t2flow and .wfbundle - -###### Example 1: Normal mode - - Validate one workflow bundle - - $tavlang validate helloworld.t2flow - -Output: - - Validation started.... - Validating helloworld.t2flow - The workflow helloworld.t2flow has no errors. - - Validation completed....... - - Validate more than one workflow bundles - - $tavlang validate ../../workflow2.t2flow ../../workflow3.wfbundle - - Validation started.... - Validating ../../workflow2.t2flow - The workflow workflow2.t2flow has no errors. - - Validating ../../workflow3.wfbundle - The workflow workflow3.t2flow has no errors. - - Validation completed....... - - -###### Example 2: Verbose mode - -The report is more explanatory. - - $tavlang validate -v ../../workflow2.t2flow - - Validation started.... - Validating ../../workflow2.t2flow - The workflow workflow2.t2flow has no errors. - - The validation report for defaultActivitiesTaverna2.wfbundle...... - -------------------------------------------------------------------------------- - -->NegativeValueProblems:- null - - -->EmptyIterationStrategyTopNodeProblems:- null - - -->MismatchConfigurableTypeProblems:- null - - -->NonAbsoluteURIProblems:- null - - -->NullFieldProblems:- null - - -->OutOfScopeValueProblems:- null - - -->PortMentionedTwiceProblems:- null - - -->PortMissingFromIterationStrategyStackProblems:- null - - -->WrongParentProblems:- null - - -->IncompatibleGranularDepthProblems:- null - - --------------------------------------------------------------------------------- - -###### Example 3: Saving results to a file - - $tavlang validate workflow2.t2flow -l log2.txt - Validation started.... - Validating workflow2.t2flow - The workflow helloworld.wfbundle has no errors. - Validation completed....... - - Results were saved into log2.txt - -### stats ---------------------------------------------------------------------------------- - -A workflow contains several resources. - -* Processors -* Input ports -* Output ports -* Data links -* Control links - -The stats command gives a report of the resources used in the workflow. - -Usage:- - - $tavlang stats <options>[arguments] input_files... - -Options:- - - * -l, â â log : Save results in a log file - * -v, â â verbose : verbose mode - -Supported workflow bundle formats:- .t2flow, .wfbundle - -###### Example 1: Normal mode - - $tavlang helloworld.wfbundle - >>> Statistics of the workflow bundle: helloworld.wfbundle <<< - Name of the workflow = Hello_World - |--> Number of Processors = 1 - |--> Number of Data Links = 1 - |--> Number of Control Links = 0 - |--> Number of Input ports = 0 - |--> Number of Output Ports = 1 - -###### Example 2: Verbose mode - - $tavlang -v ../../../helloworld.wfbundle - >>> Statistics of the workflow bundle: helloworld.wfbundle <<< - Name of the workflow = Hello_World - |--> Number of Processors = 1 - | |--> Processors: - | |--> hello - | - |--> Number of Data Links = 1 - | |--> Data Links - | |--> DataLink value=>greeting - | - |--> Number of Control Links = 0 - |--> Number of Input ports = 0 - |--> Number of Output Ports = 1 - | |--> Output Ports - | |--> OutputWorkflowPort "greeting" - -###### Example 3: Saving results in a file - - $tavlang -l ../../results.txt ../../../helloworld.wfbundle - >>> Statistics of the workflow bundle: helloworld.wfbundle <<< - Name of the workflow = Hello_World - |--> Number of Processors = 1 - |--> Number of Data Links = 1 - |--> Number of Control Links = 0 - |--> Number of Input ports = 0 - |--> Number of Output Ports = 1 - - Results were saved into ../../results.txt - ------------------------------------------------------------------------------------------------------------------------------------------ \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/pom.xml b/taverna-language-commandline/pom.xml deleted file mode 100644 index 2da63ff..0000000 --- a/taverna-language-commandline/pom.xml +++ /dev/null @@ -1,213 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.taverna.language</groupId> - <artifactId>taverna-language</artifactId> - <version>0.15.1-incubating-SNAPSHOT</version> - </parent> - <artifactId>taverna-language-commandline</artifactId> - <name>Apache Taverna Language Commandline</name> - <description>Command line for Taverna Language (experimental)</description> - - - <dependencies> - - <dependency> - <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> - - <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>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> --> - <version>0.7</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> - <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> - <addHeader>false</addHeader> - </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>mygrid-snapshot-repository</id> - <name>myGrid Snapshot Repository</name> - <url>http://www.mygrid.org.uk/maven/snapshot-repository</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots /> - </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/66a8cfd1/taverna-language-commandline/src/main/java/.gitignore ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/java/.gitignore b/taverna-language-commandline/src/main/java/.gitignore deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/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 deleted file mode 100644 index 068c933..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/CommandLineTool.java +++ /dev/null @@ -1,350 +0,0 @@ -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") - 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") - 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") - 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") - 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") - 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); - - } - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/TavernaCommandline.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/TavernaCommandline.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/TavernaCommandline.java deleted file mode 100644 index 016488c..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/TavernaCommandline.java +++ /dev/null @@ -1,29 +0,0 @@ -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. - */ - -public class TavernaCommandline { - - public static void main(String args[]){ - CommandLineTool tool = new CommandLineTool(); - tool.parse(args); - - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/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 deleted file mode 100644 index c78c7a2..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/Tools.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.apache.taverna.tavlang.tools; - -/* - * 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. - */ - - - -public class Tools { - - public static enum ConvertionTools { - wfbundle{ - public String mediaType = "application/vnd.taverna.scufl2.workflow-bundle"; - - - @Override - public String getMediaType(ConvertionTools t) { - return this.mediaType; - } - }, - json{ - public String mediaType = "application/ld+json"; - - - @Override - public String getMediaType(ConvertionTools t) { - return mediaType; - } - }, - wfdesc{ - public String mediaType = "text/vnd.wf4ever.wfdesc+turtle"; - - - @Override - public String getMediaType(ConvertionTools t) { - // TODO Auto-generated method stub -// System.out.println(mediaType); - return mediaType; - } - }, - robundle{ - - @Override - public String getMediaType(ConvertionTools t) { - return null; - } - - }, - structure{ - public String mediaType = "text/vnd.taverna.scufl2.structure"; - - @Override - public String getMediaType(ConvertionTools t) { - return mediaType; - } - }, - - iwir{ - public String mediaType = "application/vnd.shiwa.iwir+xml"; - - @Override - public String getMediaType(ConvertionTools t) { - return mediaType; - } - }; - - ConvertionTools(){} - - public abstract String getMediaType(ConvertionTools t); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/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 deleted file mode 100644 index da4dff0..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/Scufl2Convert.java +++ /dev/null @@ -1,206 +0,0 @@ -package org.apache.taverna.tavlang.tools.convert; - -/* - * 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 java.io.File; -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; -import org.apache.taverna.scufl2.api.io.WriterException; -import org.apache.taverna.tavlang.tools.Tools.ConvertionTools; - - -/* - * Converts - * .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. - * - * */ -public class Scufl2Convert{ - - private ConvertionTools t; - private String MEDIA_TYPE; - private String input; - private String output; - private String type; - private List<String> filesList; - - public Scufl2Convert(String type, List<String> files, String out){ - this.filesList = files; - this.output = out; - this.type = type.equals("wfdesc")?".wfdesc.ttl":"."+type; - this.MEDIA_TYPE = ConvertionTools.valueOf(type).getMediaType(t); - this.convert(); - } - - //When recursive case is on.... - public Scufl2Convert(String type, String in, String out){ - this.input = in; - this.output = out; - this.type = type.equals("wfdesc")?".wfdesc.ttl":"."+type; - this.MEDIA_TYPE = ConvertionTools.valueOf(type).getMediaType(t); //Determine the writer media type - - this.createdir(); - } - - //Create the dir if not exists - public void createdir(){ - if(output == null){ - File outFile = new File(this.input, "converted"); - try { - FileUtils.forceMkdir(outFile); - this.output = outFile.getAbsolutePath(); - } catch (IOException e1) { - System.err.println("Error: The directory cannot be created...!!!!"); - e1.printStackTrace(); - } - }else{ - File outFile = new File(this.output); - try { - FileUtils.forceMkdir(outFile); - - } catch (IOException e1) { - System.err.println("Error: The directory cannot be created...!!!!"); - e1.printStackTrace(); - } - } - this.rec_convert(this.input); - } - - //Convert the given file. Return in case of an exception. - public boolean convert(){ - - boolean check = false; - // If the output folder is given, save the converted files in to that folder. - - if(this.filesList.size()>0 && this.output != null){ - File outFile = new File(this.output); - try { - FileUtils.forceMkdir(outFile); - } catch (IOException e1) { - System.err.println("Error: The directory cannot be created...!!!"); - } - for(String file : this.filesList){ - File t2File = new File(file); - - convertFile(t2File, outFile); - - } - - } - - /* If the output file is not given, save the converted files in - * '/converted' folder. - */ - - else if(this.filesList.size()>0 && this.output == null){ - for(String file : this.filesList){ - File t2File = new File(file); - - File outFile = new File(t2File.getParentFile(), "converted"); - try { - FileUtils.forceMkdir(outFile); - } catch (IOException e1) { - System.err.println("Error: The directory cannot be created...!!!"); - } - - convertFile(t2File, outFile); - - } - }else{ - System.err.println("Error: Argument mismatch"); - check = false; - } - - return check; - } - - //Convert the files in a given directory and save the converted files in to specified dir or /converted folder. - //Recursive conversion - public void rec_convert(String dir){ - - File parent = new File(this.input); - if(!parent.exists()){ - System.err.println("Error: Input directory not found"); - }else{ - for(File file : parent.listFiles()){ - if(!file.isDirectory()) - { - File outFile = new File(this.output); - convertFile(file, outFile); - } - } - } - } - - //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.equalsIgnoreCase("t2flow")&&!ext.equalsIgnoreCase("wfbundle")){ - System.err.println("Error: Invalid input file format...!!!"); - return; - } - - WorkflowBundleIO wfbio = new WorkflowBundleIO(); - String filename = t2File.getName(); - filename = filename.replaceFirst("\\..*", this.type); - File scufl2File = new File(outFile.getAbsolutePath(), filename); - - WorkflowBundle wfBundle; - try { - wfBundle = wfbio.readBundle(t2File, null);// null --> will guess the media type for reading. - -// 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("Error: Connot read the file"); - }catch(IOException e){ - System.err.println("Error: File not found"); - }catch(WriterException e) { - System.err.println("Error: Cannot write to the file"); -// e.printStackTrace(); - } - } - - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/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 deleted file mode 100644 index f11424c..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToJson.java +++ /dev/null @@ -1,298 +0,0 @@ -package org.apache.taverna.tavlang.tools.convert; - -/* - * 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 java.io.File; -import java.io.IOException; -import java.io.OutputStream; -import java.net.URI; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.apache.taverna.scufl2.api.annotation.Annotation; -import org.apache.taverna.scufl2.api.annotation.Revision; -import org.apache.taverna.scufl2.api.common.Child; -import org.apache.taverna.scufl2.api.common.Ported; -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.common.URITools; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.BlockingControlLink; -import org.apache.taverna.scufl2.api.core.ControlLink; -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.io.ReaderException; -import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; -import org.apache.taverna.scufl2.api.io.WorkflowBundleWriter; -import org.apache.taverna.scufl2.api.io.WriterException; -import org.apache.taverna.scufl2.api.port.DepthPort; -import org.apache.taverna.scufl2.api.port.GranularDepthPort; -import org.apache.taverna.scufl2.api.port.Port; -import org.apache.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.databind.node.ArrayNode; -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); - } - - } - - - 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/66a8cfd1/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 deleted file mode 100644 index 6ab14bc..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/convert/ToRobundle.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.taverna.tavlang.tools.convert; - -/* - * 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 java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.logging.ConsoleHandler; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.taverna.robundle.Bundle; -import org.apache.taverna.robundle.Bundles; - -public class ToRobundle{ - - public ToRobundle(List<String> files, String out) throws Exception{ - - Logger logger = Logger.getLogger(""); - //logger.setLevel(Level.FINER); - ConsoleHandler console = new ConsoleHandler(); - console.setLevel(Level.FINEST); - logger.addHandler(console); - Logger.getLogger("org.researchobject").setLevel(Level.FINEST); - - for(String f : files){ - Path file = Paths.get(f); - convert(file); - } - } - - //Recursive conversion - public ToRobundle(String type, String in, String out) { - - } - - 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(); - } - } - - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ProcessorNames.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ProcessorNames.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ProcessorNames.java deleted file mode 100644 index f93aadc..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ProcessorNames.java +++ /dev/null @@ -1,169 +0,0 @@ -package org.apache.taverna.tavlang.tools.inspect; - -/* - * 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 java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeModel; -import javax.xml.bind.JAXBException; - -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.common.URITools; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.io.ReaderException; -import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; -import org.apache.taverna.scufl2.api.profiles.Profile; - -/* - * list the processor names used in the workflow. - * Supported formats: .t2flow, .wfbundle - * */ - -public class ProcessorNames { - - private List<String> fileList; - - private String file2; - - private Scufl2Tools scufl2Tools = new Scufl2Tools(); - - private URITools uriTools = new URITools(); - - public ProcessorNames(List<String> fileList, String file) throws ReaderException, IOException, JAXBException{ - this.fileList = fileList; - this.file2 = file; - this.show(); - } - - public void show() throws ReaderException, IOException, JAXBException{ - WorkflowBundleIO io = new WorkflowBundleIO(); - StringBuilder sb = new StringBuilder(); - - for(String file : this.fileList){ - File file2 = new File(file); - if(file2.isDirectory()){ - for(File f : file2.listFiles()){ - WorkflowBundle wfb = io.readBundle(f, null); - System.out.println("Processor tree of "+ f.getName() +" \n" +this.showProcessorTree(wfb)); - sb.append("Processor tree of "+ f.getName() +" \n" +this.showProcessorTree(wfb) + "\n"); - } - }else{ - WorkflowBundle wfb = io.readBundle(new File(file), null); - System.out.println("Processor tree of "+ file +" \n" +this.showProcessorTree(wfb)); - sb.append("Processor tree of "+ file +" \n" +this.showProcessorTree(wfb) + "\n"); - } - - - } - - if(this.file2!=null){ - File log = new File(file2); - FileWriter fw = new FileWriter(log); - BufferedWriter bw = new BufferedWriter(fw); - bw.write(sb.toString()); - bw.close(); - fw.close(); - System.out.println("Results were saved into " + file2); - } - } - - private Workflow findNestedWorkflow(Processor processor) { - Profile profile = processor.getParent().getParent().getMainProfile(); - return scufl2Tools.nestedWorkflowForProcessor(processor, profile); - } - - private void findProcessors(WorkflowBundle ro, Workflow workflow, - DefaultMutableTreeNode parent) { - for (Processor processor : workflow.getProcessors()) { - DefaultMutableTreeNode processorNode = new DefaultMutableTreeNode( - processor.getName()); - parent.add(processorNode); - Workflow wf = findNestedWorkflow(processor); - if (wf != null) { - findProcessors(ro, wf, processorNode); - } - } - - } - - public TreeModel makeProcessorTree(WorkflowBundle workflowBundle) - throws JAXBException, IOException { - Workflow workflow = workflowBundle.getMainWorkflow(); - TreeModel treeModel = new DefaultTreeModel(new DefaultMutableTreeNode( - workflow.getName())); - DefaultMutableTreeNode parent = (DefaultMutableTreeNode) treeModel - .getRoot(); - - findProcessors(workflowBundle, workflow, parent); - return treeModel; - } - - public List<String> showProcessorNames(WorkflowBundle ro) - throws JAXBException, IOException { - ArrayList<String> names = new ArrayList<String>(); - for (Processor processor : ro.getMainWorkflow().getProcessors()) { - names.add(processor.getName()); - } - Collections.sort(names); - return names; - } - - public String showProcessorTree(WorkflowBundle ro) throws JAXBException, - IOException { - TreeModel treeModel = makeProcessorTree(ro); - return treeModelAsString(treeModel); - } - - public String treeModelAsString(TreeModel treeModel) { - StringBuffer sb = new StringBuffer(); - Object root = treeModel.getRoot(); - treeModelAsString(treeModel, root, sb, ""); - return sb.toString(); - } - - protected void treeModelAsString(TreeModel treeModel, Object parent, - StringBuffer sb, String indentation) { - sb.append(indentation); - int childCount = treeModel.getChildCount(parent); - if (childCount == 0) { - sb.append("- "); - } else { - sb.append("+ "); - indentation = indentation + " "; - } - sb.append(parent); - sb.append("\n"); - for (int i = 0; i < childCount; i++) { - Object child = treeModel.getChild(parent, i); - treeModelAsString(treeModel, child, sb, indentation); - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ServiceTypes.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ServiceTypes.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ServiceTypes.java deleted file mode 100644 index ddff2ab..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/inspect/ServiceTypes.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.apache.taverna.tavlang.tools.inspect; - - -/* - * 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 java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.io.ReaderException; -import org.apache.taverna.scufl2.api.profiles.Profile; - -/* - * List the service types used in workflow. - * Supported file formats : .wfbundle, .t2flow - * */ - -public class ServiceTypes { - - private List<String> filesList; - private Set<String> types = new LinkedHashSet<String>(); - private String save; - - public ServiceTypes(List<String> filesList, String file) throws IOException, ReaderException{ - this.filesList = filesList; - this.save = file; - this.service(); - - } - - public void service() throws ReaderException, IOException{ - WorkflowBundleIO io = new WorkflowBundleIO(); - StringBuilder sb = new StringBuilder(); - - for (String filepath : filesList) { - File file = new File(filepath); - - if(file.isDirectory()){ - for(File f : file.listFiles()){ - WorkflowBundle wfBundle = io.readBundle(f, null); - System.out.println("Service types used in " + f.getCanonicalPath() + " :" +"\n"); - sb.append("Service types used in " + f.getCanonicalPath() + " :"); - for (Profile profile : wfBundle.getProfiles()) { - for (Activity activity : profile.getActivities()) { - this.types.add(activity.getType().toASCIIString()); - } - } - for(String t : types){ - System.out.println(t); - sb.append(t + "\n"); - } - System.out.println("\n**************************************************\n"); - sb.append("\n**************************************************\n"); - } - }else{ - // mediaType = null --> guess - WorkflowBundle wfBundle = io.readBundle(file, null); - System.out.println("Service types used in " + file.getCanonicalPath() + " :" + "\n"); - sb.append("Service types used in " + file.getCanonicalPath() + " :"); - for (Profile profile : wfBundle.getProfiles()) { - for (Activity activity : profile.getActivities()) { - this.types.add(activity.getType().toASCIIString()); - } - } - for(String t : types){ - System.out.println(t); - sb.append(t + "\n"); - } - - System.out.println("\n**************************************************\n"); - sb.append("\n**************************************************\n"); - } - } - - if(save!=null){ - File log = new File(save); - FileWriter fw = new FileWriter(log); - BufferedWriter bw = new BufferedWriter(fw); - bw.write(sb.toString()); - bw.close(); - fw.close(); - System.out.println("Results were saved into " + save); - } - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/stats/GetWfStat.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/stats/GetWfStat.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/stats/GetWfStat.java deleted file mode 100644 index 7daa38e..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/stats/GetWfStat.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.apache.taverna.tavlang.tools.stats; - -/* - * 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 java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.List; - -import org.apache.taverna.scufl2.api.common.NamedSet; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.ControlLink; -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.io.ReaderException; -import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; -import org.apache.taverna.scufl2.api.port.InputPort; -import org.apache.taverna.scufl2.api.port.OutputPort; - -public class GetWfStat { - - private NamedSet<Workflow> set; - private String logFile; - private boolean verbose; - private StringBuilder str_verb = new StringBuilder(); - private StringBuilder str_nverb = new StringBuilder(); - - - //If given file is a workflow file - public GetWfStat(List<String> wf_files, String log, boolean verbose){ - this.logFile = log; - this.verbose = verbose; - - for(String files : wf_files){ - File f = new File(files); - if(f.isFile()){ - this.read(f); - - }else{ - System.err.println("Error reading the file " + f.getName()); - } - } - - this.isVerbose(); - - if(log!=null){ - this.writefile(this.str_verb.toString(), this.logFile); - } - } - - //Read the workflow file and extract the resources. - //And append them to a String builder - public void read(File file){ - WorkflowBundleIO io = new WorkflowBundleIO(); - try { - WorkflowBundle wf = io.readBundle(file, null); - this.set = wf.getWorkflows(); - - //String to be written to a file. - this.str_nverb.append(">>> Statistics of the workflow bundle: " + file.getName() + " <<<\n"); - this.str_verb.append(">>> Statistics of the workflow bundle: " + file.getName() + " <<<\n"); - - for(Workflow wrf : set){ - //TODO :- Take each type of resource and make a system to view them to the user. - String name = "Name of the workflow = " + wrf.getName(); - this.str_verb.append(name + "\n"); - this.str_nverb.append(name + "\n"); - - - String noP = " |--> Number of Processors = " + wrf.getProcessors().size(); - this.str_verb.append(noP + "\n"); - this.str_nverb.append(noP + "\n"); - - if(this.verbose && wrf.getProcessors().size()!=0){ - this.str_verb.append(" | |--> Processors: " + "\n"); - - for(Processor p : wrf.getProcessors()){ - this.str_verb.append(" | |--> " + p.getName() + "\n"); - } - this.str_verb.append(" |" + "\n"); - } - - this.str_verb.append(" |--> Number of Data Links = " + wrf.getDataLinks().size() + "\n"); - this.str_nverb.append(" |--> Number of Data Links = " + wrf.getDataLinks().size() + "\n"); - - if(this.verbose && wrf.getDataLinks().size()!=0){ - this.str_verb.append(" | |--> Data Links" + "\n"); - - for(DataLink link : wrf.getDataLinks()){ - this.str_verb.append(" | |--> " + link + "\n"); - } - this.str_verb.append(" |" + "\n"); - } - - this.str_nverb.append(" |--> Number of Control Links = " + wrf.getControlLinks().size() + "\n"); - this.str_verb.append(" |--> Number of Control Links = " + wrf.getControlLinks().size() + "\n"); - - - if(this.verbose && wrf.getControlLinks().size()!=0){ - this.str_verb.append(" | |--> Control Links\n"); - for(ControlLink link : wrf.getControlLinks()){ - this.str_verb.append(" | |--> " + link + "\n"); - } - this.str_verb.append(" |\n"); - } - - this.str_nverb.append(" |--> Number of Input ports = " + wrf.getInputPorts().size()+"\n"); - this.str_verb.append(" |--> Number of Input ports = " + wrf.getInputPorts().size()+"\n"); - - - if(this.verbose && wrf.getInputPorts().size()!=0){ - this.str_verb.append(" | |--> Input Ports\n"); - for(InputPort iport : wrf.getInputPorts()){ - this.str_verb.append(" | |--> " + iport.toString()+"\n"); - } - this.str_verb.append(" |\n"); - } - - this.str_nverb.append(" |--> Number of Output Ports = " + wrf.getOutputPorts().size()+"\n"); - this.str_verb.append(" |--> Number of Output Ports = " + wrf.getOutputPorts().size()+"\n"); - - if(this.verbose && wrf.getOutputPorts().size()!=0){ - this.str_verb.append(" | |--> Output Ports\n"); - for(OutputPort o_port : wrf.getOutputPorts()){ - this.str_verb.append(" | |--> " + o_port.toString()+"\n"); - } - - this.str_verb.append("\n"); - } - - this.str_nverb.append("\n"); - this.str_verb.append("\n"); - } - - } catch (ReaderException | IOException e) { - e.printStackTrace(); - } - } - - - //Saving the output into a log - public void writefile(String report, String url){ - - File file = new File(url); - - if(!file.isFile()){ - System.err.println("Error in writing the log file..."); - } - - FileWriter writer; - BufferedWriter bfw; - try { - writer = new FileWriter(file); - bfw = new BufferedWriter(writer); - bfw.write(report); - bfw.close(); - writer.close(); - System.out.println("Results were saved into " + file.getPath()); - } catch (IOException e) { - e.printStackTrace(); - } - - } - - public void isVerbose(){ - if(verbose) - System.out.println(this.str_verb.toString()); - else - System.out.println(this.str_nverb.toString()); - } - - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/validate/Validate.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/validate/Validate.java b/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/validate/Validate.java deleted file mode 100644 index fc05e3b..0000000 --- a/taverna-language-commandline/src/main/java/org/apache/taverna/tavlang/tools/validate/Validate.java +++ /dev/null @@ -1,151 +0,0 @@ -package org.apache.taverna.tavlang.tools.validate; - -/* - * 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 java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.List; - -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.io.ReaderException; -import org.apache.taverna.scufl2.api.io.WorkflowBundleIO; -import org.apache.taverna.scufl2.validation.correctness.CorrectnessValidationListener; -import org.apache.taverna.scufl2.validation.correctness.CorrectnessValidator; -import org.apache.taverna.scufl2.validation.correctness.ReportCorrectnessValidationListener; - -/* - * Takes .wfbundle/ .t2flow as the input - * */ -public class Validate { - - private String logfile; - private String nonVerbose = ""; - private String finalrep = ""; - private boolean verbose; - private boolean check = false; - - - public Validate(List<String> files, String file, boolean verbose) { - this.verbose = verbose; - this.logfile = file; - System.out.println("Validation started...."); - for (String f : files) { - System.out.println("Validating " + f); - File wfile = new File(f); - read(wfile); - - } - System.out.println("Validation completed......."); - - - if (this.logfile != null) { - saveToLog(this.finalrep); - } - } - - public void read(File file) { - WorkflowBundleIO io = new WorkflowBundleIO(); - try { - this.finalrep += validate(io.readBundle(file, null), file.getName()); - - } catch (ReaderException e) { - System.err.println(e.getMessage()); - - } catch (IOException e) { - System.err.println("Workflow bundle not found!"); - System.err.println(e.getMessage()); - - } - } - - public String validate(WorkflowBundle wfb, String file) { - - StringBuilder report2 = new StringBuilder(); - CorrectnessValidationListener correctnessValidationListener = new ReportCorrectnessValidationListener(); - CorrectnessValidator correctnessValidator = new CorrectnessValidator(); - correctnessValidationListener = correctnessValidator.validate(wfb); - String report = correctnessValidationListener.toString().replace( - "ReportCorrectnessValidationListener [", ""); - - String[] sections = report.split(", "); - - - - boolean detect = correctnessValidationListener.detectedProblems(); - if (!detect){ - report2.append("The workflow " + file + " has no errors. \n\n"); - this.nonVerbose = "The workflow " + file + " has no errors. \n"; - } - - -// System.out.println("The validation report for " + file); - report2.append("The validation report for " + file + "......\n"); - report2.append("-------------------------------------------------------------------------------- \n"); - for (int i = 0; i < sections.length; i++) { - String line = "-->"+sections[i].split("=")[0].replace("()", "").replace( - "get", "") - + ":- "; - report2.append(line); - String line2 = sections[i].split("=")[1].replace("[", "").replace("]",""); - if(line2.equals("")) report2.append("null \n\n"); - else report2.append("\t").append(line2).append("\n"); - - - } - report2.append("--------------------------------------------------------------------------------- \n\n"); - - if(detect){ - System.out.println("The workflow bundle has following problems: \n"+report2.toString()); - check = true; - } - - if(verbose){ - System.out.println(report2.toString()); - }else{ - System.out.println(this.nonVerbose); - } - - return report2.toString(); - - } - - public void saveToLog(String s) { - File logFile = new File(this.logfile); - FileWriter logwriter; - try { - logwriter = new FileWriter(logFile); - BufferedWriter blw = new BufferedWriter(logwriter); - blw.write(s); - blw.close(); - logwriter.close(); - System.out.println("Results were saved into " + logFile.getPath()); - } catch (IOException e) { - System.err.println("Error writing to the file \n" + e.getMessage()); - } - - } - - public boolean getCheck(){ - return this.check; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/resources/.gitignore ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/resources/.gitignore b/taverna-language-commandline/src/main/resources/.gitignore deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/main/resources/META-INF/NOTICE ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/main/resources/META-INF/NOTICE b/taverna-language-commandline/src/main/resources/META-INF/NOTICE deleted file mode 100644 index 370a8fc..0000000 --- a/taverna-language-commandline/src/main/resources/META-INF/NOTICE +++ /dev/null @@ -1,7 +0,0 @@ -Apache Taverna Language -Copyright 2010-2014 University of Manchester, UK -Copyright 2014-2015 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). - http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/test/java/.gitignore ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/test/java/.gitignore b/taverna-language-commandline/src/test/java/.gitignore deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/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 deleted file mode 100644 index 6beaa8e..0000000 --- a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/CommandLineTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.taverna.tavlang.test; - -/* - * 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 org.apache.taverna.tavlang.CommandLineTool; -import org.junit.Assert; -import org.junit.Test; - -public class CommandLineTest { - CommandLineTool commandLineTool = new CommandLineTool(); - - @Test - public void testHelp(){ - commandLineTool.parse(); - commandLineTool.parse("version"); - commandLineTool.parse("help"); - commandLineTool.parse("help", "convert"); - commandLineTool.parse("help", "inspect"); - commandLineTool.parse("help", "validate"); - commandLineTool.parse("help", "help"); - } - - - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestConvert.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestConvert.java b/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestConvert.java deleted file mode 100644 index a920db2..0000000 --- a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestConvert.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.apache.taverna.tavlang.test; - -/* - * 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 static org.junit.Assert.*; - -import org.junit.Test; - -public class TestConvert{ - - @Test - public void testConvertS() { -// fail("Not yet implemented"); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/66a8cfd1/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestStats.java ---------------------------------------------------------------------- diff --git a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestStats.java b/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestStats.java deleted file mode 100644 index 4c22377..0000000 --- a/taverna-language-commandline/src/test/java/org/apache/taverna/tavlang/test/TestStats.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.apache.taverna.tavlang.test; - -/* - * 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 static org.junit.Assert.*; - -import org.junit.Test; - -public class TestStats { - - @Test - public void test() { -// fail("Not yet implemented"); - } - -}