<?xml version="1.0" encoding="utf-8"?>
<!--

  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.

-->
<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx">

	<s:Panel title="Apache Flex 4.9" width="100%" height="100%">
		<s:layout>
			<s:VerticalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10"/>
		</s:layout>
		<s:HGroup>
			<s:Image source="@Embed('/assets/ApacheFlexLogo.png')" width="50" height="50" />
			<s:VGroup height="100%" verticalAlign="middle">
				<s:Label text="Apache Flex 4.9" fontSize="20" fontWeight="bold" />
				<s:Label text="Released Jan 11, 2013" />
			</s:VGroup>	
		</s:HGroup>
		<s:RichText width="100%">
			<s:p />
			<s:p>Apache Flex community releases Flex 4.9.0. This is the first release since Apache Flex became a top level project of the Apache Software Foundation.</s:p>
			<s:p />
			<s:p>Differences and highlights include:</s:p>
			<s:list>
				<s:li>New locales for Apache Flex including Australian, British, Canadian, Greek, Switzerland (German) and Portuguese</s:li>
				<s:li>Apache Flex SDK can be compiled for any version of the Flash Player from 10.2 to 11.5</s:li>
				<s:li>New PostCodeFormatter and PostCodeValidator classes for international postcode formatting and validation</s:li>
				<s:li>New VectorList and VectorCollection classes for lists and collections of vectors</s:li>
				<s:li>New version of the TLF (Text Layout Framework), the TLF 3.0.33 source code is now included as it is now part of the Apache Flex donation</s:li>
				<s:li>Can use Java 7 to compile SDK (see README for instructions)</s:li>
				<s:li>Many improvements and updates to Mustella tests</s:li>
				<s:li>An SDK installer has also been created and is the recommended way of installing the Apache Flex SDK in an IDE</s:li>
				<s:li>Various important bug fixes</s:li>
			</s:list>
			<s:p />
			<s:p>For a full list of changes please see the README.</s:p>
			<s:p />
		</s:RichText>
		<s:Label text="Content from Wikipedia licenced under a Creative Commons Attribution-ShareAlike 3.0 Unported License" fontSize="9" />
	</s:Panel>
</s:Module>
