moved all component interfaces to one place
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/7463558e Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/7463558e Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/7463558e Branch: refs/heads/moduleRefactor Commit: 7463558e351f1a8d0756da659a29ca0002c1aacd Parents: 512fa7e Author: Shameera Rathanyaka <[email protected]> Authored: Tue Jun 2 21:06:54 2015 -0400 Committer: Shameera Rathanyaka <[email protected]> Committed: Tue Jun 2 21:06:54 2015 -0400 ---------------------------------------------------------------------- airavata-api/generate-thrift-files.sh | 305 --- .../airavataAPI.thrift | 2064 ------------------ .../airavataDataModel.thrift | 38 - .../airavataErrors.thrift | 172 -- .../appCatalogModels.thrift | 24 - .../applicationDeploymentModel.thrift | 132 -- .../applicationInterfaceModel.thrift | 146 -- .../computeResourceModel.thrift | 445 ---- .../experimentModel.thrift | 411 ---- .../gatewayResourceProfileModel.thrift | 83 - .../messagingEvents.thrift | 149 -- .../securityModel.thrift | 35 - .../workflowAPI.thrift | 82 - .../workflowDataModel.thrift | 43 - .../workspaceModel.thrift | 63 - .../generate-gfac-stubs.sh | 134 ++ .../gfac.cpi.service.thrift | 68 + .../gfacDataModel.thrift | 64 + .../generate-orchestrator-stubs.sh | 132 ++ .../orchestrator.cpi.service.thrift | 78 + .../airavataAPI.thrift | 2064 ++++++++++++++++++ .../airavataDataModel.thrift | 38 + .../airavataErrors.thrift | 172 ++ .../appCatalogModels.thrift | 24 + .../applicationDeploymentModel.thrift | 132 ++ .../applicationInterfaceModel.thrift | 146 ++ .../computeResourceModel.thrift | 445 ++++ .../experimentModel.thrift | 411 ++++ .../gatewayResourceProfileModel.thrift | 83 + .../generate-thrift-files.sh | 305 +++ .../messagingEvents.thrift | 149 ++ .../securityModel.thrift | 35 + .../workflowAPI.thrift | 82 + .../workflowDataModel.thrift | 43 + .../workspaceModel.thrift | 63 + .../generate-gfac-stubs.sh | 134 -- .../gfac.cpi.service.thrift | 68 - .../gfacDataModel.thrift | 64 - .../generate-orchestrator-stubs.sh | 132 -- .../orchestrator.cpi.service.thrift | 78 - 40 files changed, 4668 insertions(+), 4668 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/7463558e/airavata-api/generate-thrift-files.sh ---------------------------------------------------------------------- diff --git a/airavata-api/generate-thrift-files.sh b/airavata-api/generate-thrift-files.sh deleted file mode 100755 index bf4d4e9..0000000 --- a/airavata-api/generate-thrift-files.sh +++ /dev/null @@ -1,305 +0,0 @@ -#! /usr/bin/env bash - -# 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. - -# This script will generate/regenerate the thrift code for Airavata Server Skeletons, Client Stubs -# and Data Model java beans in java, C++, PHP and Python. - -show_usage() { - echo -e "Usage: $0 [Languague to generate stubs]" - echo "" - echo "options:" - echo -e "\tjava Generate/Update Java Stubs" - echo -e "\tphp Generate/Update PHP Stubs" - echo -e "\tcpp Generate/Update C++ Stubs" - echo -e "\tpython Generate/Update Python Stubs." - echo -e "\tall Generate/Update all stubs (Java, PHP, C++, Python)." - echo -e "\t-h[elp] Print the usage options of this script" -} - -if [ $# -lt 1 ] -then - show_usage - exit 1 -fi - -if [[ $1 == "-h" ||$1 == "--help" ]] -then - show_usage - exit 0 -fi - -# Generation of thrift files will require installing Apache Thrift. Please add thrift to your path. -# Verify is thrift is installed, is in the path is at a specified version. - -REQUIRED_THRIFT_VERSION='0.9.1' -THRIFT_EXEC=/usr/local/bin/thrift - -VERSION=$($THRIFT_EXEC -version 2>/dev/null | grep -F "${REQUIRED_THRIFT_VERSION}" | wc -l) -if [ "$VERSION" -ne 1 ] ; then - echo -e "ERROR:\t Apache Thrift version ${REQUIRED_THRIFT_VERSION} is required." - echo -e "It is either not installed or is not in the path" - exit 1 -fi - -# Global Constants used across the script -THRIFT_IDL_DIR='thrift-interface-descriptions' -BASE_TARGET_DIR='target' -DATAMODEL_SRC_DIR='airavata-data-models/src/main/java' -JAVA_API_SDK_DIR='airavata-api-stubs/src/main/java' -PHP_SDK_DIR='airavata-client-sdks/airavata-php-sdk/src/main/resources/lib' -CPP_SDK_DIR='airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/' -PYTHON_SDK_DIR='airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/' - -# Initialize the thrift arguments. -# Since most of the Airavata API and Data Models have includes, use recursive option by default. -# Generate all the files in target directory -THRIFT_ARGS="-r -o ${BASE_TARGET_DIR}" -# Ensure the required target directories exists, if not create. -mkdir -p ${BASE_TARGET_DIR} - -# The Function fail prints error messages on failure and quits the script. -fail() { - echo $@ - exit 1 -} - -# The function add_license_header adds the ASF V2 license header to all java files within the specified generated -# directory. The function also adds suppress all warnings annotation to all public classes and enum's -# To Call: -# add_license_header $generated_code_directory -add_license_header() { - - # Fetch the generated code directory passed as the argument - GENERATED_CODE_DIR=$1 - - # For all generated thrift code, add the suppress all warnings annotation - # NOTE: In order to save the original file as a backup, use sed -i.orig in place of sed -i '' - find ${GENERATED_CODE_DIR} -name '*.java' -print0 | xargs -0 sed -i '' -e 's/public class /@SuppressWarnings("all") public class /' - find ${GENERATED_CODE_DIR} -name '*.java' -print0 | xargs -0 sed -i '' -e 's/public enum /@SuppressWarnings("all") public enum /' - - # For each source file within the generated directory, add the ASF V2 LICENSE header - FILE_SUFFIXES=(.php .java .h .cpp) - for file in "${FILE_SUFFIXES[@]}"; do - for f in $(find ${GENERATED_CODE_DIR} -name "*$file"); do - cat - ${f} >${f}-with-license <<EOF -/** - * 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. - */ - -EOF - mv ${f}-with-license ${f} - done - done -} - -# The function compares every generated java file with the one in specified existing source location. If the comparison -# shows a difference, then it replaces with the newly generated file (with added license header). -# To Call: -# copy_changed_files $generated_code_directory $existing_source_directory -copy_changed_files() { - - # Read all the function arguments - GENERATED_CODE_DIR=$1 - WORKSPACE_SRC_DIR=$2 - - echo "Generated sources are in ${GENERATED_CODE_DIR}" - echo "Destination workspace is in ${WORKSPACE_SRC_DIR}" - - # Check if the newly generated files exist in the targeted workspace, if not copy. Only changed files will be synced. - # the extra slash to GENERATED_CODE_DIR is needed to ensure the parent directory itself is not copied. - rsync -auv ${GENERATED_CODE_DIR}/ ${WORKSPACE_SRC_DIR} -} - -####################################### -# Generate/Update Airavata Data Model # -####################################### - -generate_java_stubs() { - - #Java Beans generation directory - JAVA_BEAN_GEN_DIR=${BASE_TARGET_DIR}/gen-javabean - - # As a precaution remove and previously generated files if exists - rm -rf ${JAVA_BEAN_GEN_DIR} - - # Generate the Airavata Data Model using thrift Java Beans generator. This will take generate the classes in bean style - # with members being private and setters returning voids. - # The airavataDataModel.thrift includes rest of data models. - $THRIFT_EXEC ${THRIFT_ARGS} --gen java:beans ${THRIFT_IDL_DIR}/airavataDataModel.thrift || fail unable to generate java bean thrift classes on base data model - - $THRIFT_EXEC ${THRIFT_ARGS} --gen java:beans ${THRIFT_IDL_DIR}/appCatalogModels.thrift || fail unable to generate java bean thrift classes on app catalog data models - - $THRIFT_EXEC ${THRIFT_ARGS} --gen java:beans ${THRIFT_IDL_DIR}/workflowDataModel.thrift || fail unable to generate java bean thrift classes on app workflow data models - - # For the generated java beans add the ASF V2 License header - add_license_header $JAVA_BEAN_GEN_DIR - - # Compare the newly generated beans with existing sources and replace the changed ones. - copy_changed_files ${JAVA_BEAN_GEN_DIR} ${DATAMODEL_SRC_DIR} - - ############################################################################### - # Generate/Update source used by Airavata Server Skeletons & Java Client Stubs # - # JAVA server and client both use generated api-boilerplate-code # - ############################################################################### - - #Java generation directory - JAVA_GEN_DIR=${BASE_TARGET_DIR}/gen-java - - # As a precaution remove and previously generated files if exists - rm -rf ${JAVA_GEN_DIR} - - # Using thrift Java generator, generate the java classes based on Airavata API. This - # The airavataAPI.thrift includes rest of data models. - $THRIFT_EXEC ${THRIFT_ARGS} --gen java ${THRIFT_IDL_DIR}/airavataAPI.thrift || fail unable to generate java thrift classes on AiravataAPI - - #$THRIFT_EXEC ${THRIFT_ARGS} --gen java ${THRIFT_IDL_DIR}/workflowAPI.thrift || fail unable to generate java thrift classes on WorkflowAPI - - # For the generated java classes add the ASF V2 License header - add_license_header $JAVA_GEN_DIR - - # Compare the newly generated classes with existing java generated skeleton/stub sources and replace the changed ones. - # Only copying the API related classes and avoiding copy of any data models which already exist in the data-models. - copy_changed_files ${JAVA_GEN_DIR}/org/apache/airavata/api ${JAVA_API_SDK_DIR}/org/apache/airavata/api - - echo "Successfully generated new java sources, compared against exiting code and replaced the changed files" -} - -#################################### -# Generate/Update PHP Stubs # -#################################### - -generate_php_stubs() { - - #PHP generation directory - PHP_GEN_DIR=${BASE_TARGET_DIR}/gen-php - - # As a precaution remove and previously generated files if exists - rm -rf ${PHP_GEN_DIR} - - # Using thrift Java generator, generate the java classes based on Airavata API. This - # The airavataAPI.thrift includes rest of data models. - $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${THRIFT_IDL_DIR}/airavataAPI.thrift || fail unable to generate PHP thrift classes - - #$THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${THRIFT_IDL_DIR}/workflowAPI.thrift || fail unable to generate PHP thrift classes for WorkflowAPI - # For the generated java classes add the ASF V2 License header - ## TODO Write PHP license parser - - # Compare the newly generated classes with existing java generated skeleton/stub sources and replace the changed ones. - # Only copying the API related classes and avoiding copy of any data models which already exist in the data-models. - copy_changed_files ${PHP_GEN_DIR} ${PHP_SDK_DIR} - -} - -#################################### -# Generate/Update C++ Client Stubs # -#################################### - -generate_cpp_stubs() { - - #CPP generation directory - CPP_GEN_DIR=${BASE_TARGET_DIR}/gen-cpp - - # As a precaution remove and previously generated files if exists - rm -rf ${CPP_GEN_DIR} - - # Using thrift Java generator, generate the java classes based on Airavata API. This - # The airavataAPI.thrift includes rest of data models. - $THRIFT_EXEC ${THRIFT_ARGS} --gen cpp ${THRIFT_IDL_DIR}/airavataAPI.thrift || fail unable to generate C++ thrift classes - - #$THRIFT_EXEC ${THRIFT_ARGS} --gen cpp ${THRIFT_IDL_DIR}/workflowAPI.thrift || fail unable to generate C++ thrift classes for WorkflowAPI - # For the generated CPP classes add the ASF V2 License header - add_license_header $CPP_GEN_DIR - - # Compare the newly generated classes with existing java generated skeleton/stub sources and replace the changed ones. - # Only copying the API related classes and avoiding copy of any data models which already exist in the data-models. - copy_changed_files ${CPP_GEN_DIR} ${CPP_SDK_DIR} - -} - -#################################### -# Generate/Update C++ Client Stubs # -#################################### - -generate_python_stubs() { - - #Python generation directory - PYTHON_GEN_DIR=${BASE_TARGET_DIR}/gen-py - - # As a precaution remove and previously generated files if exists - rm -rf ${PYTHON_GEN_DIR} - - # Using thrift Python generator, generate the python classes based on Airavata API. This - # The airavataAPI.thrift includes rest of data models. - $THRIFT_EXEC ${THRIFT_ARGS} --gen py ${THRIFT_IDL_DIR}/airavataAPI.thrift || fail unable to generate Python thrift classes - - # For the generated CPP classes add the ASF V2 License header - #add_license_header #PYTHON_GEN_DIR - - # Compare the newly generated classes with existing java generated skeleton/stub sources and replace the changed ones. - # Only copying the API related classes and avoiding copy of any data models which already exist in the data-models. - copy_changed_files ${PYTHON_GEN_DIR} ${PYTHON_SDK_DIR} - -} - -for arg in "$@" -do - case "$arg" in - all) echo "Generate all stubs (Java, PHP, C++, Python) Stubs" - generate_java_stubs - generate_php_stubs - generate_cpp_stubs - generate_python_stubs - ;; - java) echo "Generating Java Stubs" - generate_java_stubs - ;; - php) echo "Generate PHP Stubs" - generate_php_stubs - ;; - cpp) echo "Generate C++ Stubs" - generate_cpp_stubs - ;; - python) echo "Generate Python Stubs" - generate_python_stubs - ;; - *) echo "Invalid or unsupported option" - show_usage - exit 1 - ;; - esac -done - -#################### -# Cleanup and Exit # -#################### -# CleanUp: Delete the base target build directory -#rm -rf ${BASE_TARGET_DIR} - -exit 0
