Apache Flex (Flex) ================== Apache Flex is an application framework for easily building Flash-based applications for mobile devices, the browser and desktop. Apache Flex 4.10 is a follow up release to Apache Flex 4.9. This version adds new features and implements bug fixes that were unavailable in previous versions. It is compatible with most code written to target Adobe Flex 4.6. For detailed information about Apache Flex please visit http://flex.apache.org/ Apache Flex is a large project with many pieces. The framework is implemented in ActionScript and the compiler is implemented in Java. Currently supported platforms include: Microsoft Windows Mac OS X Apple iOS Google Android RIM BlackBerry Linux (experimental) Apache Flex is the software evolution of the popular Adobe Flex SDK project. The community surrounding Flex is vast, diverse, distributed globally, and with all levels of proficiency in software development. It is estimated that there are between 350,000 and 500,000 Flex developers worldwide. Getting the convenience packages for Apache Flex ================================================ The Apache Flex SDK Installer is an application that simplifies the download and installation of the Apache Flex SDK and its (required) components. It is aimed at anyone who wants to use the latest release of the Apache Flex SDK, but who might not necessarily be familiar with the tools and procedures required to compile the Apache Flex SDK from source code. The application will grab the binary distribution of the SDK from apache.org or one of its mirrors, install it onto your computer and prepare it for use with your favorite IDE such as Adobe Flash Builder or JetBrains IntelliJ IDEA. You can get the SDK Installer from the Apache Flex website at http://flex.apache.org/installer.html You can also get just the binaries from our website as well. These binaries do not include the dependencies, so additional software may need to be downloaded and installed. http://flex.apache.org/download-binaries.html Getting the latest sources via git ================================== Getting the source code is the recommended way to get Apache Flex. We also offer an automated installer along with binary distributions on our website at http://flex.apache.org/. You can always checkout the latest source via git using the following command: git clone https://git-wip-us.apache.org/repos/asf/flex-sdk.git sdk cd sdk git checkout develop An Apache Flex SDK also requires source code from other Apache Flex git repositories. To get the latest source via git for the Text Layout Framework use the following command: git clone https://git-wip-us.apache.org/repos/asf/flex-tlf.git tlf In an Apache Flex source code package hosted on the distribution server or one of its mirrors, the Text Layout Framework code is already included in the package. This is also true for the convenience package. Linux support is currently experimental and you may run into issues. Apache Flex would like to see a fully supported Linux release, but we need support from the community in order to do that. Please help out if you can. For further information visit http://flex.apache.org/download-source.html Building Apache Flex 4.10 ========================= Apache Flex is a large project. It requires some build tools which must be installed prior to building Flex and it depends on some external software which are downloaded as part of the build process. Some of these have different licenses. See the Software Dependencies section for more information on the external software dependencies. From Apache's perspective, the Adobe Flash Player and Adobe AIR have excluded licenses so they can not be bundled with the Apache Flex binaries. They must be installed prior to building Apache Flex. Linux support is currently experimental and while it is possible to compile the SDK it has not been fully tested so you may run into issues. Install Prerequisites --------------------- Before building Flex you must install the following software and set the corresponding environment variables using absolute file paths. Relative file paths will result in build errors. The environment variables PLAYERGLOBAL_HOME, AIR_HOME, FLASHPLAYER_DEBUGGER, TLF_HOME, PIXELBENDER_HOME and ADOBE_EXTENSION_MANAGER can also be set in the property file called env.properties. See the env-template.properties file for instructions. The Adobe Flash Player playerglobal.swc is needed to compile all the components with the exception of the airframework and airspark components which require airglobal.swc from the AIR Integration Kit. The AIR Integration kit is also needed to build and debug mobile applications. The Adobe Flash Player content debugger is used by checkintests and other pieces of the test subsystem to run compiled applications. The Adobe Pixel Bender Toolkit is needed to build some files needed for effects. The build scripts assume that the folder containing the Text Layout Framework (tlf) folder is a sibling of the sdk folder. If this is not true, then you must set the TLF_HOME environment variable to point to the tlf folder. ================================================================================== SOFTWARE ENVIRONMENT VARIABLE (absolute paths) ================================================================================== Java SDK 1.6 or greater (*1) JAVA_HOME (for Java 1.7 see note at (*2)) Ant 1.7.1 or greater (*1) ANT_HOME (for Java 1.7 see note at (*2)) Adobe AIR Integration Kit (*3) AIR_HOME Adobe Flash Player Content Debugger (*4) FLASHPLAYER_DEBUGGER Adobe Pixel Bender Toolkit (*5) PIXELBENDER_HOME Adobe Flash Player playerglobal swcs (*6) PLAYERGLOBAL_HOME Adobe Extension Manager CS5 (*7) ADOBE_EXTENSION_MANAGER Text Layout Framework TLF_HOME ================================================================================== *1) The bin directories for ANT_HOME and JAVA_HOME should be added to your PATH. On Windows, set PATH to PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin On the Mac (bash), set PATH to export PATH="$PATH:$ANT_HOME/bin:$JAVA_HOME/bin" On Linux make sure you path include ANT_HOME and JAVA_HOME. *2) If you are using Java SDK 1.7 or greater on a Mac you must use Ant 1.8 or greater. If you use Java 1.7 with Ant 1.7, ant reports the java version as 1.6 so the JVM args for the data model (-d32/-d64) will not be set correctly and you will get compile errors. *3) The Adobe AIR integration kit for Windows can be downloaded from: http://airdownload.adobe.com/air/win/download/3.8/AdobeAIRSDK.zip The Adobe AIR integration kit for Mac can be downloaded from: http://airdownload.adobe.com/air/mac/download/3.8/AdobeAIRSDK.tbz2 The Adobe AIR integration kit for Linux can be downloaded from: http://airdownload.adobe.com/air/lin/download/2.6/AdobeAIRSDK.tbz2 This version of Apache Flex was certified for use with AIR 3.8, and should be compatible with other versions of AIR newer than 3.1. However it hasn't been tested on AIR 3.2, 3.3, 3.5, 3.6 or 3.7. Download the AIR SDK for your platform and unzip it. Set AIR_HOME to the absolute path of the AIR SDK directory. *4) The Adobe Flash Player content debuggers can be found here: http://www.adobe.com/support/flashplayer/downloads.html This version of Apache Flex was certified for use with Adobe Flash Player 11.1, and is compatible with versions 10.2 through 11.8. It has been tested with versions 11.1, 11.7 and 11.8 on Windows and Mac. It has been compiled against other Adobe Flash Player versions but has not been fully tested. It has not been fully tested on Linux. On Windows, set FLASHPLAYER_DEBUGGER to the absolute path including the filename of the FlashPlayerDebugger.exe. Note the filename of flash player debugger maybe different. e.g. C:\MyPath\FlashPlayerDebugger.exe On the Mac, set FLASHPLAYER_DEBUGGER to the absolute path of Flash Player Debugger.app/Contents/MacOS/Flash Player Debugger On Linux, set FLASHPLAYER_DEBUGGER to the absolute path of flashplayerdebugger *5) The Adobe Pixel Bender Toolkit for Windows can be downloaded from: http://www.adobe.com/go/pixelbender_toolkit_zip/ The Adobe Pixel Bender Toolkit for Mac can be downloaded from: http://www.adobe.com/go/pixelbender_toolkit_dmg/ No Pixel Bender Toolkit for Linux exists but the compiled Pixel Bender files can be downloaded from: https://builds.apache.org/pview/job/flex-sdk_pixelbender/lastSuccessfulBuild/artifact/out/pb.tar.gz Download the Pixel Bender Toolkit for your platform and install or unzip it. On Windows and Mac Set PIXELBENDER_HOME to the absolute path of the Pixel Bender Toolkit directory, on Linux set it to be the absolute path of the compiled Pixel Bender files. *6) The Adobe Flash Player playerglobal.swc for 11.1 can be downloaded from: http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc Use URL above to download playerglobal11_1.swc. Create the directory, player/11.1 and copy playerglobal11_1.swc to player/11.1/playerglobal.swc. Set PLAYERGLOBAL_HOME to the absolute path of the player directory (not including the version subdirectory). The target-player option controls which PLAYERGLOBAL_HOME subdirectory is used. Other more recent versions of Adobe Flash Player playerglobal.swc can be downloaded from: http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_2.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_3.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_4.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_5.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_6.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_7.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_8.swc These can be used with Apache Flex but have not been fully tested. *7) The Adobe Extension Manager is only required for those creating releases or testing changes to the flash-integration swc. Note that if you change APIs on classes that flash-integration depends on, you may need to update flash-integration. The Adobe Extension Manager for Windows can be downloaded from: http://download.macromedia.com/pub/dw_exchange/extension_manager/win/AdobeExtensionManager5All.zip The Adobe Extension Manager for Mac can be downloaded from: http://download.macromedia.com/pub/dw_exchange/extension_manager/mac/AdobeExtensionManager5All.dmg On Windows, set ADOBE_EXTENSION_MANAGER to the absolute path of "Adobe Extension Manager CS5.exe" On Mac, set ADOBE_EXTENSION_MANAGER to the absolute path of "Adobe Extension Manager CS5.app" On Linux, no Adobe Extension Manager exists and there's nothing that needs to be done here. FlashPlayer Configuration ------------------------- For testing, the Adobe Flash Player's mm.cfg file must have the following entries ErrorReportingEnable=1 TraceOutputFileEnable=1 and a FlashPlayerTrust file must allow local SWFs to access local files. Other Locale Support -------------------- The Apache Flex SDK defaults to using the en_US locale and SDK error messages are by default displayed in American English. To compile the SDK for another locale either: Change the locale in the build.properties file to have a value other than "en_US". For this new locale to take effect the SDK needs to be recompiled. For example, to use the Australian English locale change locale to have a value of "en_AU" like so: locale = en_AU OR Compile the SDK with a -Dlocale= option, where is the new locale to compile the SDK against. The list of supported locales include: da_DK el_GR en_GB fi_FI it_IT nb_NO pt_PT zh_CN de_CH en_AU en_US fr_CH ja_JP nl_NL ru_RU zh_TW de_DE en_CA es_ES fr_FR ko_KR pt_BR sv_SE The Apache Flex SDK has only been tested for the en_US locale, however there is unlikely to be any issues with a SDK compiled for another locales. Adobe Flash Player Version Support ---------------------------------- The Apache Flex SDK defaults to using the Adobe Flash Player 11.1. The SDK can be used with Flash Player versions 10.2, 10.3, 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7 and 11.8. It is recommended that you update to the latest version of Adobe Flash Player. Newer versions of the Adobe Flash player address security vulnerabilities, fix bugs/issues, increase stability, and implement new features. To use the SDK for another version of the Adobe Flash Player either: Change the flex-config.xml configuration file to specify another version of the Adobe Flash Player. OR Change the playerglobal.version in the build.properties file to have a value other than "11.1". For this change to take effect the SDK needs to be recompiled. For example to compile against the latest version of the Adobe Flash Player set the value of playerglobal.version to be "11.8" like so: playerglobal.version = 11.8 OR Compile the SDK with a -Dplayerglobal.version= option, where is the Adobe Flash Player version to compile the SDK against. Different versions of the Adobe Flash Player require different versions of playerglobal.swc. These can be found at: http://download.macromedia.com/get/flashplayer/installers/archive/playerglobal/playerglobal10_2.swc http://download.macromedia.com/get/flashplayer/installers/archive/playerglobal/playerglobal10_3.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_0.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_2.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_3.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_4.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_5.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_6.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_7.swc http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_8.swc Copy the target playerglobal.swc to the directory: frameworks/libs/player//playerglobal.swc Where is the major and minor version numbers of the Adobe Flash Player separated by a period or full stop. If all of the playerglobal swcs where installed the frameworks/libs/player directory structure would look like this. /frameworks /libs /player /10.2 /playerglobal.swc /10.3 /playerglobal.swc /11.0 /playerglobal.swc /11.2 /playerglobal.swc /11.2 /playerglobal.swc /11.3 /playerglobal.swc /11.4 /playerglobal.swc /11.5 /playerglobal.swc /11.6 /playerglobal.swc /11.7 /playerglobal.swc /11.8 /playerglobal.swc Apache Flex has been tested with Adobe Flash Player 11.1, 11.5, 11.7 and 11.8 on Windows and Mac. Apache Flex has not been tested on Linux so some issue may exist in this release. It compiles against other Adobe Flash Player versions and is expected to work but they may be some issues, particularly with the earlier 10.2 and 10.3 versions of the Adobe Flash Player. Software Dependencies --------------------- Apache Flex uses third-party code that will be downloaded as part of the Apache Flex build. In addition, there is some optional third-party code that you can choose to download if you would like to take advantage of the features offered and you agree to the license terms. The Apache Version 2.0 license is in the LICENSE file. The following dependencies have licenses which are, or are compatible with, the Apache Version 2.0 license. You will not be prompted to acknowledge the download. Most of the jars are installed in lib/external. batik - http://archive.apache.org/dist/xmlgraphics/batik/batik-1.6.zip commons-collections - http://archive.apache.org/dist/commons/collections/binaries/commons-collections-3.0.tar.gz commons-discovery - http://archive.apache.org/dist/commons/discovery/binaries/commons-discovery-0.2.tar.gz commons-logging - http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.0.4.tar.gz javacc - http://java.net/projects/javacc/downloads/download/javacc-5.0.tar.gz saxon9 - http://sourceforge.net/projects/saxon/files/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip/download velocity - http://archive.apache.org/dist/velocity/engine/1.4/velocity-1.4.tar.gz xalan - http://archive.apache.org/dist/xml/xalan-j/binaries/xalan-j_2_6_0-bin.tar.gz xerces - http://archive.apache.org/dist/xerces/j/Xerces-J-bin.2.9.1.zip The following dependencies have licenses which Apache considers to be reciprocal licenses so you will be prompted to acknowledge the license before the software is downloaded to your system. These files are installed in frameworks/libs. osmf.swc Open Source Media Framework v1.0 used for video components This file is extracted from: http://sourceforge.net/projects/osmf.adobe/files/OSMF%201.0%20%28final%20source%2C%20ASDocs%2C%20PDF%20guides%2C%20and%20release%20notes%29/OSMF_1.0.zip/download This software is released under the Mozilla Public License Version 1.1: The following dependencies have licenses which Apache considers to be not compatible with the Apache License Version 2.0. You will be prompted to read and agree to the license terms of the dependency before the software can be downloaded to your system. These are optional components which enable additional features. They are installed in libs/external/optional. flex-messaging-common.jar Provides integration with Adobe BlazeDs. This files are extracted from: http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/flex_sdk_4.6.0.23201B.zip This software is released under an Adobe license: flex-fontkit.jar afe.jar, adt.jar aglj40.jar rideau.jar Adobe proprietary software which provides embedded font support. These jars are extracted from: http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/flex_sdk_4.6.0.23201B.zip This software is released under an Adobe license: Using the Binary Distribution ----------------------------- You must download the third-party dependencies. When you have all the prerequisites in place and the environment variables set, (see Install Prerequisites above), use cd /frameworks ant thirdparty-downloads To use this SDK in a IDE like Flash Builder 4.6 or 4.7 the SDK needs several other files to be packaged and integrated with the Apache Flex SDK. If you have an existing installation of Flash Builder run: /ide/constructFlexForIDE.sh (on Mac and Linux) /ide/constructFlexForIDE.bat (on Windows) This will create an Apache Flex 4.10 SDK that can be used with Flash Builder by copying the required files from the Adobe Flex 4.6 SDK. To create an SDK for other IDE or if you want to use Adobe AIR 3.8 (rather than AIR 3.1 contained in Adobe Flex 4.6) run: /ide/flashbuilder/makeApacheFlexForIDE.sh (on Mac and Linux) /ide/flashbuilder/makeApacheFlexForIDE.bat (on Windows) This will create an Apache Flex 4.10 SDK that can be used by an IDE by downloading Adobe Flex 4.6 SDK and Adobe AIR 3.8. Building the Framework in a Binary Distribution ----------------------------------------------- The source for most of the framework is included in the binary distribution. It can be useful if you wish to debug and/or extend components. When you have all the prerequisites in place and the environment variables set, (see Install Prerequisites above), use cd /frameworks ant main (or just ant since the default target is main) to download the third-party dependencies and build the Flex framework. You may be prompted to acknowledge some of the downloads. Since the third-party dependencies take a little while to download and they don't change very often, they are not cleaned with the regular clean target. To clean the build, of everything other than the downloaded third-party dependencies use ant clean To clean the build, of everything, including the downloaded third-party dependencies use ant super-clean (which is just thirdparty-clean followed by clean) Building the Source in the Source Distribution ---------------------------------------------- The source for both the Flex compiler and the Flex framework is included in the source distribution. The compiler is in the modules directory and the framework is in the frameworks directory. Because the sdk uses the Text Layout Framework, you will have to clone it too and link it to the textLayout project of the sdk: cd /.. git clone https://git-wip-us.apache.org/repos/asf/flex-tlf.git tlf When you have all the prerequisites in place and the environment variables set (see Install Prerequisites above), use cd ant main (or just ant since the default target is main) to download the thirdparty dependencies and build the source. You may be prompted to acknowledge and/or confirm some of the downloads. Since the third-party dependencies take a little while to download and they don't change very often, they are not cleaned with the regular clean target. If you would like to build the RSLs, use ant frameworks-rsls To clean the build, of everything other than the downloaded third-party dependencies use ant clean To clean the build, of everything, including the downloaded third-party dependencies use ant super-clean (which is just thirdparty-clean followed by clean) To generate a source distribution package and a binary distribution package use ant -Dbuild.number= -Dbuild.noprompt= release The packages can be found in the "out" subdirectory. To build the ASDoc package ant asdoc-package To get a brief listing of all the targets type ant -projecthelp Thanks for using Apache Flex. Enjoy! The Apache Flex Project