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",

Reply via email to