Refactor TestConfigurationLoader.
Add missing Apache headers in new classes.
Remove unused imports and vars.
diff --git a/automation_core/src/UnitTest/ExtendedClasses/TestConfigurationLoader.as b/automation_core/src/UnitTest/ExtendedClasses/TestConfigurationLoader.as
index 41e2a56..f252ff9 100644
--- a/automation_core/src/UnitTest/ExtendedClasses/TestConfigurationLoader.as
+++ b/automation_core/src/UnitTest/ExtendedClasses/TestConfigurationLoader.as
@@ -1,6 +1,21 @@
-/**
- * Created by Hellix on 2015-02-22.
- */
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
 package UnitTest.ExtendedClasses
 {
     import UnitTest.Fixtures.TestCaseVo;
@@ -19,22 +34,19 @@
         private var httpService:HTTPService;
         private var token:ExternalDependencyToken;
         private var testName:String;
+        private var fileName:String;
 
         public function TestConfigurationLoader(fileName:String, testName:String)
         {
-            if (!TestConfig.getInstance().testConfigData)
-            {
-                httpService = new HTTPService();
-                httpService.url = LoaderUtil.createAbsoluteURL(TestConfig.getInstance().normalizedUrl, fileName);
-                httpService.resultFormat = "e4x";
-            }
             this.token = new ExternalDependencyToken();
+            this.fileName = fileName;
             this.testName = testName;
+            createHttpService();
         }
 
         public function retrieveDependency(testClass:Class):ExternalDependencyToken
         {
-            var asyncToken:AsyncToken = httpService ? httpService.send() : new AsyncToken();
+            var asyncToken:AsyncToken = httpService.send();
             asyncToken.addResponder(this);
 
             return token;
@@ -43,14 +55,14 @@
         public function result(data:Object):void
         {
             var dp:Array = null;
-            if (httpService && data.result)
+            if (data && data.result)
             {
-                TestConfig.getInstance().testConfigData = data.result;
                 dp = parseTestConfigData(data.result);
             }
             else
             {
-                dp = parseTestConfigData(TestConfig.getInstance().testConfigData);
+                token.notifyFault("Unable to load data tests");
+                return;
             }
 
             token.notifyResult(dp);
@@ -78,5 +90,12 @@
 
             return testConfigData;
         }
+
+        private function createHttpService():void
+        {
+            httpService = new HTTPService();
+            httpService.url = LoaderUtil.createAbsoluteURL(TestConfig.getInstance().normalizedUrl, fileName);
+            httpService.resultFormat = "e4x";
+        }
     }
 }
diff --git a/automation_core/src/UnitTest/Fixtures/TestCaseVo.as b/automation_core/src/UnitTest/Fixtures/TestCaseVo.as
index ac43822..724e19a 100644
--- a/automation_core/src/UnitTest/Fixtures/TestCaseVo.as
+++ b/automation_core/src/UnitTest/Fixtures/TestCaseVo.as
@@ -1,6 +1,21 @@
-/**
- * Created by Hellix on 2015-02-22.
- */
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
 package UnitTest.Fixtures
 {
     public dynamic class TestCaseVo
diff --git a/automation_core/src/UnitTest/Fixtures/TestConfig.as b/automation_core/src/UnitTest/Fixtures/TestConfig.as
index eb0879b..b6dc70f 100644
--- a/automation_core/src/UnitTest/Fixtures/TestConfig.as
+++ b/automation_core/src/UnitTest/Fixtures/TestConfig.as
@@ -18,11 +18,12 @@
 ////////////////////////////////////////////////////////////////////////////////
 package UnitTest.Fixtures
 {
-	import flashx.textLayout.formats.BlockProgression;
-	import flashx.textLayout.formats.Direction;
-	import flash.system.Capabilities;
+    import flash.system.Capabilities;
 
-	public class TestConfig
+    import flashx.textLayout.formats.BlockProgression;
+    import flashx.textLayout.formats.Direction;
+
+    public class TestConfig
 	{
         private static var _instance:TestConfig;
 
@@ -34,7 +35,6 @@
 		public var flashVersion:String = Capabilities.version.substr(4,4);
         public var testXMLStore:XML;
 
-        public var testConfigData:XML;
         public var normalizedUrl:String;
 
 		public function TestConfig(testConfigEnforcer:TestConfigEnforcer)
diff --git a/automation_tests/src/MinimalTestsSuite.as b/automation_tests/src/MinimalTestsSuite.as
index a58a2f6..5d29b99 100644
--- a/automation_tests/src/MinimalTestsSuite.as
+++ b/automation_tests/src/MinimalTestsSuite.as
@@ -18,24 +18,13 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {
-	import UnitTest.Tests.ContainerAttributeTest;
-
-	//import UnitTest.Tests.AllEventTest;
-
-	//import UnitTest.Tests.CompositionTest;
-
-//    import UnitTest.Tests.OperationTest;
+    import UnitTest.Tests.ContainerAttributeTest;
 
     [Suite]
     [RunWith("org.flexunit.runners.Suite")]
     public dynamic class MinimalTestsSuite
     {
-        //public var floatTest:FloatTest;
-        //public var operationTest:OperationTest;
-		//public var compTest:CompositionTest;
-		//public var allEventTest:AllEventTest;
-		public var containerAttTest:ContainerAttributeTest;
-		
+        public var containerAttributeTest:ContainerAttributeTest;
     }
 
 }
diff --git a/automation_tests/src/UnitTest/Tests/ContainerAttributeTest.as b/automation_tests/src/UnitTest/Tests/ContainerAttributeTest.as
index 3d037ba..10524f7 100644
--- a/automation_tests/src/UnitTest/Tests/ContainerAttributeTest.as
+++ b/automation_tests/src/UnitTest/Tests/ContainerAttributeTest.as
@@ -160,11 +160,6 @@
             super.tearDownTest();
         }
 
-        [AfterClass]
-        public static function tearItDown():void {
-            TestConfig.getInstance().testConfigData = null;
-        }
-
         private function set columnCount(count:Object):void
         {
             if (testContainer)
diff --git a/testApps/src/school.mxml b/testApps/src/school.mxml
index 87a131b..40626d3 100644
--- a/testApps/src/school.mxml
+++ b/testApps/src/school.mxml
@@ -22,90 +22,89 @@
     xmlns="http://ns.adobe.com/mxml/2009"
  	xmlns:s="library://ns.adobe.com/flex/spark"
  	xmlns:mx="library://ns.adobe.com/flex/mx"
-    xmlns:flow="library://ns.adobe.com/flashx/textLayout" 
-	xmlns:flashGeometry="flash.geom.*"
+    xmlns:flow="library://ns.adobe.com/flashx/textLayout"
 	creationComplete="handleCreationComplete()"
 	preinitialize="preinitialize()"
 	resize="handleResize()">
 
     <Script>
     	<![CDATA[
-    	import flashx.textLayout.edit.EditManager;
-      import flashx.textLayout.container.ContainerController;
-		
-		[Bindable]
-		private var ChineseFontName:String;
-		[Bindable]
-		private var KoreanFontName:String;
-		[Bindable]
-		private var JapaneseFontName:String;
-		
-			[Bindable]
-			public var boundTextSpan:String;
-			
-		private var schoolContainer:Sprite;
-		private var udhrContainer:Sprite;
-		
-		private const insetWidth:Number = 8;
-		private const insetHeight:Number = 8;
+        import flashx.textLayout.container.ContainerController;
+        import flashx.textLayout.edit.EditManager;
 
-		public function handleCreationComplete(): void
-		{
-			if (Capabilities.os.search("Mac OS") > -1)
-			{
-				ChineseFontName = "宋体";
-				KoreanFontName = "Adobe 명조 Std M";
-				JapaneseFontName = "小塚明朝 Pro L";
-			}
-			else
-			{
-				ChineseFontName = "Adobe Song Std L";
-				KoreanFontName = "Adobe Myungjo Std M";
-				JapaneseFontName = "Kozuka Mincho Pro L";
-			}
-			boundTextSpan = "This span is bound for glory";
- 
-			schoolContainer = new Sprite();
-			schoolContainer.x = 4;
-			var schoolController:ContainerController = new ContainerController(schoolContainer);
-			schoolFlow.flowComposer.addController(schoolController);
-		//	schoolController.wraps = new WrapManager();
-		//	schoolController.wraps.wraps = [ new Rectangle(0, 150, 144, 178)];
-			textPanel.rawChildren.addChild(schoolContainer);
-			
-			udhrContainer = new Sprite();
-			udhrFlow.flowComposer.addController(new ContainerController(udhrContainer));
-			textPanel.rawChildren.addChild(udhrContainer);
+        [Bindable]
+        private var ChineseFontName:String;
+        [Bindable]
+        private var KoreanFontName:String;
+        [Bindable]
+        private var JapaneseFontName:String;
 
-			schoolFlow.interactionManager = new EditManager();
-			udhrFlow.interactionManager = new EditManager();
-			handleResize();
-		}
+        [Bindable]
+        public var boundTextSpan:String;
 
-		public function preinitialize(): void
-		{
-			XML.ignoreWhitespace = false;
-		}
-		
-		public function handleResize(): void
-		{
-			
-			if (!schoolContainer)		// we get resize before creationComplete
-				return;
-				
-			var stageWidth:Number = textPanel.width;
-			var stageHeight:Number = textPanel.height;
-			
-			var compositionWidth:Number = (stageWidth-insetWidth)/2;
-			var compositionHeight:Number = stageHeight - insetHeight;
-			schoolFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
+        private var schoolContainer:Sprite;
+        private var udhrContainer:Sprite;
 
-			udhrFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
-			udhrContainer.x = (stageWidth-insetWidth)/2 + insetWidth;
+        private const insetWidth:Number = 8;
+        private const insetHeight:Number = 8;
 
-			schoolFlow.flowComposer.updateAllControllers();
-			udhrFlow.flowComposer.updateAllControllers();
-		}
+        public function handleCreationComplete():void
+        {
+            if (Capabilities.os.search("Mac OS") > -1)
+            {
+                ChineseFontName = "宋体";
+                KoreanFontName = "Adobe 명조 Std M";
+                JapaneseFontName = "小塚明朝 Pro L";
+            }
+            else
+            {
+                ChineseFontName = "Adobe Song Std L";
+                KoreanFontName = "Adobe Myungjo Std M";
+                JapaneseFontName = "Kozuka Mincho Pro L";
+            }
+            boundTextSpan = "This span is bound for glory";
+
+            schoolContainer = new Sprite();
+            schoolContainer.x = 4;
+            var schoolController:ContainerController = new ContainerController(schoolContainer);
+            schoolFlow.flowComposer.addController(schoolController);
+            //	schoolController.wraps = new WrapManager();
+            //	schoolController.wraps.wraps = [ new Rectangle(0, 150, 144, 178)];
+            textPanel.rawChildren.addChild(schoolContainer);
+
+            udhrContainer = new Sprite();
+            udhrFlow.flowComposer.addController(new ContainerController(udhrContainer));
+            textPanel.rawChildren.addChild(udhrContainer);
+
+            schoolFlow.interactionManager = new EditManager();
+            udhrFlow.interactionManager = new EditManager();
+            handleResize();
+        }
+
+        public function preinitialize():void
+        {
+            XML.ignoreWhitespace = false;
+        }
+
+        public function handleResize():void
+        {
+
+            if (!schoolContainer)		// we get resize before creationComplete
+                return;
+
+            var stageWidth:Number = textPanel.width;
+            var stageHeight:Number = textPanel.height;
+
+            var compositionWidth:Number = (stageWidth - insetWidth) / 2;
+            var compositionHeight:Number = stageHeight - insetHeight;
+            schoolFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
+
+            udhrFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
+            udhrContainer.x = (stageWidth - insetWidth) / 2 + insetWidth;
+
+            schoolFlow.flowComposer.updateAllControllers();
+            udhrFlow.flowComposer.updateAllControllers();
+        }
         ]]>
     
     </Script>
diff --git a/testApps/src/schoolV.mxml b/testApps/src/schoolV.mxml
index 388e939..b5c4ea7 100644
--- a/testApps/src/schoolV.mxml
+++ b/testApps/src/schoolV.mxml
@@ -22,89 +22,89 @@
     xmlns="http://ns.adobe.com/mxml/2009"
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx"
-    xmlns:flow="library://ns.adobe.com/flashx/textLayout" 
-	xmlns:flashGeometry="flash.geom.*"
+    xmlns:flow="library://ns.adobe.com/flashx/textLayout"
 	creationComplete="handleCreationComplete()"
 	preinitialize="preinitialize()"
 	resize="handleResize()">
 
     <Script>
     	<![CDATA[
-    	import flashx.textLayout.edit.EditManager;
-    	import flashx.textLayout.container.ContainerController;
-    	//import flashx.textLayout.container.WrapManager;
- 		
-		[Bindable]
-		private var ChineseFontName:String;
-		[Bindable]
-		private var KoreanFontName:String;
-		[Bindable]
-		private var JapaneseFontName:String;
-		
-		private var schoolContainer:Sprite;
-		private var udhrContainer:Sprite;
-		
-		private const insetWidth:Number = 8;
-		private const insetHeight:Number = 8;
+        import flashx.textLayout.container.ContainerController;
+        import flashx.textLayout.edit.EditManager;
 
-		public function handleCreationComplete(): void
-		{
+        //import flashx.textLayout.container.WrapManager;
 
-			schoolContainer = new Sprite();
-			schoolContainer.x = 4;
-			var schoolController:ContainerController = new ContainerController(schoolContainer);
-			schoolFlow.flowComposer.addController(schoolController);
-		//	schoolController.wraps = new WrapManager();
-		//	schoolController.wraps.wraps = [ new Rectangle(0, 150, 144, 178)];
-			textPanel.rawChildren.addChild(schoolContainer);
-			
-			udhrContainer = new Sprite();
-			udhrFlow.flowComposer.addController(new ContainerController(udhrContainer));
-			textPanel.rawChildren.addChild(udhrContainer);
+        [Bindable]
+        private var ChineseFontName:String;
+        [Bindable]
+        private var KoreanFontName:String;
+        [Bindable]
+        private var JapaneseFontName:String;
 
-			schoolFlow.interactionManager = new EditManager();
-			udhrFlow.interactionManager = new EditManager();
+        private var schoolContainer:Sprite;
+        private var udhrContainer:Sprite;
 
-			handleResize();
-		}
+        private const insetWidth:Number = 8;
+        private const insetHeight:Number = 8;
 
-		public function preinitialize(): void
-		{
-			XML.ignoreWhitespace = false;
-			
-			if (Capabilities.os.search("Mac OS") > -1)
-			{
-				ChineseFontName = "宋体";
-				KoreanFontName = "Adobe 명조 Std M";
-				JapaneseFontName = "小塚明朝 Pro L";
-			}
-			else
-			{
-				ChineseFontName = "Adobe Song Std L";
-				KoreanFontName = "Adobe Myungjo Std M";
-				JapaneseFontName = "Kozuka Mincho Pro L";
-			}
-		}
-		
-		public function handleResize(): void
-		{
-			
-			if (!schoolContainer)		// we get resize before creationComplete
-				return;
-				
-			var stageWidth:Number = textPanel.width;
-			var stageHeight:Number = textPanel.height;
-			
-			var compositionWidth:Number = (stageWidth-insetWidth)/2;
-			var compositionHeight:Number = stageHeight - insetHeight;
-			schoolFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
+        public function handleCreationComplete():void
+        {
 
-			udhrFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
-			udhrContainer.x = (stageWidth-insetWidth)/2 + insetWidth;
+            schoolContainer = new Sprite();
+            schoolContainer.x = 4;
+            var schoolController:ContainerController = new ContainerController(schoolContainer);
+            schoolFlow.flowComposer.addController(schoolController);
+            //	schoolController.wraps = new WrapManager();
+            //	schoolController.wraps.wraps = [ new Rectangle(0, 150, 144, 178)];
+            textPanel.rawChildren.addChild(schoolContainer);
 
-			schoolFlow.flowComposer.updateAllControllers();
-			udhrFlow.flowComposer.updateAllControllers();
-		}
+            udhrContainer = new Sprite();
+            udhrFlow.flowComposer.addController(new ContainerController(udhrContainer));
+            textPanel.rawChildren.addChild(udhrContainer);
+
+            schoolFlow.interactionManager = new EditManager();
+            udhrFlow.interactionManager = new EditManager();
+
+            handleResize();
+        }
+
+        public function preinitialize():void
+        {
+            XML.ignoreWhitespace = false;
+
+            if (Capabilities.os.search("Mac OS") > -1)
+            {
+                ChineseFontName = "宋体";
+                KoreanFontName = "Adobe 명조 Std M";
+                JapaneseFontName = "小塚明朝 Pro L";
+            }
+            else
+            {
+                ChineseFontName = "Adobe Song Std L";
+                KoreanFontName = "Adobe Myungjo Std M";
+                JapaneseFontName = "Kozuka Mincho Pro L";
+            }
+        }
+
+        public function handleResize():void
+        {
+
+            if (!schoolContainer)		// we get resize before creationComplete
+                return;
+
+            var stageWidth:Number = textPanel.width;
+            var stageHeight:Number = textPanel.height;
+
+            var compositionWidth:Number = (stageWidth - insetWidth) / 2;
+            var compositionHeight:Number = stageHeight - insetHeight;
+            schoolFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
+
+            udhrFlow.flowComposer.getControllerAt(0).setCompositionSize(compositionWidth, compositionHeight);
+            udhrContainer.x = (stageWidth - insetWidth) / 2 + insetWidth;
+
+            schoolFlow.flowComposer.updateAllControllers();
+            udhrFlow.flowComposer.updateAllControllers();
+        }
         ]]>
     
     </Script>
@@ -118,7 +118,6 @@
 	</flow:TextFlow>
 
 	<flow:TextFlow id="udhrFlow" blockProgression="rl" fontSize="36" textAlign="right" direction="rtl" fontFamily="Adobe Arabic" locale="ar" paddingLeft="10" paddingRight="10">
-		<flow:p><flow:span text="{boundTextSpan}"/></flow:p>	
 		<flow:p><flow:span>وأدوبي فليكس SDK هو تطور SDK أدوبي فليكس شعبية. أباتشي فليكس SDK هو إطار تطوير التطبيقات لبناء فلاش بسهولة التطبيقات المستندة للهواتف النقالة، ومتصفحات الويب، ومنصات سطح المكتب. وتشمل الأنظمة الأساسية المعتمدة حاليا:</flow:span></flow:p>
 		<flow:p><flow:span>نظام التشغيل Mac OS X</flow:span><flow:span> أبل دائرة الرقابة الداخلية</flow:span><flow:span>جوجل الروبوت</flow:span><flow:span>RIM بلاك بيري</flow:span><flow:span locale="en" fontFamily="Myriad Pro">(Linux)</flow:span></flow:p>
 		<flow:p><flow:span>دعم لينكس هو تجريبي حاليا وكنت قد واجهت القضايا. أباتشي ان مشروع فليكس تود أن ترى بيان لينكس يؤيد تأييدا كاملا، لكننا بحاجة مساعدة من المجتمع من أجل القيام بذلك. الرجاء المساعدة ما إذا كنت تستطيع.</flow:span></flow:p>