This is an automated email from the ASF dual-hosted git repository. jking pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/thrift.git
The following commit(s) were added to refs/heads/master by this push: new b1d63e7 THRIFT-4750: as3 changes to build and publish to maven central b1d63e7 is described below commit b1d63e7190fb1e4a2d87a9be42f3d4b7f17305fd Author: James E. King III <jk...@apache.org> AuthorDate: Tue Jan 22 14:16:39 2019 -0500 THRIFT-4750: as3 changes to build and publish to maven central --- .gitignore | 2 + CMakeLists.txt | 4 + LANGUAGES.md | 2 +- build/cmake/DefineOptions.cmake | 25 ++-- build/docker/README.md | 2 +- build/docker/ubuntu-bionic/Dockerfile | 8 + build/veralign.sh | 1 + compiler/cpp/README.md | 4 +- configure.ac | 29 ++++ doc/ReleaseManagement.md | 4 +- lib/Makefile.am | 4 + lib/as3/CMakeLists.txt | 68 +++++++++ lib/as3/Makefile.am | 56 +++++++ lib/as3/README.md | 37 +++++ lib/as3/build.gradle | 56 +++++++ lib/as3/build.properties | 5 - lib/as3/build.xml | 182 ----------------------- lib/as3/gradle.properties | 23 +++ lib/as3/gradle/publishing.gradle | 96 ++++++++++++ lib/as3/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes lib/as3/gradle/wrapper/gradle-wrapper.properties | 5 + lib/as3/gradlew | 172 +++++++++++++++++++++ lib/as3/gradlew.bat | 84 +++++++++++ lib/as3/settings.gradle | 20 +++ test/tests.json | 2 +- 25 files changed, 687 insertions(+), 204 deletions(-) diff --git a/.gitignore b/.gitignore index 82d3d48..cd98fa7 100644 --- a/.gitignore +++ b/.gitignore @@ -105,6 +105,8 @@ project.lock.json /contrib/fb303/py/fb303/ttypes.py /depcomp /install-sh +/lib/as3/.gradle/ +/lib/as3/build/ /lib/cl/backport-update.zip /lib/cl/lib /lib/cl/run-tests diff --git a/CMakeLists.txt b/CMakeLists.txt index e679164..e9ebbab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,6 +92,10 @@ if(BUILD_CPP) endif() endif() +if(BUILD_AS3) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/as3) +endif() + if(BUILD_C_GLIB) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/c_glib) endif() diff --git a/LANGUAGES.md b/LANGUAGES.md index 67f5565..c610d15 100644 --- a/LANGUAGES.md +++ b/LANGUAGES.md @@ -37,7 +37,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u <td align=left><a href="https://github.com/apache/thrift/blob/master/lib/as3/README.md">ActionScript</a></td> <!-- Since -----------------><td>0.3.0</td> <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> -<!-- Language Levels -------><td colspan=2>ActionScript 3</td> +<!-- Language Levels -------><td colspan=2>FLEX SDK 4.6</td> <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> <!-- Transport Wrappers ----><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake index 8e334d9..2c8ea50 100644 --- a/build/cmake/DefineOptions.cmake +++ b/build/cmake/DefineOptions.cmake @@ -28,7 +28,6 @@ option(BUILD_COMPILER "Build Thrift compiler" ON) if(BUILD_COMPILER OR EXISTS ${THRIFT_COMPILER}) set(HAVE_COMPILER ON) endif() -CMAKE_DEPENDENT_OPTION(BUILD_EXAMPLES "Build examples" ON "HAVE_COMPILER" OFF) CMAKE_DEPENDENT_OPTION(BUILD_TESTING "Build with unit tests" ON "HAVE_COMPILER" OFF) CMAKE_DEPENDENT_OPTION(BUILD_TUTORIALS "Build Thrift tutorials" ON "HAVE_COMPILER" OFF) option(BUILD_LIBRARIES "Build Thrift libraries" ON) @@ -45,6 +44,15 @@ if (NOT Boost_USE_STATIC_LIBS) add_definitions(-DBOOST_TEST_DYN_LINK) endif() +# as3 +option(WITH_AS3 "Build ActionScript 3 Thrift Library" ON) +if (WITH_AS3) + set(POSSIBLE_PATHS "${FLEX_HOME}/bin" "$ENV{FLEX_HOME}/bin") + find_program(HAVE_COMPC NAMES compc HINTS ${POSSIBLE_PATHS}) +endif () +CMAKE_DEPENDENT_OPTION(BUILD_AS3 "Build as3 library" ON + "BUILD_LIBRARIES;WITH_AS3;HAVE_COMPC" OFF) + # C++ option(WITH_CPP "Build C++ Thrift library" ON) if(WITH_CPP) @@ -82,10 +90,6 @@ endif() CMAKE_DEPENDENT_OPTION(BUILD_C_GLIB "Build C (GLib) library" ON "BUILD_LIBRARIES;WITH_C_GLIB;GLIB_FOUND" OFF) - #if(BUILD_C_GLIB AND BUILD_TESTING) - # find_package(Boost 1.53 REQUIRED) - #endif() - # Java option(WITH_JAVA "Build Java Thrift library" ON) if(ANDROID) @@ -148,14 +152,15 @@ message(STATUS "Build configuration Summary") if (UNIX) message(STATUS " Build type: ${CMAKE_BUILD_TYPE}") endif () -message(STATUS " Build Thrift compiler: ${BUILD_COMPILER}") +message(STATUS " Build compiler: ${BUILD_COMPILER}") message(STATUS " Build compiler plugin support: ${WITH_PLUGIN}") -message(STATUS " Build with unit tests: ${BUILD_TESTING}") -MESSAGE_DEP(HAVE_COMPILER "Disabled because BUILD_THRIFT=OFF and no valid THRIFT_COMPILER is given") -message(STATUS " Build examples: ${BUILD_EXAMPLES}") +message(STATUS " Build libraries: ${BUILD_LIBRARIES}") +message(STATUS " Build tests: ${BUILD_TESTING}") MESSAGE_DEP(HAVE_COMPILER "Disabled because BUILD_THRIFT=OFF and no valid THRIFT_COMPILER is given") -message(STATUS " Build Thrift libraries: ${BUILD_LIBRARIES}") message(STATUS " Language libraries:") +message(STATUS " Build as3 library: ${BUILD_AS3}") +MESSAGE_DEP(WITH_AS3 "Disabled by WITH_AS3=OFF") +MESSAGE_DEP(HAVE_COMPC "Adobe Flex compc was not found - did you set env var FLEX_HOME?") message(STATUS " Build C++ library: ${BUILD_CPP}") MESSAGE_DEP(WITH_CPP "Disabled by WITH_CPP=OFF") message(STATUS " C++ Language Level: ${CXX_LANGUAGE_LEVEL}") diff --git a/build/docker/README.md b/build/docker/README.md index 56b98a9..b65f74b 100644 --- a/build/docker/README.md +++ b/build/docker/README.md @@ -168,7 +168,7 @@ Last updated: October 1, 2017 | Language | ubuntu-xenial | ubuntu-bionic | Notes | | :-------- | :------------ | :------------ | :---- | | as of | Mar 06, 2018 | Jan 21, 2019 | | -| as3 | | | Not in CI | +| as3 | | 4.6.0 | | | C++ gcc | 5.4.0 | 7.3.0 | | | C++ clang | 3.8 | 6.0 | | | C# (mono) | 4.2.1.0 | 4.6.2.7 | | diff --git a/build/docker/ubuntu-bionic/Dockerfile b/build/docker/ubuntu-bionic/Dockerfile index db19112..a75af31 100644 --- a/build/docker/ubuntu-bionic/Dockerfile +++ b/build/docker/ubuntu-bionic/Dockerfile @@ -71,10 +71,18 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ llvm \ ninja-build \ pkg-config \ + unzip \ valgrind \ vim ENV PATH /usr/lib/llvm-6.0/bin:$PATH +# lib/as3 (ActionScript) +RUN mkdir -p /usr/local/adobe/flex/4.6 && \ + cd /usr/local/adobe/flex/4.6 && \ + wget -q "http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip" && \ + unzip flex_sdk_4.6.zip +ENV FLEX_HOME /usr/local/adobe/flex/4.6 + RUN apt-get install -y --no-install-recommends \ `# C++ dependencies` \ libboost-all-dev \ diff --git a/build/veralign.sh b/build/veralign.sh index c54de53..05039dc 100755 --- a/build/veralign.sh +++ b/build/veralign.sh @@ -56,6 +56,7 @@ FILES[bower.json]=jsonReplace FILES[configure.ac]=configureReplace FILES[contrib/thrift.spec]=simpleReplace FILES[doc/specs/idl.md]=simpleReplace +FILES[lib/as3/gradle.properties]=simpleReplace FILES[lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs]=simpleReplace FILES[lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj]=simpleReplace FILES[lib/csharp/src/Properties/AssemblyInfo.cs]=simpleReplace diff --git a/compiler/cpp/README.md b/compiler/cpp/README.md index 32eac9f..3551912 100644 --- a/compiler/cpp/README.md +++ b/compiler/cpp/README.md @@ -115,7 +115,7 @@ cmake -G "Visual Studio 15 2017" -DWITH_PLUGIN=OFF .. ``` mkdir cmake-mingw32 && cd cmake-mingw32 -cmake -DCMAKE_TOOLCHAIN_FILE=../build/cmake/mingw32-toolchain.cmake -DBUILD_COMPILER=ON -DBUILD_LIBRARIES=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF .. +cmake -DCMAKE_TOOLCHAIN_FILE=../build/cmake/mingw32-toolchain.cmake -DBUILD_COMPILER=ON -DBUILD_LIBRARIES=OFF -DBUILD_TESTING=OFF .. cpack ``` @@ -172,4 +172,4 @@ Added generic way to cover code by tests for many languages (you just need to ma - pls check **tests** folder -# Have a Happy free time and holidays \ No newline at end of file +# Have a Happy free time and holidays diff --git a/configure.ac b/configure.ac index bdd1dd2..a299785 100755 --- a/configure.ac +++ b/configure.ac @@ -116,6 +116,7 @@ AC_ARG_ENABLE([libs], have_libs=yes if test "$enable_libs" = "no"; then have_libs="no" + with_as3="no" with_cpp="no" with_c_glib="no" with_cl="no" @@ -141,6 +142,18 @@ if test "$enable_libs" = "no"; then with_swift="no" fi +AX_THRIFT_LIB(as3, [as3], yes) +have_as3=no +if test "$with_as3" = "yes"; then + if test "${FLEX_HOME+set}" = set; then + AC_PATH_PROGS([FLEX_COMPC], [compc], "fail", [$PATH$PATH_SEPARATOR$FLEX_HOME/bin]) + if test "$FLEX_COMPC" != "fail"; then + have_as3="yes" + fi + fi +fi +AM_CONDITIONAL(WITH_AS3, [test "$have_as3" = "yes"]) + AX_THRIFT_LIB(cpp, [C++], yes) have_cpp=no if test "$with_cpp" = "yes"; then @@ -187,6 +200,7 @@ if test "$with_c_glib" = "yes"; then PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, have_glib2=no) PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, have_gobject2=no) if test "$have_glib2" = "yes" -a "$have_gobject2" = "yes" ; then + AC_PATH_PROG([GSETTINGS], [gsettings]) have_c_glib="yes" fi fi @@ -793,6 +807,7 @@ AC_CONFIG_FILES([ compiler/cpp/test/Makefile compiler/cpp/src/thrift/version.h lib/Makefile + lib/as3/Makefile lib/cl/Makefile lib/cpp/Makefile lib/cpp/test/Makefile @@ -874,6 +889,8 @@ AC_CONFIG_FILES([ tutorial/rs/Makefile ]) +if test "$have_as3" = "yes" ; then MAYBE_AS3="as3" ; else MAYBE_AS3="" ; fi +AC_SUBST([MAYBE_AS3]) if test "$have_cpp" = "yes" ; then MAYBE_CPP="cpp" ; else MAYBE_CPP="" ; fi AC_SUBST([MAYBE_CPP]) if test "$have_c_glib" = "yes" ; then MAYBE_C_GLIB="c_glib" ; else MAYBE_C_GLIB="" ; fi @@ -923,6 +940,7 @@ AC_OUTPUT echo echo "$PACKAGE $VERSION" echo +echo "Building ActionScript3 Library : $have_as3" echo "Building C (GLib) Library .... : $have_c_glib" echo "Building C# (Mono) Library ... : $have_csharp" echo "Building C++ Library ......... : $have_cpp" @@ -946,6 +964,17 @@ echo "Building Ruby Library ........ : $have_ruby" echo "Building Rust Library ........ : $have_rs" echo "Building Swift Library ....... : $have_swift" +if test "$have_as3" = "yes" ; then + echo + echo "ActionScript Library:" + echo " FLEX_HOME ................. : $FLEX_HOME" + echo " Using compc version ....... : $($FLEX_COMPC --version)" +fi +if test "$have_c_glib" = "yes" ; then + echo + echo "C (glib):" + echo " Using glib version ........ : $($GSETTINGS --version)" +fi if test "$have_csharp" = "yes" ; then echo echo "C# Library:" diff --git a/doc/ReleaseManagement.md b/doc/ReleaseManagement.md index a7b2369..9cf02da 100644 --- a/doc/ReleaseManagement.md +++ b/doc/ReleaseManagement.md @@ -176,7 +176,7 @@ All Apache Thrift releases go through a 72-hour final release candidate voting p 1. Install chocolatey and install winflexbison with chocolatey. 1. Run cmake to generate an out-of-tree build environment: ```cmd - C:\build> cmake ..\thrift -DBISON_EXECUTABLE=c:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe -DFLEX_EXECUTABLE=c:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe -DWITH_MT=ON -DWITH_SHARED_LIB=OFF -DWITH_CPP=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TUTORIALS=OFF -DBUILD_COMPILER=ON + C:\build> cmake ..\thrift -DBISON_EXECUTABLE=c:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe -DFLEX_EXECUTABLE=c:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe -DWITH_MT=ON -DWITH_SHARED_LIB=OFF -DWITH_CPP=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DBUILD_TESTING=OFF -DBUILD_TUTORIALS=OFF -DBUILD_COMPILER=ON C:\build> cmake --build . --config Release ``` @@ -392,4 +392,4 @@ See https://thrift.apache.org/lib/ for the current status of each external packa https://issues.apache.org/jira/browse/THRIFT-4687 * [rust] Any thrift project committer is allowed to upload a new crate. -If you have any questions email `d...@thrift.apache.org`. \ No newline at end of file +If you have any questions email `d...@thrift.apache.org`. diff --git a/lib/Makefile.am b/lib/Makefile.am index 0c69019..901c3ef 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -20,6 +20,10 @@ SUBDIRS = json xml PRECROSS_TARGET = +if WITH_AS3 +SUBDIRS += as3 +endif + if WITH_CPP # cpp dir is picked directly by plugin build if !WITH_PLUGIN diff --git a/lib/as3/CMakeLists.txt b/lib/as3/CMakeLists.txt new file mode 100644 index 0000000..999905d --- /dev/null +++ b/lib/as3/CMakeLists.txt @@ -0,0 +1,68 @@ +# +# 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. +# + +if (IS_ABSOLUTE "${LIB_INSTALL_DIR}") + set(AS3_INSTALL_DIR "${LIB_INSTALL_DIR}/as3") +else () + set(AS3_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/as3") +endif () + +set(PRELEASE "true") +if (CMAKE_BUILD_TYPE MATCHES DEBUG) + set(PRELEASE "false") +endif () + +add_custom_target(ThriftAs3 ALL + COMMENT "Building as3 library using Gradle Wrapper" + COMMAND ${GRADLEW_EXECUTABLE} ${GRADLE_OPTS} compileFlex + --console=plain --no-daemon + -Prelease=${PRELEASE} + "-Pbuild.dir=${CMAKE_CURRENT_BINARY_DIR}/build" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) + +# Enable publishing from CMake if the publishing information is provided +if (NOT CMAKE_BUILD_TYPE MATCHES DEBUG) + add_custom_target(MavenPublishAs3 + COMMENT "Publishing as3 library to Apache Maven staging" + COMMAND ${GRADLEW_EXECUTABLE} ${GRADLE_OPTS} clean publishMavenPublicationToMavenRepository + --console=plain --no-daemon + -Prelease=${PRELEASE} + -Psign=${PRELEASE} + "-Pbuild.dir=${CMAKE_CURRENT_BINARY_DIR}/build" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endif () + +# Hook the CMake install process to the results from make ALL. +# This works best when 'make all && sudo make install/fast' is used. +# Using slash to end the source location to avoid copying the directory path. +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build/libs/ + DESTINATION ${AS3_INSTALL_DIR} + FILES_MATCHING PATTERN "libthrift-as3.swc") + +if (BUILD_TESTING) + add_test(NAME As3Test + COMMAND ${GRADLEW_EXECUTABLE} ${GRADLE_OPTS} test + --console=plain --no-daemon + -Prelease=${PRELEASE} + "-Pbuild.dir=${CMAKE_CURRENT_BINARY_DIR}/build" + "-Pthrift.compiler=${THRIFT_COMPILER}" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +endif () diff --git a/lib/as3/Makefile.am b/lib/as3/Makefile.am new file mode 100644 index 0000000..5a078c6 --- /dev/null +++ b/lib/as3/Makefile.am @@ -0,0 +1,56 @@ +# +# 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. +# + +all-local: + ./gradlew $(GRADLE_OPTS) compile \ + -Prelease=true \ + --console=plain + +install-exec-hook: + ./gradlew $(GRADLE_OPTS) publishToMavenLocal \ + -Prelease=true \ + --console=plain + +clean-local: + ./gradlew $(GRADLE_OPTS) clean \ + -Prelease=true \ + --console=plain + +check-local: $(THRIFT) + ./gradlew $(GRADLE_OPTS) test \ + -Prelease=true \ + --console=plain + +maven-publish: + ./gradlew $(GRADLE_OPTS) publishMavenPublicationToMavenRepository \ + -Prelease=true \ + -Psign=true \ + --console=plain + +EXTRA_DIST = \ + CMakeLists.txt \ + README.md \ + build.gradle \ + coding_standards.md \ + gradle \ + gradle.properties \ + gradlew \ + gradlew.bat \ + settings.gradle \ + src diff --git a/lib/as3/README.md b/lib/as3/README.md new file mode 100644 index 0000000..c14f8c7 --- /dev/null +++ b/lib/as3/README.md @@ -0,0 +1,37 @@ +# Apache Thrift ActionScript Library + +## Building + +We use gradle and gradlefx to build the as3 library. Unfortunately gradlefx requires +an older version of gradle (2.5) but it still works - for now. If you use the docker +container to do the build, the Adobe Flex SDK 4.6 is installed and the FLEX_HOME +environment variable is configured: + + dev@ubuntu:~/thrift$ docker run -v $(pwd):/thrift/src:rw -it thrift/thrift-build:ubuntu-bionic /bin/bash + root@7624b61bbf84:/thrift/src# cd lib/as3 + root@7624b61bbf84:/thrift/src/lib/as3# ./gradlew -Prelease=true compileFlex + + ... + + :compileFlex UP-TO-DATE + + BUILD SUCCESSFUL + + Total time: 10.784 secs + + root@7624b61bbf84:/thrift/src/lib/as3# ls -ls build/ + total 4 + 4 -rw-r--r-- 1 root root 1379 Jan 22 19:23 libthrift-as3.swc + +## Publishing + +We use a similar gradle-based signing and publishing mechanism as in the java +library. See the java library [README.md](../java/README.md) for more details. + +To publish into a local .m2 repository you can mount a directory into the docker container, +for example: + + dev@ubuntu:~/thrift$ docker run -v~/.m2:/root/.m2 -v $(pwd):/thrift/src:rw -it thrift/thrift-build:ubuntu-bionic /bin/bash + root@7624b61bbf84:/thrift/src/lib/as3# ./gradlew -Prelease=true publishToMavenLocal + +You will find your `~/.m2` directory is now populated with a release build `swc`. diff --git a/lib/as3/build.gradle b/lib/as3/build.gradle new file mode 100644 index 0000000..7853499 --- /dev/null +++ b/lib/as3/build.gradle @@ -0,0 +1,56 @@ +/* + * 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. + */ + +buildscript { + repositories { + mavenLocal() + mavenCentral() + } + dependencies { + classpath group: 'org.gradlefx', name: 'gradlefx', version: '1.5.0' + } +} + +plugins { + id 'maven-publish' + id 'signing' +} + +apply plugin: 'gradlefx' + +description = 'Apache Thrift ActionScript Library' +frameworkLinkage = 'none' +group = property('thrift.groupid') +srcDirs = ['src'] +type = 'swc' + +// We use the SNAPSHOT suffix for non-release versions +if (Boolean.parseBoolean(project.release)) { + additionalCompilerOptions = ['-compiler.debug=false', '-compiler.strict=true'] + version = property('thrift.version') +} else { + additionalCompilerOptions = ['-compiler.debug=true', '-compiler.strict=true'] + version = property('thrift.version') + '-SNAPSHOT' +} + +defaultTasks 'compile' + +// Keeping the rest of the build logic in functional named scripts for clarity +apply from: 'gradle/publishing.gradle' + diff --git a/lib/as3/build.properties b/lib/as3/build.properties deleted file mode 100644 index 8463668..0000000 --- a/lib/as3/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -# Maven Ant tasks Jar details -mvn.ant.task.version=2.1.3 -mvn.repo=http://repo1.maven.org/maven2 -mvn.ant.task.url=${mvn.repo}/org/apache/maven/maven-ant-tasks/${mvn.ant.task.version} -mvn.ant.task.jar=maven-ant-tasks-${mvn.ant.task.version}.jar diff --git a/lib/as3/build.xml b/lib/as3/build.xml deleted file mode 100755 index b0c4c85..0000000 --- a/lib/as3/build.xml +++ /dev/null @@ -1,182 +0,0 @@ -<?xml version="1.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. - --> -<project name="libthrift-as3" default="compile" basedir="." - xmlns:artifact="antlib:org.apache.maven.artifact.ant"> - - <property name="as3.artifactid" value="${ant.project.name}"/> - - <property name="thrift.root" location="${basedir}/../../"/> - <property name="thrift.java.dir" location="${thrift.root}/lib/java"/> - <property name="build.tools.dir" location="${thrift.java.dir}/build/tools/"/> - <property name="thrift_compiler" value="${thrift.root}/compiler/cpp/thrift"/> - <property file="${basedir}/build.properties"/> - - <!-- inherit from the java build file for version and other properties --> - <property file="${thrift.java.dir}/gradle.properties" /> - - <property environment="env"/> - - <condition property="version" value="${thrift.version}"> - <isset property="release"/> - </condition> - <property name="version" value="${thrift.version}-SNAPSHOT"/> - - <property name="as3.final.name" value="${as3.artifactid}-${version}"/> - - <property name="src" value="${basedir}/src"/> - <property name="build.dir" value="${basedir}/build"/> - - <property name="as3.swc.file" location="${build.dir}/${as3.final.name}.swc"/> - <property name="as3.pom.xml" location="${build.dir}/${as3.final.name}.pom"/> - - <target name="init" depends="setup.init,flex.init" unless="init.finished"> - <property name="init.finished" value="true"/> - </target> - - <target name="setup.init"> - <tstamp/> - <mkdir dir="${build.dir}"/> - <mkdir dir="${build.tools.dir}"/> - </target> - - <target name="flex.check" unless="FLEX_HOME"> - <fail message='You must set the FLEX_HOME property pointing to your flex SDK, eg. ant -DFLEX_HOME="/Applications/Adobe Flex Builder 3/sdks/3.2.0"'/> - </target> - - <target name="flex.init" depends="flex.check" unless="flex.finished"> - <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" /> - <property name="flex.finished" value="true"/> - </target> - - <target name="compile" depends="init"> - <path id="as.src.files"> - <fileset dir="${src}/"> - <include name="**/*.as"/> - </fileset> - </path> - <pathconvert - property="as.src.classes" - pathsep=" " - dirsep="." - refid="as.src.files" - > - <map from="${src}/" to=""/> - <mapper type="glob" from="*.as" to="*"/> - </pathconvert> - - <compc output="${as3.swc.file}" include-classes="${as.src.classes}"> - <source-path path-element="${src}"/> - </compc> - </target> - - <target name="clean"> - <delete dir="${build.dir}" /> - </target> - - <target name="mvn.ant.tasks.download" depends="setup.init,mvn.ant.tasks.check" unless="mvn.ant.tasks.found"> - <get src="${mvn.ant.task.url}/${mvn.ant.task.jar}" dest="${build.tools.dir}/${mvn.ant.task.jar}" usetimestamp="true"/> - </target> - - <target name="mvn.ant.tasks.check"> - <condition property="mvn.ant.tasks.found"> - <typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/> - </condition> - </target> - - <target name="mvn.init" depends="mvn.ant.tasks.download" unless="mvn.finished"> - <echo message="${mvn.ant.task.jar}"/> - <!-- Download mvn ant tasks, download dependencies, and setup pom file --> - <typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${build.tools.dir}/${mvn.ant.task.jar}"/> - - <!-- remote repositories used to download dependencies from --> - <artifact:remoteRepository id="central" url="${mvn.repo}"/> - <artifact:remoteRepository id="apache" url="${apache.repo}"/> - - <!-- Pom file information --> - <artifact:pom id="pom" - groupId="${thrift.groupid}" - artifactId="${as3.artifactid}" - version="${version}" - url="http://thrift.apache.org" - name="Apache Thrift" - description="Thrift is a software framework for scalable cross-language services development." - packaging="swc" - > - <remoteRepository refid="central"/> - <remoteRepository refid="apache"/> - <license name="The Apache Software License, Version 2.0" url="${license}"/> - <scm connection="scm:git:https://github.com/apache/thrift.git" - developerConnection="scm:git:https://github.com/apache/thrift.git" - url="https://github.com/apache/thrift" - /> - <!-- Thrift Developers --> - <developer id="mcslee" name="Mark Slee"/> - <developer id="dreiss" name="David Reiss"/> - <developer id="aditya" name="Aditya Agarwal"/> - <developer id="marck" name="Marc Kwiatkowski"/> - <developer id="jwang" name="James Wang"/> - <developer id="cpiro" name="Chris Piro"/> - <developer id="bmaurer" name="Ben Maurer"/> - <developer id="kclark" name="Kevin Clark"/> - <developer id="jake" name="Jake Luciani"/> - <developer id="bryanduxbury" name="Bryan Duxbury"/> - <developer id="esteve" name="Esteve Fernandez"/> - <developer id="todd" name="Todd Lipcon"/> - <developer id="geechorama" name="Andrew McGeachie"/> - <developer id="molinaro" name="Anthony Molinaro"/> - <developer id="roger" name="Roger Meier"/> - <developer id="jfarrell" name="Jake Farrell"/> - <developer id="jensg" name="Jens Geyer"/> - <developer id="carl" name="Carl Yeksigian"/> - </artifact:pom> - - <!-- Generate the pom file --> - <artifact:writepom pomRefId="pom" file="${as3.pom.xml}"/> - - <property name="mvn.finished" value="true"/> - </target> - - <macrodef name="signAndDeploy"> - <!-- Sign and deploy jars to apache repo --> - <attribute name="file"/> - <attribute name="classifier" default=""/> - <attribute name="packaging" default="jar"/> - <attribute name="pom" default=""/> - <sequential> - <artifact:mvn fork="true"> - <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.1:sign-and-deploy-file"/> - <arg value="-DrepositoryId=${maven-repository-id}"/> - <arg value="-Durl=${maven-repository-url}"/> - <arg value="-DpomFile=@{pom}"/> - <arg value="-Dfile=@{file}"/> - <arg value="-Dclassifier=@{classifier}"/> - <arg value="-Dpackaging=@{packaging}"/> - <arg value="-Pgpg"/> - </artifact:mvn> - </sequential> - </macrodef> - - <target name="publish" depends="clean,compile,mvn.init"> - <!-- Compile, packages and then send release to apache maven repo --> - <!-- run with: ant -Drelease=true publish --> - <signAndDeploy file="${as3.pom.xml}" packaging="pom" classifier="" pom="${as3.pom.xml}"/> - <signAndDeploy file="${as3.swc.file}" packaging="swc" classifier="" pom="${as3.pom.xml}"/> - </target> -</project> diff --git a/lib/as3/gradle.properties b/lib/as3/gradle.properties new file mode 100644 index 0000000..8c8755e --- /dev/null +++ b/lib/as3/gradle.properties @@ -0,0 +1,23 @@ +# This file is shared currently between this Gradle build and the +# Ant builds for fd303 and JavaScript. Keep the dotted notation for +# the properties to minimize the changes in the dependencies. +thrift.version=1.0.0 +thrift.groupid=org.apache.thrift +release=false +sign=false + +# Local Install paths +install.path=/usr/local/lib +install.javadoc.path=/usr/local/lib + +# Test execution properties +testPort=9090 + +# Maven dependency download locations +mvn.repo=http://repo1.maven.org/maven2 +apache.repo=https://repository.apache.org/content/repositories/releases + +# Apache Maven publish +license=http://www.apache.org/licenses/LICENSE-2.0.txt +maven-repository-url=https://repository.apache.org/service/local/staging/deploy/maven2 +maven-repository-id=apache.releases.https diff --git a/lib/as3/gradle/publishing.gradle b/lib/as3/gradle/publishing.gradle new file mode 100644 index 0000000..3e0ecf3 --- /dev/null +++ b/lib/as3/gradle/publishing.gradle @@ -0,0 +1,96 @@ +/* + * 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. + */ + +// Following Gradle best practices to keep build logic organized + +model { + tasks.signMavenPublication { + dependsOn compileFlex + } +} + +publishing { + publications { + maven(MavenPublication) { + + groupId = "$group" + artifactId = "${project.name}" + version = "$version" + + def swcFile = file("$buildDir/libthrift-as3.swc") + artifact(swcFile) + + pom { + description = 'Thrift is a software framework for scalable cross-language services development.' + packaging = 'swc' + + // older gradle doesn't recognize all the properties, so we inject them.. + withXml { + asNode().with { + appendNode('name', 'Apache Thrift') + appendNode('url', 'http://thrift.apache.org/') + appendNode('scm').with { + appendNode('url', 'https://github.com/apache/thrift/') + appendNode('connection', 'scm:git:https://github.com/apache/thrift.git') + appendNode('developerConnection', 'scm:git:g...@github.com:apache/thrift.git') + } + appendNode('issueManagement').with { + appendNode('url', 'https://issues.apache.org/jira/projects/THRIFT/') + appendNode('system', 'Jira') + } + appendNode('licenses').with { + appendNode('license').with { + appendNode('name', 'The Apache Software License, Version 2.0') + appendNode('url', "${project.license}") + } + } + appendNode('organization').with { + appendNode('name', 'The Apache Software Foundation') + appendNode('url', 'http://www.apache.org/') + } + appendNode('developers').with { + appendNode('developer').with { + appendNode('id', 'dev') + appendNode('name', 'Apache Thrift Developers') + appendNode('email', 'd...@thrift.apache.org') + } + } + } + } + } + } + } + repositories { + maven { + url = property('maven-repository-url') + + if (project.hasProperty('mavenUser') && project.hasProperty('mavenPassword')) { + credentials { + username = property('mavenUser') + password = property('mavenPassword') + } + } + } + } +} + +signing { + required { property('sign') } + sign publishing.publications.maven +} diff --git a/lib/as3/gradle/wrapper/gradle-wrapper.jar b/lib/as3/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..87b738c Binary files /dev/null and b/lib/as3/gradle/wrapper/gradle-wrapper.jar differ diff --git a/lib/as3/gradle/wrapper/gradle-wrapper.properties b/lib/as3/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..558870d --- /dev/null +++ b/lib/as3/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/lib/as3/gradlew b/lib/as3/gradlew new file mode 100755 index 0000000..af6708f --- /dev/null +++ b/lib/as3/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/lib/as3/gradlew.bat b/lib/as3/gradlew.bat new file mode 100644 index 0000000..6d57edc --- /dev/null +++ b/lib/as3/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/as3/settings.gradle b/lib/as3/settings.gradle new file mode 100644 index 0000000..4932346 --- /dev/null +++ b/lib/as3/settings.gradle @@ -0,0 +1,20 @@ +/* + * 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. + */ + +rootProject.name = 'libthrift-as3' diff --git a/test/tests.json b/test/tests.json index 1d4ba66..a022951 100644 --- a/test/tests.json +++ b/test/tests.json @@ -562,7 +562,7 @@ { "name": "dart", "client": { - "timeout": 20, + "timeout": 30, "transports": [ "buffered", "framed",