You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/04/25 07:34:23 UTC

[25/51] [partial] BlazeDS Donation from Adobe Systems Inc

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/multipleendpoints/messaging_AMFLongPoll_and_SecureAMFLongPoll.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/multipleendpoints/messaging_AMFLongPoll_and_SecureAMFLongPoll.mxml b/apps/team/features/messaging/multipleendpoints/messaging_AMFLongPoll_and_SecureAMFLongPoll.mxml
new file mode 100755
index 0000000..87c24e6
--- /dev/null
+++ b/apps/team/features/messaging/multipleendpoints/messaging_AMFLongPoll_and_SecureAMFLongPoll.mxml
@@ -0,0 +1,160 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	creationComplete="creationCompleteHandler();">
+    
+    <mx:Panel id="mainPanel1" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>			       	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+
+<mx:Panel id="mainPanel2" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer2"/>        
+        	<mx:Button label="Send Foo{counter2}" click="sendMessage2()"/>
+			<mx:Button label="Disconnect" click="producer2.disconnect();" enabled="{producer2.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer2.connected}"/>	     	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer2"/>
+			<mx:Button label="Subcribe" click="consumer2.subscribe();" enabled="{!consumer2.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer2.unsubscribe();" enabled="{consumer2.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer2.disconnect();" enabled="{consumer2.connected}"/>
+			<mx:Button label="Poll" click="(consumer2.channelSet.currentChannel as PollingChannel).poll();" enabled="{consumer2.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer2.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer2.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta2.text = ""'/>        
+        <mx:TextArea id="ta2" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    
+    <mx:Producer id="producer" 
+        destination="messaging_AMF_LongPoll"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_AMF_LongPoll"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"/>
+	
+	<mx:Producer id="producer2" 
+        destination="messaging_AMF_SecureLongPoll"
+        fault="faultHandler2(event)"/>
+               
+    <mx:Consumer id="consumer2" 
+        destination="messaging_AMF_SecureLongPoll"
+        fault="faultHandler2(event)" 
+        message="messageHandler2(event)"/>
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+			import mx.messaging.channels.PollingChannel;     
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			[Bindable]				                	
+			public var counter:int = 0;
+			
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;         
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }    
+
+			[Bindable]				                	
+			public var counter2:int = 0;
+			
+    		
+            private function sendMessage2():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter2++;         
+                producer2.send(msg);
+            }
+                                                            
+            private function messageHandler2(event:MessageEvent):void
+            {
+                ta2.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler2(event:MessageFaultEvent):void
+            {
+                ta2.text += "Received fault: " + event.faultString + "\n";
+            }                      
+        ]]>
+    </mx:Script>
+
+
+    
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			                        
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/multipleendpoints/messaging_SecureAMFLongPoll_and_AMFStream.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/multipleendpoints/messaging_SecureAMFLongPoll_and_AMFStream.mxml b/apps/team/features/messaging/multipleendpoints/messaging_SecureAMFLongPoll_and_AMFStream.mxml
new file mode 100755
index 0000000..c5619cd
--- /dev/null
+++ b/apps/team/features/messaging/multipleendpoints/messaging_SecureAMFLongPoll_and_AMFStream.mxml
@@ -0,0 +1,160 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	creationComplete="creationCompleteHandler();">
+    
+    <mx:Panel id="mainPanel1" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>			       	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+
+<mx:Panel id="mainPanel2" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer2"/>        
+        	<mx:Button label="Send Foo{counter2}" click="sendMessage2()"/>
+			<mx:Button label="Disconnect" click="producer2.disconnect();" enabled="{producer2.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer2.connected}"/>	     	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer2"/>
+			<mx:Button label="Subcribe" click="consumer2.subscribe();" enabled="{!consumer2.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer2.unsubscribe();" enabled="{consumer2.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer2.disconnect();" enabled="{consumer2.connected}"/>
+			<mx:Button label="Poll" click="(consumer2.channelSet.currentChannel as PollingChannel).poll();" enabled="{consumer2.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer2.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer2.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta2.text = ""'/>        
+        <mx:TextArea id="ta2" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    
+    <mx:Producer id="producer" 
+        destination="messaging_AMF_SecureLongPoll"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_AMF_SecureLongPoll"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"/>
+	
+	<mx:Producer id="producer2" 
+        destination="messaging_AMF_Stream"
+        fault="faultHandler2(event)"/>
+               
+    <mx:Consumer id="consumer2" 
+        destination="messaging_AMF_Stream"
+        fault="faultHandler2(event)" 
+        message="messageHandler2(event)"/>
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+			import mx.messaging.channels.PollingChannel;     
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			[Bindable]				                	
+			public var counter:int = 0;
+			
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;         
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }    
+
+			[Bindable]				                	
+			public var counter2:int = 0;
+			
+    		
+            private function sendMessage2():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter2++;         
+                producer2.send(msg);
+            }
+                                                            
+            private function messageHandler2(event:MessageEvent):void
+            {
+                ta2.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler2(event:MessageFaultEvent):void
+            {
+                ta2.text += "Received fault: " + event.faultString + "\n";
+            }                      
+        ]]>
+    </mx:Script>
+
+
+    
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			                        
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/multipleendpoints/messaging_two_AMFLongPoll_Endpoints.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/multipleendpoints/messaging_two_AMFLongPoll_Endpoints.mxml b/apps/team/features/messaging/multipleendpoints/messaging_two_AMFLongPoll_Endpoints.mxml
new file mode 100755
index 0000000..78d289b
--- /dev/null
+++ b/apps/team/features/messaging/multipleendpoints/messaging_two_AMFLongPoll_Endpoints.mxml
@@ -0,0 +1,160 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	creationComplete="creationCompleteHandler();">
+    
+    <mx:Panel id="mainPanel1" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>			       	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+
+<mx:Panel id="mainPanel2" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer2"/>        
+        	<mx:Button label="Send Foo{counter2}" click="sendMessage2()"/>
+			<mx:Button label="Disconnect" click="producer2.disconnect();" enabled="{producer2.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer2.connected}"/>	     	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer2"/>
+			<mx:Button label="Subcribe" click="consumer2.subscribe();" enabled="{!consumer2.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer2.unsubscribe();" enabled="{consumer2.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer2.disconnect();" enabled="{consumer2.connected}"/>
+			<mx:Button label="Poll" click="(consumer2.channelSet.currentChannel as PollingChannel).poll();" enabled="{consumer2.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer2.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer2.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta2.text = ""'/>        
+        <mx:TextArea id="ta2" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    
+    <mx:Producer id="producer" 
+        destination="messaging_AMF_LongPoll"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_AMF_LongPoll"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"/>
+	
+	<mx:Producer id="producer2" 
+        destination="messaging_AMF_LongPoll2"
+        fault="faultHandler2(event)"/>
+               
+    <mx:Consumer id="consumer2" 
+        destination="messaging_AMF_LongPoll2"
+        fault="faultHandler2(event)" 
+        message="messageHandler2(event)"/>
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+			import mx.messaging.channels.PollingChannel;     
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			[Bindable]				                	
+			public var counter:int = 0;
+			
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;         
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }    
+
+			[Bindable]				                	
+			public var counter2:int = 0;
+			
+    		
+            private function sendMessage2():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter2++;         
+                producer2.send(msg);
+            }
+                                                            
+            private function messageHandler2(event:MessageEvent):void
+            {
+                ta2.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler2(event:MessageFaultEvent):void
+            {
+                ta2.text += "Received fault: " + event.faultString + "\n";
+            }                      
+        ]]>
+    </mx:Script>
+
+
+    
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			                        
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/secure/messaging_SecureAMF.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/secure/messaging_SecureAMF.mxml b/apps/team/features/messaging/secure/messaging_SecureAMF.mxml
new file mode 100755
index 0000000..ae5d1a1
--- /dev/null
+++ b/apps/team/features/messaging/secure/messaging_SecureAMF.mxml
@@ -0,0 +1,120 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+    creationComplete="creationCompleteHandler();">
+    
+    <!-- An example where the client manually initiates a poll request without 
+         relying on polling-interval with secure HTTP.
+    -->
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>	       	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    <mx:Producer id="producer" 
+        destination="messaging_SecureAMF"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_SecureAMF"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"/>
+                    
+    <mx:Script>
+        <![CDATA[
+        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+        
+			import mx.messaging.ChannelSet;            
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+			import mx.messaging.channels.PollingChannel;                
+			import mx.messaging.messages.AsyncMessage;  	
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;			
+	        
+			public var pc:PollingChannel;                
+			
+			[Bindable]				                	
+			public var counter:int = 0;
+
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		     		 
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;            
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer: received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:Object):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }      
+            
+			private function poll():void
+			{
+            	ta.text += "Polling" + "\n";
+	            if (!consumer.subscribed)
+	            {
+	            	subscribeConsumer();
+	            }            
+            	pc.poll();
+        	}
+        	
+        	private function subscribeConsumer():void
+        	{
+            	ta.text += "Subscribing Consumer \n";
+	            consumer.subscribe();  
+        		
+            	var pcs:ChannelSet = consumer.channelSet;
+            	pc = PollingChannel(pcs.currentChannel);	        		
+        	}
+        ]]>
+    </mx:Script>
+
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/secure/messaging_SecureHTTP.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/secure/messaging_SecureHTTP.mxml b/apps/team/features/messaging/secure/messaging_SecureHTTP.mxml
new file mode 100755
index 0000000..ecbb6e4
--- /dev/null
+++ b/apps/team/features/messaging/secure/messaging_SecureHTTP.mxml
@@ -0,0 +1,120 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+    creationComplete="creationCompleteHandler();">
+    
+    <!-- An example where the client manually initiates a poll request without 
+         relying on polling-interval with secure HTTP.
+    -->
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>	       	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                     
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    <mx:Producer id="producer" 
+        destination="messaging_SecureHTTP"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_SecureHTTP"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"/>
+                    
+    <mx:Script>
+        <![CDATA[
+        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+        
+			import mx.messaging.ChannelSet;            
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+			import mx.messaging.channels.PollingChannel;                
+			import mx.messaging.messages.AsyncMessage;  	
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;			
+	        
+			public var pc:PollingChannel;                
+			
+			[Bindable]				                	
+			public var counter:int = 0;
+
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		     		 
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;            
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer: received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:Object):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }      
+            
+			private function poll():void
+			{
+            	ta.text += "Polling" + "\n";
+	            if (!consumer.subscribed)
+	            {
+	            	subscribeConsumer();
+	            }            
+            	pc.poll();
+        	}
+        	
+        	private function subscribeConsumer():void
+        	{
+            	ta.text += "Subscribing Consumer \n";
+	            consumer.subscribe();  
+        		
+            	var pcs:ChannelSet = consumer.channelSet;
+            	pc = PollingChannel(pcs.currentChannel);	        		
+        	}
+        ]]>
+    </mx:Script>
+
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/selector/messaging_AMF_Poll_JMS_Queue_Selector.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/selector/messaging_AMF_Poll_JMS_Queue_Selector.mxml b/apps/team/features/messaging/selector/messaging_AMF_Poll_JMS_Queue_Selector.mxml
new file mode 100755
index 0000000..91f9317
--- /dev/null
+++ b/apps/team/features/messaging/selector/messaging_AMF_Poll_JMS_Queue_Selector.mxml
@@ -0,0 +1,100 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	creationComplete="creationCompleteHandler();">
+    
+    <!-- This example shows how to use selectors -->
+    
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();"/>        	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();"/>
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    <mx:Producer id="producer" 
+        destination="messaging_AMF_Poll_JMS_Queue"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_AMF_Poll_JMS_Queue"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"
+        selector="username = 'Foo'"/>
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			[Bindable]				                	
+			public var counter:int = 0;
+			
+			private var alternate:Boolean = false;			
+			
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;    
+                
+                // Alternate between sending the message with the header and without the header
+            	if (alternate)
+            		msg.headers["username"] = "Foo";				
+				alternate = !alternate;
+                     
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }                         
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/selector/messaging_AMF_Poll_Selector.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/selector/messaging_AMF_Poll_Selector.mxml b/apps/team/features/messaging/selector/messaging_AMF_Poll_Selector.mxml
new file mode 100755
index 0000000..fe69117
--- /dev/null
+++ b/apps/team/features/messaging/selector/messaging_AMF_Poll_Selector.mxml
@@ -0,0 +1,100 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	creationComplete="creationCompleteHandler();">
+    
+    <!-- This example shows how to use selectors -->
+    
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();"/>        	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();"/>
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    <mx:Producer id="producer" 
+        destination="messaging_AMF_Poll"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_AMF_Poll"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"
+        selector="username = 'Foo'"/>
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			[Bindable]				                	
+			public var counter:int = 0;
+			
+			private var alternate:Boolean = false;			
+			
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;    
+                
+                // Alternate between sending the message with the header and without the header
+            	if (alternate)
+            		msg.headers["username"] = "Foo";				
+				alternate = !alternate;
+                     
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }                         
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/selector/messaging_HTTP_Poll_Selector.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/selector/messaging_HTTP_Poll_Selector.mxml b/apps/team/features/messaging/selector/messaging_HTTP_Poll_Selector.mxml
new file mode 100755
index 0000000..253af1d
--- /dev/null
+++ b/apps/team/features/messaging/selector/messaging_HTTP_Poll_Selector.mxml
@@ -0,0 +1,102 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	creationComplete="creationCompleteHandler();">
+    
+    <!-- This example shows how to use selectors -->
+    
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>    
+        	<mx:Label text="Producer"/>        
+        	<mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+			<mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/> 
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>	       	
+        </mx:HBox>        	
+        <mx:HBox>
+        	<mx:Label text="Consumer"/>
+			<mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>    
+			<mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+			<mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>			
+			<mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>                      
+        <mx:Button label="Clear" click='ta.text = ""'/>        
+        <mx:TextArea id="ta" width="100%" height="100%"/>           
+    </mx:Panel>
+    
+    <mx:Producer id="producer" 
+        destination="messaging_HTTP_Poll"
+        fault="faultHandler(event)"/>
+               
+    <mx:Consumer id="consumer" 
+        destination="messaging_HTTP_Poll"
+        fault="faultHandler(event)" 
+        message="messageHandler(event)"
+        selector="username = 'Foo'"/>
+                    
+    <mx:Script>
+        <![CDATA[	        
+    	    import mx.messaging.events.MessageFaultEvent;	    
+            import mx.messaging.events.MessageEvent;
+			import mx.messaging.messages.AsyncMessage;  
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+			import mx.logging.Log;
+	        import mx.logging.targets.TraceTarget;
+	                        
+			[Bindable]				                	
+			public var counter:int = 0;
+			
+			private var alternate:Boolean = false;			
+			
+    		private function creationCompleteHandler():void
+    		{
+                var target:TraceTarget = new TraceTarget();
+		        target.includeLevel = true;
+		        target.filters = ["mx.messaging.*", "mx.rpc.*"];
+		        Log.addTarget(target);            			
+    		}
+    		
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;    
+                
+                // Alternate between sending the message with the header and without the header
+            	if (alternate)
+            		msg.headers["username"] = "Foo";				
+				alternate = !alternate;
+                     
+                producer.send(msg);
+            }
+                                                            
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";  
+            }
+                       
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }                         
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_LongPoll_SendSubscribeConstraint.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_LongPoll_SendSubscribeConstraint.mxml b/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_LongPoll_SendSubscribeConstraint.mxml
new file mode 100755
index 0000000..bf102a8
--- /dev/null
+++ b/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_LongPoll_SendSubscribeConstraint.mxml
@@ -0,0 +1,104 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+    creationComplete="creationCompleteHandler();">
+
+    <!-- An example that uses a destination protected by send and subscribe constraint -->
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+            <mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:Button label="Logout" click="consumer.logout()" enabled="{consumer.authenticated}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Reset credentials" click="setCredentials()"/>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer"
+        destination="messaging_AMF_LongPoll_SendSubscribeConstraint"
+        fault="faultHandler(event)"/>
+
+    <mx:Consumer id="consumer"
+        destination="messaging_AMF_LongPoll_SendSubscribeConstraint"
+        fault="faultHandler(event)"
+        message="messageHandler(event)"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter:int = 0;
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+
+                // Set credentials as the destination is protected by send and
+                // subscribe constraints.
+                setCredentials();
+            }
+
+            private function setCredentials():void
+            {
+                producer.setCredentials("sampleuser", "samplepassword");
+                consumer.setCredentials("sampleuser", "samplepassword");
+            }
+
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;
+                producer.send(msg);
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Poll_SendSubscribeConstraint.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Poll_SendSubscribeConstraint.mxml b/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Poll_SendSubscribeConstraint.mxml
new file mode 100755
index 0000000..a1c8fa5
--- /dev/null
+++ b/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Poll_SendSubscribeConstraint.mxml
@@ -0,0 +1,104 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+    creationComplete="creationCompleteHandler();">
+
+    <!-- An example that uses a destination protected by send and subscribe constraint -->
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+            <mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:Button label="Logout" click="consumer.logout()" enabled="{consumer.authenticated}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Reset credentials" click="setCredentials()"/>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer"
+        destination="messaging_AMF_Poll_SendSubscribeConstraint"
+        fault="faultHandler(event)"/>
+
+    <mx:Consumer id="consumer"
+        destination="messaging_AMF_Poll_SendSubscribeConstraint"
+        fault="faultHandler(event)"
+        message="messageHandler(event)"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter:int = 0;
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+
+                // Set credentials as the destination is protected by send and
+                // subscribe constraints.
+                setCredentials();
+            }
+
+            private function setCredentials():void
+            {
+                producer.setCredentials("sampleuser", "samplepassword");
+                consumer.setCredentials("sampleuser", "samplepassword");
+            }
+
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;
+                producer.send(msg);
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Stream_SendSubscribeConstraint.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Stream_SendSubscribeConstraint.mxml b/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Stream_SendSubscribeConstraint.mxml
new file mode 100755
index 0000000..6c1329b
--- /dev/null
+++ b/apps/team/features/messaging/sendsubscribeconstraint/messaging_AMF_Stream_SendSubscribeConstraint.mxml
@@ -0,0 +1,104 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+    creationComplete="creationCompleteHandler();">
+
+    <!-- An example that uses a destination protected by send and subscribe constraint -->
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+            <mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:Button label="Logout" click="consumer.logout()" enabled="{consumer.authenticated}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Reset credentials" click="setCredentials()"/>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer"
+        destination="messaging_AMF_Stream_SendSubscribeConstraint"
+        fault="faultHandler(event)"/>
+
+    <mx:Consumer id="consumer"
+        destination="messaging_AMF_Stream_SendSubscribeConstraint"
+        fault="faultHandler(event)"
+        message="messageHandler(event)"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter:int = 0;
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+
+                // Set credentials as the destination is protected by send and
+                // subscribe constraints.
+                setCredentials();
+            }
+
+            private function setCredentials():void
+            {
+                producer.setCredentials("sampleuser", "samplepassword");
+                consumer.setCredentials("sampleuser", "samplepassword");
+            }
+
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;
+                producer.send(msg);
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/sendsubscribeconstraint/messaging_HTTP_Poll_SendSubscribeConstraint.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/sendsubscribeconstraint/messaging_HTTP_Poll_SendSubscribeConstraint.mxml b/apps/team/features/messaging/sendsubscribeconstraint/messaging_HTTP_Poll_SendSubscribeConstraint.mxml
new file mode 100755
index 0000000..a375025
--- /dev/null
+++ b/apps/team/features/messaging/sendsubscribeconstraint/messaging_HTTP_Poll_SendSubscribeConstraint.mxml
@@ -0,0 +1,104 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+    creationComplete="creationCompleteHandler();">
+
+    <!-- An example that uses a destination protected by send and subscribe constraint -->
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+            <mx:Button label="Disconnect" click="producer.disconnect();" enabled="{producer.connected}"/>
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();" enabled="{!consumer.subscribed}"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();" enabled="{consumer.subscribed}"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();" enabled="{consumer.connected}"/>
+            <mx:Button label="Logout" click="consumer.logout()" enabled="{consumer.authenticated}"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Reset credentials" click="setCredentials()"/>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer"
+        destination="messaging_HTTP_Poll_SendSubscribeConstraint"
+        fault="faultHandler(event)"/>
+
+    <mx:Consumer id="consumer"
+        destination="messaging_HTTP_Poll_SendSubscribeConstraint"
+        fault="faultHandler(event)"
+        message="messageHandler(event)"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter:int = 0;
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+
+                // Set credentials as the destination is protected by send and
+                // subscribe constraints.
+                setCredentials();
+            }
+
+            private function setCredentials():void
+            {
+                producer.setCredentials("sampleuser", "samplepassword");
+                consumer.setCredentials("sampleuser", "samplepassword");
+            }
+
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;
+                producer.send(msg);
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/subtopic/messaging_AMF_Poll_Subtopic.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/subtopic/messaging_AMF_Poll_Subtopic.mxml b/apps/team/features/messaging/subtopic/messaging_AMF_Poll_Subtopic.mxml
new file mode 100755
index 0000000..a97b75b
--- /dev/null
+++ b/apps/team/features/messaging/subtopic/messaging_AMF_Poll_Subtopic.mxml
@@ -0,0 +1,103 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	creationComplete="creationCompleteHandler();">
+
+    <!-- This example shows how to use subtopics. Before using subtopics, need
+         to make sure that the following are set on the messaging destination:
+         <properties>
+             <server>
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+             </server>
+         </properties>
+     -->
+
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+            <mx:Button label="Disconnect" click="producer.disconnect();"/>
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer"
+        destination="messaging_AMF_Poll_Subtopic"
+        fault="faultHandler(event)"
+        subtopic="chat.newton"/>
+
+    <mx:Consumer id="consumer"
+        destination="messaging_AMF_Poll_Subtopic"
+        fault="faultHandler(event)"
+        message="messageHandler(event)"
+        subtopic="chat.newton"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter:int = 0;
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+            }
+
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;
+                producer.send(msg);
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/subtopic/messaging_AMF_Stream_MultiSubtopic.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/subtopic/messaging_AMF_Stream_MultiSubtopic.mxml b/apps/team/features/messaging/subtopic/messaging_AMF_Stream_MultiSubtopic.mxml
new file mode 100755
index 0000000..9e49f2b
--- /dev/null
+++ b/apps/team/features/messaging/subtopic/messaging_AMF_Stream_MultiSubtopic.mxml
@@ -0,0 +1,131 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	creationComplete="creationCompleteHandler();">
+
+    <!-- This example shows how to use a MultiTopicConsumer to listen for multiple
+         subtopics. Before using subtopics, need
+         to make sure that the following are set on the messaging destination:
+         <properties>
+             <server>
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+             </server>
+         </properties>
+     -->
+
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter1} to subtopic1" click="sendMessage()"/>
+            <mx:Button label="Send Foo{counter2} to subtopic2" click="sendMessage(false)"/>
+            <mx:Button label="Disconnect1" click="producer1.disconnect();"/>
+            <mx:Button label="Disconnect2" click="producer2.disconnect();"/>
+            <mx:CheckBox label="Connected1?" selected="{producer1.connected}"/>
+            <mx:CheckBox label="Connected2?" selected="{producer2.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Add sub to subtopic1" click="consumer.addSubscription('chat.newton1');"/>
+            <mx:Button label="Add sub to subtopic2" click="consumer.addSubscription('chat.newton2');"/>
+            <mx:Button label="Remove sub to subtopic1" click="consumer.removeSubscription('chat.newton1');"/>
+            <mx:Button label="Remove sub to subtopic2" click="consumer.removeSubscription('chat.newton2');"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer1"
+        destination="messaging_AMF_Stream_Subtopic"
+        fault="faultHandler(event)"
+        subtopic="chat.newton1"/>
+
+    <mx:Producer id="producer2"
+        destination="messaging_AMF_Stream_Subtopic"
+        fault="faultHandler(event)"
+        subtopic="chat.newton2"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.MultiTopicConsumer;
+            import mx.messaging.Producer;
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter1:int = 0;
+
+            [Bindable]
+            public var counter2:int = 0;
+
+            [Bindable]
+            public var consumer:MultiTopicConsumer = new MultiTopicConsumer();
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+
+                consumer.destination = "messaging_AMF_Stream_Subtopic";
+                consumer.addEventListener(MessageEvent.MESSAGE, messageHandler);
+                consumer.addEventListener(MessageFaultEvent.FAULT, faultHandler);
+            }
+
+            private function sendMessage(firstProducer:Boolean = true):void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                if (firstProducer)
+                {
+                    msg.body = "Foo" + counter1++;
+                    producer1.send(msg);
+                }
+                else
+                {
+                    msg.body = "Foo" + counter2++;
+                    producer2.send(msg);
+                }
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/features/messaging/subtopic/messaging_HTTP_Poll_Subtopic.mxml
----------------------------------------------------------------------
diff --git a/apps/team/features/messaging/subtopic/messaging_HTTP_Poll_Subtopic.mxml b/apps/team/features/messaging/subtopic/messaging_HTTP_Poll_Subtopic.mxml
new file mode 100755
index 0000000..53f897f
--- /dev/null
+++ b/apps/team/features/messaging/subtopic/messaging_HTTP_Poll_Subtopic.mxml
@@ -0,0 +1,103 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	creationComplete="creationCompleteHandler();">
+
+    <!-- This example shows how to use subtopics. Before using subtopics, need
+         to make sure that the following are set on the messaging destination:
+         <properties>
+             <server>
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+             </server>
+         </properties>
+    -->
+
+    <mx:Panel id="mainPanel" height="100%" width="100%">
+        <mx:HBox>
+            <mx:Label text="Producer"/>
+            <mx:Button label="Send Foo{counter}" click="sendMessage()"/>
+            <mx:Button label="Disconnect" click="producer.disconnect();"/>
+            <mx:CheckBox label="Connected?" selected="{producer.connected}"/>
+        </mx:HBox>
+        <mx:HBox>
+            <mx:Label text="Consumer"/>
+            <mx:Button label="Subcribe" click="consumer.subscribe();"/>
+            <mx:Button label="Unsubscribe" click="consumer.unsubscribe();"/>
+            <mx:Button label="Disconnect" click="consumer.disconnect();"/>
+            <mx:CheckBox label="Connected?" selected="{consumer.connected}"/>
+            <mx:CheckBox label="Subscribed?" selected="{consumer.subscribed}"/>
+        </mx:HBox>
+        <mx:Button label="Clear" click='ta.text = ""'/>
+        <mx:TextArea id="ta" width="100%" height="100%"/>
+    </mx:Panel>
+
+    <mx:Producer id="producer"
+        destination="messaging_HTTP_Poll_Subtopic"
+        fault="faultHandler(event)"
+        subtopic="chat.newton"/>
+
+    <mx:Consumer id="consumer"
+        destination="messaging_HTTP_Poll_Subtopic"
+        fault="faultHandler(event)"
+        message="messageHandler(event)"
+        subtopic="chat.newton"/>
+
+    <mx:Script>
+        <![CDATA[
+            import mx.messaging.events.MessageFaultEvent;
+            import mx.messaging.events.MessageEvent;
+            import mx.messaging.messages.AsyncMessage;
+            import mx.messaging.Producer;
+            import mx.messaging.Consumer;
+
+            import mx.logging.Log;
+            import mx.logging.targets.TraceTarget;
+
+            [Bindable]
+            public var counter:int = 0;
+
+            private function creationCompleteHandler():void
+            {
+                var target:TraceTarget = new TraceTarget();
+                target.includeLevel = true;
+                target.filters = ["mx.messaging.*", "mx.rpc.*"];
+                Log.addTarget(target);
+            }
+
+            private function sendMessage():void
+            {
+                var msg:AsyncMessage = new AsyncMessage();
+                msg.body = "Foo" + counter++;
+                producer.send(msg);
+            }
+
+            private function messageHandler(event:MessageEvent):void
+            {
+                ta.text += "Consumer received message: "+ event.message.body + "\n";
+            }
+
+            private function faultHandler(event:MessageFaultEvent):void
+            {
+                ta.text += "Received fault: " + event.faultString + "\n";
+            }
+        ]]>
+    </mx:Script>
+</mx:Application>
\ No newline at end of file