
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2016-10-09
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Third-Party Tools & Solutions | Maven</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/spacelab/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />


		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



	</head>

	<body class="page-community-3rdparty project-flex-site" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="index.html" title="Home">Home</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="about-whatis.html" title="What is Flex?">What is Flex?</a></li>
									<li ><a href="about-features.html" title="Features">Features</a></li>
									<li ><a href=".html" title="Tour de Flex">Tour de Flex</a></li>
									<li ><a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a></li>
									<li ><a href="about-people.html" title="The Team">The Team</a></li>
									<li ><a href="about-history.html" title="Project History">Project History</a></li>
									<li ><a href="about-assets.html" title="Logo and Assets">Logo and Assets</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="community-getinvolved.html" title="How to get involved">How to get involved</a></li>
									<li ><a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a></li>
									<li class="active"><a href="" title="Third-Party">Third-Party</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a></li>
									<li ><a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a></li>
									<li ><a href="dev-sourcecode.html" title="Source Code">Source Code</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="doc-getstarted.html" title="Getting Started">Getting Started</a></li>
									<li ><a href="doc-videos.html" title="Videos">Videos</a></li>
									<li ><a href=".html" title="Flex ASDocs">Flex ASDocs</a></li>
									<li ><a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a></li>
									<li ><a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a></li>
									<li ><a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a></li>
									<li ><a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a></li>
									<li ><a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a></li>
									<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Download Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a></li>
									<li ><a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a></li>
									<li ><a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a></li>
									<li ><a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a></li>
									<li ><a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a></li>
									<li ><a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a></li>
									<li ><a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a></li>
									<li ><a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a></li>
									<li ><a href=".html" title="Flex Utilities">Flex Utilities</a></li>
									<li ><a href=".html" title="Previous Versions">Previous Versions</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="http://flex.apache.org/" id="bannerLeft"><img src="http://flex.apache.org/images/logo_01_fullcolor-sm.png" alt='"'Apache Flex'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://www.apache.org" id="bannerRight"><img src="http://www.apache.org/images/feather-small.gif" alt='"'An Apache Project'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="projectVersion version-date">Version: 0.8.0-SNAPSHOT</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2016-10-09</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<!-- 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. --> 
<div class="page-header">
 <h1>Third-Party Tools &amp; Solutions</h1>
</div> 
<p>This page gives a list of third party tools and solutions related to Apache Flex&reg;.</p> 
<div class="section"> 
 <h2 id="Integrated_Development_Environments_IDEs">Integrated Development Environments (IDEs)</h2> 
 <ul> 
  <li> <p><a class="externalLink" href="http://www.adobe.com/products/flash-builder.html" target="_blank">Flash Builder (Adobe)</a>: </p> 
   <blockquote>
     Adobe&reg; Flash&reg; Builder&reg; 4.7 is a development environment for building games and applications using the ActionScript&reg; language and the open source Flex framework. Flash Builder Premium includes professional testing tools such as profilers, network monitoring, and unit testing support. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a>: </p> 
   <blockquote>
     FlashDevelop is a free and open source code editor for every developer. FlashDevelop offers first class support for ActionScript (2 &amp; 3) and haXe development. Great completion &amp; code generation, projects compilation &amp; debugging, plenty of project templates, SWF/SWC exploration etc. FlashDevelop is also a great web developer IDE with source-control support (svn, git, mercurial), tasks/todo, snippets, XML/HTML completion and zen-coding for HTML. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://fdt.powerflasher.com/" target="_blank">Flexible Development Toolkit</a>: </p> 
   <blockquote>
     FDT is a flexible development toolkit in Eclipse for interactive developers. It’s made with passion for expert Flash and Flex coding, innovative mobile development and versatile HTML5 / JavaScript / WebGL / PHP programming with haXe. Create your applications in FDT and efficiently target multiple platforms. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.jetbrains.com/idea/features/flex_ide.html" target="_blank">IntelliJ IDEA (JetBrains)</a>: </p> 
   <blockquote>
     IntelliJ IDEA is ideal for ActionScript, MXML and CSS development, with on-the-fly code analysis, completion, navigation, advanced refactorings, code generation, UML diagrams, UI designer, interactive debugger and profiler. 
   </blockquote><p></p></li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Flex_Frameworks">Flex Frameworks</h2> 
 <ul> 
  <li> <p><a class="externalLink" href="http://sourceforge.net/adobe/cairngorm/home/Home/" target="_blank">Cairngorm</a>: </p> 
   <blockquote>
     Cairngorm provides a reference architecture for Flex applications that is designed to keep things simple and testable. It describes a way of structuring large applications out of smaller units. It is independent of an IoC framework implementation, but dependent on core principles to follow when developing enterprise RIAs. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://mate.asfusion.com/" target="_blank">Mate Flex Framework</a>: </p> 
   <blockquote>
     Mate is a tag-based, event-driven Flex framework. Flex applications are event-driven. Mate framework has been created to make it easy to handle the events your Flex application creates. Mate allows you to define who is handling those events, whether data needs to be retrieved from the server, or other events need to be triggered. In addition, Mate provides a mechanism for dependency injection to make it easy for the different parts of your application to get the data and objects they need. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.spicefactory.org/parsley/" target="_blank">Parsley (Spice Factory)</a>: </p> 
   <blockquote>
     Parsley is an open-source application framework for Flex/Flash/AIR applications written in AS3. Parsley features a flexible IOC container, dependency injection, decoupled bindings, messaging framework, managed commands, dynamic view wiring, advanced modularity, object lifecycle, localization, extensibility and more. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://puremvc.org/content/view/67/178/" target="_blank">PureMVC</a>: </p> 
   <blockquote>
     PureMVC is a lightweight framework for creating applications based upon the classic Model, View and Controller concept. Based upon proven design patterns, this free, open source framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and AIR, is now being ported to all major development platforms. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="https://code.google.com/p/fabrication/" target="_blank">Fabrication Framework</a>: </p> 
   <blockquote>
     Fabrication is a utility for the PureMVC framework. It adds many useful features to typical PureMVC programming syntax that helps accelerate development. Fabrication is focussed on the Flex and Flash implementations of the PureMVC framework. Also Fabrication is built largely to support multi-modular application and uses only the multicore version of PureMVC. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.robotlegs.org/" target="_blank">Robotlegs</a>: </p> 
   <blockquote>
     Robotlegs is an ActionScript Application Framework. It offers: Dependency, Module, Command and View management. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.springactionscript.org/" target="_blank">Spring Actionscript</a>: </p> 
   <blockquote>
     Spring ActionScript is an offshoot of the Java-based Spring Framework written in ActionScript 3. It is targeted for the Flash, Flex and AIR platforms. The framework contains a versatile Inversion of Control Container, a micro MVC library and extensions for the Cairngorm and PureMVC frameworks. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="https://github.com/swiz/" target="_blank">Swiz Framework</a>: </p> 
   <blockquote>
     Swiz is a brutally simple micro-architecture for creating Rich Internet Applications with ActionScript 3 and Adobe Flex. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.granitedataservices.com/public/docs/latest/docs/reference/flex/graniteds-refguide-flex.html#graniteds.tideframework" target="_blank">Tide (Granite Data Services)</a>: </p> 
   <blockquote>
     Tide is a Flex client framework inspired by popular Java frameworks such as Spring or CDI and is based on the concepts of contextual components and event-based programming. It should look familiar to Java developers yet stays close to the Flex framework concepts and traditional usage. 
   </blockquote><p></p></li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Server_Solutions">Server Solutions</h2> 
 <ul> 
  <li> <p><a class="externalLink" href="http://www.silexlabs.org/amfphp/" target="_blank">Amfphp</a>: </p> 
   <blockquote>
     Amfphp is free and open source software, and an essential brick for the development of Applications that need to communicate with the Internet. Amfphp is used in projects that cover a wide spectrum, from games to business applications. The role of Amfphp is to provide a really simple way of connecting a client with a server. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://sourceforge.net/adobe/blazeds/wiki/Home/" target="_blank">BlazeDS</a>: </p> 
   <blockquote>
     BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe&reg; Flex&reg; and Adobe AIR&reg; applications for more responsive rich Internet application (RIA) experiences. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.fluorinefx.com/" target="_blank">FluorineFx</a>: </p> 
   <blockquote>
     FluorineFx is the free and open source Flash/Flex remoting gateway, high-performance, scalable framework, streaming server that connects RIAs using Adobe software (Adobe Flash&reg;, Adobe Flex&reg;, Adobe AIR&reg; runtime) and Microsoft .NET&reg;. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.granitedataservices.com/community/" target="_blank">GraniteDS (Granite Data Services)</a>: </p> 
   <blockquote>
     GraniteDS brings the power of your Java EE server to the Flex side. An easy to use client-side API helps you leveraging advanced features such as authentication and secured access, dependency injection, typesafe remote calls, real-time messaging, data lazy-loading and synchronization, ActionScript3 code generation, bean validation, etc. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.adobe.com/products/livecycle.html" target="_blank">LiveCycle (Adobe)</a>: </p> 
   <blockquote>
     Adobe&reg; LiveCycle&reg; Enterprise Suite 4 is an enterprise document and form platform that helps you capture and process information, deliver personalized communications, and protect and track sensitive information. LiveCycle ES4 extends business processes to your mobile workforce and clients, increasing productivity while broadening service access to any user equipped with a desktop, smartphone, or tablet. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.red5.org/" target="_blank">Red5 Media Server</a>: </p> 
   <blockquote>
     Red5 Media Server 1.0 delivers a powerful video streaming and multi-user solution to the Adobe&reg; Flash&reg; Player&reg; and other exciting client technologies. Based on Java and some of the most powerful open source frameworks, Red5 stands as a solid solution for business of all sizes including the enterprise. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="https://github.com/rubyamf/rubyamf" target="_blank">RubyAMF</a>: </p> 
   <blockquote>
     RubyAMF is a full-featured AMF gateway based off of Rack and supporting advanced integration with Rails and other Rack-based frameworks. It includes advanced class mapping functionality, like camel to underscore case translation, parameter mapping to convert function calls to parameter hashes for actions, hooks for processing AMF authentication credentials, and many more features. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.themidnightcoders.com/products.html" target="_blank">WebOrb (Midnight Coders)</a>: </p> 
   <blockquote>
     Using WebORB, you will be able to easily integrate, test and optimize your desktop, web and mobile applications connecting to Java, .NET, and PHP backends. 
   </blockquote><p></p></li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Code_Generation_Tools">Code Generation Tools</h2> 
 <ul> 
  <li> <p><a class="externalLink" href="http://www.granitedataservices.com/public/docs/latest/docs/reference/flex/graniteds-refguide-flex.html#graniteds.gas3" target="_blank">Gas3 (Granite Data Services)</a>: </p> 
   <blockquote>
     Gas3 replicates your entire JPA data model into its ActionScript3 equivalent, with support of transparent lazy-loading and bean validation. It also generates type-safe AS3 classes mirroring your Java EE services (Spring, EJB, CDI). Gas3 is available as an Eclipse plugin (on-the-fly code generation), an Apache Ant task or an Apache Maven plugin with 
    <a class="externalLink" href="https://flexmojos.atlassian.net/wiki/display/FLEXMOJOS/Home" target="_blank">flex-mojos</a>. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.spicefactory.org/pimento/" target="_blank">Pimento / Cinnamon (Spice Factory)</a>: </p> 
   <blockquote>
     Automatic source generation of AS3 service interfaces and proxies with Cinnamons Ant task. 
   </blockquote><p></p></li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Build_Tools">Build Tools</h2> 
 <ul> 
  <li> <p><a class="externalLink" href="https://flexmojos.atlassian.net/wiki/display/FLEXMOJOS/Home" target="_blank">Flexmojos</a>: </p> 
   <blockquote>
     Flexmojos provides first-class support for Flex and AIR development within Apache Maven. It allows Maven to compile, optimize, and test Flex SWF, Flex SWC, Air SWF and Air SWC. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://gradlefx.org/" target="_blank">GradleFX</a>: </p> 
   <blockquote>
     GradleFx is a Gradle plugin for building Flex and Actionscript applications. It provides a set of useful tasks that will make building your project a breeze. All the build logic is encapsulated by the plugin and all you need to do is some configuration. 
   </blockquote><p></p></li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Testing_Tools">Testing Tools</h2> 
 <ul> 
  <li> <p><a class="externalLink" href="http://www8.hp.com/us/en/software-solutions/loadrunner-load-testing/index.html" target="_blank">Load Runner (HP)</a>: </p> 
   <blockquote>
     HP LoadRunner is the industry standard for application performance testing. The load testing tool helps you prevent issues by detecting bottlenecks and to obtain an accurate picture of end-to-end system performance before going live. Extremely flexible for organizations and projects of all sizes, LoadRunner software testing tool enables you to test a range of applications including mobile, Ajax, Flex, HTML 5, .NET, Java, GWT, Silverlight, SOAP, Citrix, ERP and legacy. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www.neotys.com/product/overview-neoload.html" target="_blank">NeoLoad (Neotys)</a>: </p> 
   <blockquote>
     NeoLoad is a load testing software solution designed for web and mobile applications to realistically simulate user activity and monitor infrastructure behavior. 
   </blockquote><p></p></li> 
  <li> <p><a class="externalLink" href="http://www-03.ibm.com/software/products/en/performance/" target="_blank">Rational Performance Tester (IBM)</a>: </p> 
   <blockquote>
     IBM&reg; Rational&reg; Performance Tester is a performance testing solution that validates the scalability of web and server applications. Rational Performance Tester identifies the presence and cause of system performance bottlenecks and reduces load testing complexity. 
   </blockquote><p></p></li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Component_Libraries">Component Libraries</h2> 
 <ul> 
  <li><a class="externalLink" href="http://www.flexicious.com/Home/Products" target="_blank">Flexicious</a>: 
   <blockquote>
     Flexicious provides custom components for Flex and Air developers. Our products include Flexicious Classic, Advanced and Spark, which are extensions to the Flex SDK DataGrid, AdvancedDataGrid and Spark DataGrid components, as well as Flexicious Ultimate DataGrid and Flexicious Data Visualization &amp; Dashboard Framework which includes Portal, Charts, Gauges, TreeMaps, Calendar/Scheduler and more. 
   </blockquote></li> 
 </ul> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span9 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About Flex</li>
						<li >
							<a href="about-whatis.html" title="What is Flex?">What is Flex?</a>
						</li>
						<li >
							<a href="about-features.html" title="Features">Features</a>
						</li>
						<li >
							<a href=".html" title="Tour de Flex">Tour de Flex</a>
						</li>
						<li >
							<a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a>
						</li>
						<li >
							<a href="about-people.html" title="The Team">The Team</a>
						</li>
						<li >
							<a href="about-history.html" title="Project History">Project History</a>
						</li>
						<li >
							<a href="about-assets.html" title="Logo and Assets">Logo and Assets</a>
						</li>
						<li class="nav-header">Community</li>
						<li >
							<a href="community-getinvolved.html" title="How to get involved">How to get involved</a>
						</li>
						<li >
							<a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a>
						</li>
						<li class="active">
							<a href="#" title="Third-Party">Third-Party</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a>
						</li>
						<li class="nav-header">Development</li>
						<li >
							<a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a>
						</li>
						<li >
							<a href="dev-sourcecode.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a>
						</li>
						<li class="nav-header">Documentation</li>
						<li >
							<a href="doc-getstarted.html" title="Getting Started">Getting Started</a>
						</li>
						<li >
							<a href="doc-videos.html" title="Videos">Videos</a>
						</li>
						<li >
							<a href=".html" title="Flex ASDocs">Flex ASDocs</a>
						</li>
						<li >
							<a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a>
						</li>
						<li >
							<a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a>
						</li>
						<li class="nav-header">About Apache</li>
						<li >
							<a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a>
						</li>
						<li class="nav-header">Download Flex</li>
						<li >
							<a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a>
						</li>
						<li >
							<a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a>
						</li>
						<li >
							<a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a>
						</li>
						<li >
							<a href=".html" title="Flex Utilities">Flex Utilities</a>
						</li>
						<li >
							<a href=".html" title="Previous Versions">Previous Versions</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-description">
					<blockquote>This is a very good project doing interesting
                and valuable things.</blockquote>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2016 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
