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:26 UTC

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

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples/main.css
----------------------------------------------------------------------
diff --git a/apps/samples/main.css b/apps/samples/main.css
new file mode 100755
index 0000000..5470820
--- /dev/null
+++ b/apps/samples/main.css
@@ -0,0 +1,138 @@
+/*
+ * 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.
+ */
+body {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	margin-top: 30px;
+	margin-top: 30px;
+	margin-left: 8%;
+	margin-right: 8%;
+	font-size: 0.8em;
+	color: #333333;
+	background-color:#FFFFFF;
+}
+
+h1, h2, h3 {
+	font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
+	font-weight: bold;
+}
+
+h1 {
+	font-weight: bold;
+	margin-top: 4px;
+	margin-bottom: 12px;
+	font-size: 2em;
+}
+
+h2 {
+	padding-top: 12px;
+	margin-bottom: 0px;
+	font-size: 1.6em;
+	color: #333333;
+}
+
+h3 {
+	margin-top: 0px;
+	font-size: 1.3em;
+	color: #004477;
+}
+
+h4 {
+	margin-top: 20px;
+	margin-bottom: 8px;
+	font-size: 12px;
+	color: #333333;
+}
+
+.item {
+	border-bottom: 1px solid #CCCCCC;
+	padding-top: 12px;
+	padding-bottom: 0px;
+}
+
+.highlight {
+	border: 1px solid #CCCCCC;
+	padding-top:10px;
+	padding-left:10px;
+	padding-right:10px;
+	padding-bottom:0px;
+	border-color: #2080B3;
+	margin-top:20px;
+	margin-bottom:20px;
+}
+
+.footer {
+	color: #666666;
+	margin-top: 20px;
+	font-size: 0.75em;
+}
+
+ul {
+	margin-top:8px;
+	margin-bottom:8px;
+}
+
+li {
+	padding-bottom:8px;
+}
+
+code {
+	color: #000099;
+	font-family: "Courier New", Courier, monospace;
+	font-size:1.1em;
+}
+
+img {
+	border: 0;
+}
+
+#col1{
+  	float:left;
+	width: 20%;
+	padding-right: 24px;
+}
+
+#col2{
+  float: left;
+  width: 55%;
+}
+
+#col3{
+	float: right;
+	width: 20%;
+	margin: 0px;
+	padding: 0px;
+}
+
+a:link {
+	color: #006699;
+	text-decoration: none;
+}
+
+a:visited {
+	text-decoration: none;
+	color: #006699;
+}
+
+a:hover {
+	text-decoration: underline;
+	color: #006699;
+}
+
+a:active {
+	text-decoration: none;
+	color: #006699;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples/testdrive.htm
----------------------------------------------------------------------
diff --git a/apps/samples/testdrive.htm b/apps/samples/testdrive.htm
new file mode 100755
index 0000000..072c404
--- /dev/null
+++ b/apps/samples/testdrive.htm
@@ -0,0 +1,254 @@
+<!--
+  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.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>BlazeDS Test Drive</title>
+<link href="main.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<h1>BlazeDS Test Drive</h1>
+<p>In this test drive, you  run a series of short sample applications that demonstrate the key features of BlazeDS. We walk you through the source code of each application to highlight the key points of  its implementation. The source code for the Test Drive applications is available in samples\WEB-INF\flex-src\flex-src.zip.
+    <ul>
+    <li>If you want to examine the source code using your favorite code editor, unzip <strong>flex-src.zip</strong> anywhere on your file system. </li>
+    <li>If you want to open the source code in Flex Builder, unzip <strong>flex-src.zip</strong> in the root  folder of your  Flex Builder workspace, and read <a href="fb-project-setup.htm">these instructions</a> to set up your Flex Builder projects. </li>
+  </ul>
+  </p>
+
+<div class="item">
+  <h3>Sample  1: Accessing data using HTTPService</h3>
+
+  <h4>Run the sample:</h4>
+  <ol>
+  <li>Click <a href="testdrive-httpservice/index.html">here</a> to run the application    </li>
+    <li>Click &quot;Get Data&quot;: The DataGrid is populated with XML data returned by catalog.jsp </li>
+    <li>Also notice some of the built-in DataGrid  features:</li>
+    <ul>
+      <li>Sortable columns  (click on a column header) </li>
+      <li>Moveable columns (click on a column header and, with the mouse button pressed, move the column to a new position) </li>
+    </ul>
+  </ol>
+  <h4>Code walkthrough:</h4>
+<p>Open main.mxml in the testdrive-httpservice/src directory  to look at the source code of the application.</p>
+<p>Using HTTPService, you can  send   HTTP requests to a server, and consume the response. Although the  HTTPService can be used to consume different types of responses, it is  typically used to consume XML. You can use the HTTPService with any kind of  server-side technology: JSP, Servlet, ASP, Ruby on Rails, PHP, etc. You specify  the target service in the <strong>url</strong> property of HTTPService.</p>
+<p>Flex provides sophisticated data binding capabilities. You can bind the value of a property to the  value of another property, or to an expression in general. In this example, the  dataProvider property of the DataGrid is bound (using the curly braces notation) to the  lastResult property of the HTTPService. </p>
+<p>HTTPService calls are asynchronous. The <strong>result</strong> event is triggered on the HTTPService  when the data becomes available to the client application. The <strong>fault</strong> event is triggered if an error occurs at the server-side, or if the network becomes unavailable. </p>
+<p>By default, the XML document retrieved from the server is  deserialized into an object graph. This allows you to navigate through the  result using the dot notation. You can also get the result as an XML document by specifying resultFormat=&quot;e4x&quot; on the  HTTPService. In that case, you can parse the document using <a href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">E4X</a> (ECMAScript for XML). </p>
+<p>The BlazeDS server is not required to use the HTTPService: By default, the application tries to connect  directly to the domain specified in the HTTPService url attribute. This  will work if one of the two conditions below is satisfied:</p>
+<ol>
+  <li>The domain specified in the HTTPService url attribute is the domain from where your application was downloaded. </li>
+  <li>A crossdomain.xml file granting access to your application's originating domain is available on the domain specified in the HTTPService url attribute.   More information on crossdomain.xml is available <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14213&sliceId=2">here</a>.</li>
+  </ol>
+<p>If you want your application to access services available on another domain without deploying a crossdomain.xml file on that  domain (for example,  because you may not own the target domain), you can set the <strong>useProxy</strong> attribute of the HTTPService to &quot;<strong>true</strong>&quot; like in this example. In this case, the request is sent to the BlazeDS proxy  which  makes the request to the target domain on the client application's behalf. This configuration also provides more control over the access to the service. For example, you may configure the proxy to require authentication before accessing a  service, log access to the service, etc. </p>
+<p>When using the proxy, you can specify a logical name in the HTTPService <strong>destination</strong> attribute instead of specifying a hardcoded value in the url attribute. You   then map this  logical name to an actual URL in WEB-INF\flex\proxy-config.xml. Open WEB-INF\flex\proxy-config.xml to see how the catalog destination is configured.</p>
+<h4>More info:</h4>
+<ul>
+  <li>Both HTTP and HTTPS are supported</li>
+</ul>
+</div>
+<br />
+<div class="item">
+  <h3>Sample 2: Accessing data using Web Services</h3>
+  <h4>Run the sample:</h4>
+<ol>
+  <li>Click <a href="testdrive-webservice/index.html">here</a> to run the application
+    <p>NOTE: Since this application accesses a live web service, you must have a connection to the internet to run it.</p></li>
+  <li>Click &quot;Get Data&quot;: The DataGrid is populated with  data returned by the MXNA 2.0 web service hosted on feeds.adobe.com. </li>
+  </ol>
+<h4>Code walkthrough:</h4>
+<p>Open main.mxml in the testdrive-webservice/src directory  to look at the source code of the application.</p><p>Access the wsdl file for the web service used in this example: </p>
+<ul>
+  <li><a href="http://feeds.adobe.com/webservices/mxna2.cfc?wsdl">http://feeds.adobe.com/webservices/mxna2.cfc?wsdl</a></li>
+
+</ul>
+<p>Using the WebService tag, you can  invoke SOAP-based web services deployed  in your application server or  on the internet. Objects returned by a web service are automatically deserialized into ActionScript objects. Similarly ActionScript objects passed as arguments to a web service operation are serialized according the  wsdl description.</p>
+<p>Notice that we also added DataGrid column definitions (using DataGridColumn) in this example.</p>
+<p>The BlazeDS server is not required to use the WebService: By default, the application tries to connect  directly to the domain specified in the WebService wsdl attribute. This  will work if one of the two conditions below is satisfied:</p>
+<ol>
+  <li>The domain specified in the WebService wsdl attribute is the domain from where your application was downloaded. </li>
+  <li>A crossdomain.xml file granting access to your application's originating domain is available on the domain specified in the WebService wsdl attribute.   More information on crossdomain.xml is available <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14213&amp;sliceId=2">here</a>.</li>
+</ol>
+<p>If you want your application to access services available on another domain without deploying a crossdomain.xml file on that  domain (for example,  because you may not own the target domain), you can set the <strong>useProxy</strong> attribute of the WebService to &quot;<strong>true</strong>&quot; like in this example. In this case, the request is sent to the BlazeDS proxy  which  makes the request to the target domain on the client application's behalf. This configuration also provides more control over the access to the service. For example, you may configure the proxy to require authentication before accessing a  service, log access to the service, etc. </p>
+<p>When using the proxy, you can specify a logical name in the WebService <strong>destination</strong> attribute instead of specifying a hardcoded value in the wsdl attribute. You   then map this  logical name to an actual URL in WEB-INF\flex\proxy-config.xml. Open WEB-INF\flex\proxy-config.xml to see how the ws-catalog destination is configured.</p>
+<h4>More Info:</h4>
+<ul>
+  <li>Flex supports both RPC-encoded and document-literal web services</li>
+  <li>Like HTTPService, WebService calls are asynchronous: You can code <strong>result</strong> and <strong>fault</strong> event handlers<br />
+  </li>
+  </ul>
+
+</div>
+<br />
+
+<div class="item">
+  <h3>Sample  3: Accessing data using Remoting </h3>
+  <h4>Run the sample:</h4>
+<ol>
+
+  <li>Click <a href="testdrive-remoteobject/index.html">here</a> to run the application</li>
+  <li>Click &quot;Get Data&quot;:  The DataGrid is populated with  data returned by the getProducts() method of the ProductService Java class. </li>
+  </ol>
+<h4>Code walkthrough:</h4>
+<p>Open main.mxml in the testdrive-remoteobject/src directory  to look at the source code of the application.</p>
+<p>Open the following files in a text editor to look at the source code for the server side  of the application: </p>
+<ul>
+  <li>{context-root}\WEB-INF\src\flex\samples\product\ProductService.java</li>
+
+  <li>{context-root}\WEB-INF\flex\remoting-config.xml</li>
+</ul>
+<p>Using RemoteObject, you can directly invoke methods of Java objects  deployed in your application server, and consume the return value. The return value can be a value of a primitive data type, an object, a  collection of objects, an object graph, etc.</p>
+<p>The value of the destination property of RemoteObject is a  logical name that is mapped to a fully qualified java class  in  remoting-config.xml.</p>
+<p>Java objects returned by server-side methods are deserialized into  either dynamic or typed ActionScript objects. In this example, we don't have an explicit ActionScript version of the Product Java class. Product objects are therefore deserialized into dynamic objects. In sample 5, we work with an explicit Product class in ActionScript. </p>
+<h4><strong>More info:</strong></h4>
+<ul>
+  <li>Like HTTPService and WebService, RemoteObject calls are asynchronous. You use the <strong>result</strong> and <strong>fault</strong> events of the RemoteObject to handle results and errors. &nbsp;<br />
+
+  </li>
+  </ul>
+
+</div>
+<br />
+
+<div class="item">
+  <h3>Sample  4: Flex Programming Model 101 </h3>
+  <h4>Run the sample:</h4>
+<ol>
+  <li>Click <a href="testdrive-101/index.html">here</a> to run the application</li>
+
+  <li>Click a phone in the list: the details for the selected phone appear in the right panel  </li>
+  </ol>
+<h4>Code walkthrough:</h4>
+<p>Open the following files in the testdrive-101/src directory to look at the source code of the application:</p>
+<ul>
+  <li>main.mxml</li>
+  <li>Thumb.mxml</li>
+  <li>ProductView.mxml</li>
+</ul>
+<p>Like in any other object-oriented programming language, a Flex application is made of a collection of classes. Using Flex, you can create classes using MXML or ActionScript. You typically create view classes in MXML, and Model and Controller classes in ActionScript. </p>
+<p>When you create an mxml file, you are actually creating a class. The root node of the mxml document indicates the class you extend. For example, creating a file named MasterDetail.mxml with an &lt;Application&gt; root node is equivalent to creating an ActionScript  class with the following signature:</p>
+<div class="code">
+  <p>public class MasterDetail extends Application { </p>
+  <p>} </p>
+</div>
+
+<p>Similarly,   creating a file named ProductView.mxml with a &lt;Panel&gt; root node is similar to creating a class with the following signature:</p>
+<div class="code">
+  <p>public class ProductView extends Panel { </p>
+  <p>} </p>
+</div>
+<p>Once you have defined a class, you can use it programatically or declaratively (as a tag in MXML) without the need for an additional descriptor file. Public properties are automatically available as tag attributes. For example, in MasterDetail.mxml, we define the &lt;ProductView&gt; tag and bind its product attribute to the selected item in the product list. </p>
+
+<p>Also notice the support for CSS style sheets. </p>
+
+</div>
+<br />
+
+<div class="item">
+  <h3>Sample 5: Updating Data</h3>
+  <h4>Run the sample: </h4>
+  <ol>
+  <li>Click <a href="testdrive-update/index.html">here</a> to run the application</li>
+
+  <li>Select a phone </li>
+  <li>Modify some data in the right panel. For example, the price. </li>
+  <li>Click Update: changes are sent to the back-end and persisted in the database by the ProductService class. </li>
+</ol>
+<h4>Code walkthrough:</h4>
+<p>Open the following files in the testdrive-update/src directory to look at the source code of the application:</p>
+<ul>
+  <li>main.mxml</li>
+  <li>ProductForm.mxml</li>
+  <li>Product.as</li>
+</ul>
+<p>Open the following files in a text editor to look at the source code for the server-side  of the application: </p>
+<ul>
+  <li>WEB-INF\src\flex\samples\product\ProductService.java</li>
+  <li>WEB-INF\flex\remoting-config.xml</li>
+</ul>
+<p>In Product.as we use the [RemoteClass(alias=&quot;flex.samples.product.Product&quot;)] annotation to map the ActionScript version of the Product class (Product.as) to the Java version (Product.java). As a result, Product objects returned by the getProducts() method of ProductService are deserialized into instances of the ActionScript Product class. Similarly, the instance of the ActionScript Product class  passed as an argument to the update method of the RemoteObject  is deserialized into an instance of the java version of the Product class at the server-side. </p>
+
+</div>
+<br />
+
+
+<div class="item">
+  <h3>Sample 6: Publish/Subscribe Messaging (Data Push Use Case)</h3>
+  <h4>Run the sample:</h4>
+  <p> In this example, a Java component publishes simulated real time values to a message queue. The Flex client subscribes to that queue and displays the values in real time. </p>
+  <ol>
+
+  <li>To start the feed component at the server-side, access:   <a href="testdrive-datapush/startfeed.jsp">testdrive-datapush/startfeed.jsp</a></li>
+  <li>Click <a href="testdrive-datapush/index.html">here</a> to run the application</li>
+  <li>Click the &quot;Subscribe to 'feed' destination&quot; button: Pushed values appear in the text field</li>
+  <li>To stop the feed when you are done experimenting with the application, access: <a href="testdrive-datapush/stopfeed.jsp">testdrive-datapush/stopfeed.jsp</a></li>
+  </ol>
+  <h4>Code walkthrough:</h4>
+<p>Open FeedClient.mxml in the testdrive-datapush/src directory  to look at the source code of the application.</p>
+  <p>Open the following files in a text editor to look at the source code for the server-side  of the application: </p>
+  <ul>
+    <li>WEB-INF\src\flex\samples\feed\Feed.Java</li>
+    <li>WEB-INF\flex\messaging-config.xml</li>
+  </ul>
+  <p>Flex supports publish/subscribe messaging through the BlazeDS Message Service. The Message Service manages a set of destinations that Flex clients can  publish and subsribe to. Flex provides two components, Producer and Consumer, that you use to respectively publish and subscribe to a destination. To subscribe to a destination, you use the subscribe() method of the Consumer class. When a message is published to a destination you subscribed to, the <strong>message</strong> event is triggered on the Consumer. </p>
+<p>In Feed.java, the BlazeDS Java API (MessageBroker, AsyncMessage) is used to publish messages to the destination. Another option to exchange messages between Flex and Java applications is to map destinations to JMS topics, essentially allowing a Flex client to publish and subscribe to JMS topics. In addition to JMS, the Message Service adapter architecture allows you to integrate with any kind of messaging system. </p>
+<p>Messaging destinations are configured in messaging-config.xml.  A key element of a destination configuration is the channel used to exchange data between the client and the server. Using BlazeDS, a messaging destination typically uses a streaming or a polling channel. </p>
+<ul>
+  <li>Using a streaming channel, the server response is left open until the channel connection is closed, allowing the   server to send down incremental chunks of data to the client. HTTP connections are not duplex. This means that a single streaming AMF or   HTTP channel actually requires two browser HTTP connections in order to send   data in both directions. One for the streamed response from the server to the   client that the channel hangs on to, and a second transient connection, drawn   from the browser pool only when data needs to be sent to the server. This   second transient connection is  immediately released back to the browser&rsquo;s   connection pool.</li>
+  <li>A polling channel can be configured with a simple interval or with a sever wait if data is not immediately   available (long polling). In either case,  each poll response completes the   request. Browser HTTP 1.1   connections are persistent by default, so the browser   will likely recycle existing HTTP connections to send subsequent poll requests   which lowers the overhead for polling.</li>
+</ul>
+<p>The streaming channel is the best option when near real time communication is required.</p>
+
+<p><strong>Difference between IE and FireFox:</strong></p>
+<p>Browsers have a limited number of connections that they can maintain per session. The maximum number of connections allowed, as well as the way sessions are handled are browser specific.</p>
+<p>In IE, the maximum number of connections per session is two, but if you start multiple IE instances from an operating system menu or shortcut, each instance is started in a different process and maintains its own session. However, if you start a new IE window using CTRL+N in an existing IE instance, that new window shares the same session as the IE instance that created it. In other words, you can have an unlimited number of applications using HTTP streaming to get data from the server as long as these applications are started in different IE processes. If you start multiple IE windows using CTRL+N, you are limited to the maximum number of connections per session (2). </p>
+<p>In Firefox, the maximum number of connections per session is eight. If you start multiple Firefox instances from an operating system menu or shortcut, all the instances are started in the same process and share a single session. Since the browser will typically need one connection for traditional HTTP requests, you can theoretically have a maximum of seven HTTP streaming connections with the server across all your browser instances. </p>
+<p>In either case, if the limit of connections per session is reached, the next attempt to connect to the server using a streaming channel will fail. BlazeDS provides an elegant fall back mechanism to handle such situations: The client always tries to connect using the first channel in the list of channles defined for the destination in messaging-config.xml. If that connection fails, the client automatically falls back to the next channel in the list. In this example, we defined the following default channelset for all the messaging destinations:</p>
+<p> &lt;default-channels&gt;<br />
+  &nbsp;&nbsp;&nbsp;&nbsp;&lt;channel ref=&quot;my-streaming-amf&quot;/&gt;<br />
+  &nbsp;&nbsp;&nbsp;&nbsp;&lt;channel ref=&quot;my-polling-amf&quot;/&gt;<br />
+  &lt;/default-channels&gt;<br />
+</p>
+<p>In other words, the client application will try to connect using a streaming channel first and will fall back to a polling channel if the streaming connection fails.</p>
+</div>
+<br />
+
+<div class="item">
+  <h3>Sample 7: Publish/Subscribe Messaging (Collaboration Use Case) </h3>
+  <h4>Run the sample:</h4>
+  <ol>
+
+  <li>Click <a href="testdrive-chat/index.html">here</a> to run the application</li>
+  <li>Open the same URL in another browser session to open a second instance of the chat application </li>
+  <li>Type a message in one of the chat clients and click &quot;Send&quot;: the message appears in the two chat clients </li>
+  </ol>
+<h4>Code walkthrough:</h4>
+<p>Open Chat.mxml in the testdrive-chat/src directory  to look at the source code of the application.</p>
+
+<p>Open the following files in a text editor to look at the source code for the server-side  of the application: </p>
+<ul>
+  <li>WEB-INF\flex\messaging-config.xml</li>
+</ul>
+<p> This sample builds on the concepts and APIs introduced in the previous example. To publish a message from a client, you use the send() method of the Producer class. </p>
+<p>The messaging and real time infrastructure available in BlazeDS enables  collaboration and data push applications to be built in a scalable and  reliable manner while preserving the lightweight web deployment model.</p>
+
+</div>
+<br />
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/activemq.xml
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/activemq.xml b/apps/team/WEB-INF/activemq.xml
new file mode 100755
index 0000000..2da9ae5
--- /dev/null
+++ b/apps/team/WEB-INF/activemq.xml
@@ -0,0 +1,36 @@
+<!--
+    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.
+-->
+<!-- START SNIPPET: xbean -->
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+  http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+  
+  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="false" persistent="false">
+  
+    <transportConnectors>
+      <transportConnector uri="tcp://localhost:61516"/>      
+    </transportConnectors>
+        
+  </broker>
+  
+</beans>
+<!-- END SNIPPET: xbean -->

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/flex/global.css
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/flex/global.css b/apps/team/WEB-INF/flex/global.css
new file mode 100755
index 0000000..f13e300
--- /dev/null
+++ b/apps/team/WEB-INF/flex/global.css
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ */
+/* global style sheet */

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/flex/messaging-config.xml
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/flex/messaging-config.xml b/apps/team/WEB-INF/flex/messaging-config.xml
new file mode 100755
index 0000000..86208b7
--- /dev/null
+++ b/apps/team/WEB-INF/flex/messaging-config.xml
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<service id="message-service"
+    class="flex.messaging.services.MessageService">
+
+    <adapters>
+        <adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" default="true" />
+        <adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter"/>
+        <adapter-definition id="customASAdapter" class="features.messaging.customadapter.CustomActionscriptAdapter"/>
+    </adapters>
+
+    <!-- Basic destinations -->
+
+    <!-- AMF -->
+    <destination id="messaging_AMF" channels="my-amf"/>
+    <destination id="messaging_AMF_Piggyback" channels="my-amf-piggyback"/>
+    <destination id="messaging_AMF_Poll" channels="my-amf-poll"/>
+    <destination id="messaging_AMF_LongPoll" channels="my-amf-longpoll"/>
+    <destination id="messaging_AMF_LongPoll2" channels="my-amf-longpoll2"/>
+    <destination id="messaging_AMF_SecureLongPoll" channels="my-amf-secure-longpoll"/>
+    <destination id="messaging_AMF_Stream" channels="my-amf-stream"/>
+
+    <destination id="messaging_AMF_fallback" channels="bad-amf-stream,my-amf-poll"/>
+
+    <!-- Secure AMF -->
+    <destination id="messaging_SecureAMF" channels="my-secure-amf"/>
+
+    <!-- HTTP -->
+    <destination id="messaging_HTTP" channels="my-http"/>
+    <destination id="messaging_HTTP_Piggyback" channels="my-http-piggyback"/>
+    <destination id="messaging_HTTP_Poll" channels="my-http-poll"/>
+    <destination id="messaging_HTTP_LongPoll" channels="my-http-longpoll"/>
+    <destination id="messaging_HTTP_Stream" channels="my-http-stream"/>
+
+    <destination id="messaging_HTTP_fallback" channels="bad-http-stream,my-http-poll"/>
+
+    <!-- Secure HTTP -->
+    <destination id="messaging_SecureHTTP" channels="my-secure-http"/>
+
+    <!-- Destinations for specific features -->
+
+    <!-- JMS - AMF -->
+    <destination id="messaging_AMF_Poll_JMS_Topic" channels="my-amf-poll">
+        <adapter ref="jms"/>
+        <properties>
+            <jms>
+                <connection-factory>java:comp/env/jms/flex/TopicConnectionFactory</connection-factory>
+                <destination-type>Topic</destination-type>
+                <destination-jndi-name>java:comp/env/jms/topic/flex/simpletopic</destination-jndi-name>
+                <message-type>javax.jms.TextMessage</message-type>
+            </jms>
+        </properties>
+    </destination>
+
+    <destination id="messaging_AMF_LongPoll_JMS_Topic" channels="my-amf-longpoll">
+        <adapter ref="jms"/>
+        <properties>
+            <jms>
+                <connection-factory>java:comp/env/jms/flex/TopicConnectionFactory</connection-factory>
+                <destination-type>Topic</destination-type>
+                <destination-jndi-name>java:comp/env/jms/topic/flex/simpletopic</destination-jndi-name>
+                <message-type>javax.jms.TextMessage</message-type>
+            </jms>
+        </properties>
+    </destination>
+
+    <destination id="messaging_AMF_Poll_JMS_Queue" channels="my-amf-poll">
+        <adapter ref="jms"/>
+        <properties>
+            <jms>
+                <connection-factory>java:comp/env/jms/flex/QueueConnectionFactory</connection-factory>
+                <destination-type>Queue</destination-type>
+                <destination-jndi-name>java:comp/env/jms/queue/flex/simplequeue</destination-jndi-name>
+                <message-type>javax.jms.TextMessage</message-type>
+            </jms>
+        </properties>
+    </destination>
+
+    <!-- JMS - HTTP -->
+    <destination id="messaging_HTTP_Poll_JMS_Topic" channels="my-http-poll">
+        <adapter ref="jms"/>
+        <properties>
+            <jms>
+                <connection-factory>java:comp/env/jms/flex/TopicConnectionFactory</connection-factory>
+                <destination-type>Topic</destination-type>
+                <destination-jndi-name>java:comp/env/jms/topic/flex/simpletopic</destination-jndi-name>
+                <message-type>javax.jms.TextMessage</message-type>
+            </jms>
+        </properties>
+    </destination>
+
+    <destination id="messaging_HTTP_Poll_JMS_Queue" channels="my-http-poll">
+        <adapter ref="jms"/>
+        <properties>
+            <jms>
+                <connection-factory>java:comp/env/jms/flex/QueueConnectionFactory</connection-factory>
+                <destination-type>Queue</destination-type>
+                <destination-jndi-name>java:comp/env/jms/queue/flex/simplequeue</destination-jndi-name>
+                <message-type>javax.jms.TextMessage</message-type>
+            </jms>
+        </properties>
+    </destination>
+
+    <!-- Send and subscribe constraint examples -->
+    <destination id="messaging_AMF_Poll_SendSubscribeConstraint" channels="my-amf-poll">
+        <properties>
+            <server>
+                <send-security-constraint ref="sample-user-custom"/>
+                <subscribe-security-constraint ref="sample-user-custom"/>
+            </server>
+        </properties>
+    </destination>
+
+    <destination id="messaging_AMF_LongPoll_SendSubscribeConstraint" channels="my-amf-longpoll">
+        <properties>
+            <server>
+                <send-security-constraint ref="sample-user-custom"/>
+                <subscribe-security-constraint ref="sample-user-custom"/>
+            </server>
+        </properties>
+    </destination>
+
+    <destination id="messaging_AMF_Stream_SendSubscribeConstraint" channels="my-amf-stream">
+        <properties>
+            <server>
+                <send-security-constraint ref="sample-user-custom"/>
+                <subscribe-security-constraint ref="sample-user-custom"/>
+            </server>
+        </properties>
+    </destination>
+
+    <destination id="messaging_HTTP_Poll_SendSubscribeConstraint" channels="my-http-poll">
+        <properties>
+            <server>
+                <send-security-constraint ref="sample-user-basic"/>
+                <subscribe-security-constraint ref="sample-user-basic"/>
+            </server>
+        </properties>
+    </destination>
+
+    <!-- Subtopics - AMF -->
+    <destination id="messaging_AMF_Poll_Subtopic" channels="my-amf-poll">
+        <properties>
+            <server>
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+            </server>
+        </properties>
+    </destination>
+
+    <destination id="messaging_AMF_Stream_Subtopic" channels="my-amf-stream">
+        <properties>
+            <server>
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+            </server>
+        </properties>
+    </destination>
+
+
+    <!-- Subtopics - HTTP -->
+    <destination id="messaging_HTTP_Poll_Subtopic" channels="my-http-poll">
+        <properties>
+            <server>
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+            </server>
+        </properties>
+    </destination>
+
+    <!-- Clustering - AMF
+    <destination id="messaging_AMF_Poll_Cluster" channels="my-amf-poll-for-cluster">
+      <properties>
+        <network>
+          <cluster ref="default-cluster"/>
+        </network>
+      </properties>
+    </destination>
+    -->
+
+    <!-- Clustering - SecureAMF
+    <destination id="messaging_SecureAMF_Poll_Cluster" channels="my-secure-amf-poll-for-cluster">
+      <properties>
+        <network>
+          <cluster ref="default-cluster"/>
+        </network>
+      </properties>
+    </destination>
+    -->
+
+    <!-- Clustering - HTTP
+    <destination id="messaging_HTTP_Poll_Cluster" channels="my-http-poll-for-cluster">
+      <properties>
+        <network>
+          <cluster ref="default-cluster"/>
+        </network>
+      </properties>
+    </destination>
+    -->
+
+    <!-- Clustering - SecureHTTP
+    <destination id="messaging_SecureHTTP_Poll_Cluster" channels="my-secure-http-poll-for-cluster">
+      <properties>
+        <network>
+          <cluster ref="default-cluster"/>
+        </network>
+      </properties>
+    </destination>
+    -->
+
+    <!-- BEGIN destinations for testing MessageBrokerFilters -->
+    <destination id="filteredChat" channels="my-amf-longpoll" />
+    <destination id="dev/null" channels="my-amf-longpoll" />
+    <!-- END destinations for testing MessageBrokerFilters -->
+
+    <!-- BEGIN - Throttling samples -->
+
+    <destination id="messaging_ThrottleInbound_PolicyError">
+        <properties>
+            <network>
+                <throttle-inbound policy="ERROR" max-frequency="8" max-client-frequency="4"/>
+            </network>
+        </properties>
+        <channels>
+            <channel ref="my-amf-poll"/>
+            <channel ref="my-amf-longpoll"/>
+            <channel ref="my-amf-stream"/>
+            <channel ref="my-http-poll"/>
+            <channel ref="my-http-longpoll"/>
+            <channel ref="my-http-stream"/>
+        </channels>
+    </destination>
+
+    <destination id="messaging_ThrottleInbound_PolicyIgnore">
+        <properties>
+            <network>
+                <throttle-inbound policy="IGNORE" max-frequency="8" max-client-frequency="4"/>
+            </network>
+        </properties>
+        <channels>
+            <channel ref="my-amf-poll"/>
+            <channel ref="my-amf-longpoll"/>
+            <channel ref="my-amf-stream"/>
+            <channel ref="my-http-poll"/>
+            <channel ref="my-http-longpoll"/>
+            <channel ref="my-http-stream"/>
+        </channels>
+    </destination>
+
+    <destination id="messaging_ThrottleOutbound_PolicyIgnore">
+        <properties>
+            <network>
+                <throttle-outbound policy="IGNORE" max-frequency="8" max-client-frequency="4"/>
+            </network>
+        </properties>
+        <channels>
+            <channel ref="my-amf"/>
+            <channel ref="my-amf-poll"/>
+            <channel ref="my-amf-longpoll"/>
+            <channel ref="my-amf-stream"/>
+            <channel ref="my-http"/>
+            <channel ref="my-http-poll"/>
+            <channel ref="my-http-longpoll"/>
+            <channel ref="my-http-stream"/>
+        </channels>
+    </destination>
+
+    <!-- END - Throttling samples -->
+
+    <!-- A sample that uses a custom adapter. -->
+    <destination id="messaging_CustomAdapter" channels="my-amf-stream">
+        <adapter ref="customASAdapter"/>
+    </destination>
+    
+</service>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/flex/proxy-config.xml
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/flex/proxy-config.xml b/apps/team/WEB-INF/flex/proxy-config.xml
new file mode 100755
index 0000000..60be1f4
--- /dev/null
+++ b/apps/team/WEB-INF/flex/proxy-config.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<service id="proxy-service" 
+    class="flex.messaging.services.HTTPProxyService">
+
+    <properties>
+        <connection-manager>
+            <max-total-connections>100</max-total-connections>
+            <default-max-connections-per-host>2</default-max-connections-per-host>
+        </connection-manager>
+        <allow-lax-ssl>true</allow-lax-ssl>
+    </properties>
+
+    <adapters>
+        <adapter-definition id="http-proxy" class="flex.messaging.services.http.HTTPProxyAdapter" default="true"/>
+        <adapter-definition id="soap-proxy" class="flex.messaging.services.http.SOAPProxyAdapter"/>
+    </adapters>
+
+    <default-channels>
+        <channel ref="my-http"/>
+        <channel ref="my-amf"/>
+    </default-channels>
+
+    <destination id="DefaultHTTP">
+    </destination>
+
+    <destination id="DefaultHTTPS">
+    </destination>
+
+</service>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/flex/remoting-config.xml
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/flex/remoting-config.xml b/apps/team/WEB-INF/flex/remoting-config.xml
new file mode 100755
index 0000000..4a28a1e
--- /dev/null
+++ b/apps/team/WEB-INF/flex/remoting-config.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<service id="remoting-service"
+    class="flex.messaging.services.RemotingService">
+
+    <adapters>
+        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
+    </adapters>
+
+    <default-channels>
+        <channel ref="my-amf"/>
+    </default-channels>
+
+    <destination id="remoting_AMF" channels="my-amf">
+        <properties>
+            <source>features.remoting.EchoService</source>
+        </properties>
+    </destination>
+
+    <destination id="remoting_AMFX" channels="my-http">
+        <properties>
+            <source>features.remoting.EchoService</source>
+        </properties>
+    </destination>
+
+    <!-- Destination that can be used to push messages from the server -->
+    <destination id="serverPushRO" channels="my-amf">
+        <properties>
+            <source>features.messaging.serverpush.ServerPushService</source>
+            <scope>application</scope>
+        </properties>
+    </destination>
+
+    <!-- A destination protected by a basic security constraint.
+         Security constraints are defined in services-config.xml
+    -->
+    <destination id="remoting_AMF_SecurityConstraint_Basic" channels="my-amf-loginafterdisconnect">
+        <properties>
+            <source>features.remoting.EchoService</source>
+        </properties>
+        <security>
+            <security-constraint ref="sample-user-basic"/>
+        </security>
+    </destination>
+
+    <!-- A destination protected by a custom security constraint.
+         Security constraints are defined in services-config.xml
+    -->
+    <destination id="remoting_AMF_SecurityConstraint_Custom" channels="my-amf-loginafterdisconnect">
+        <properties>
+            <source>features.remoting.EchoService</source>
+        </properties>
+        <security>
+            <security-constraint ref="sample-user-custom"/>
+        </security>
+    </destination>
+
+    <!-- Used by Flex clients to create destinations at runtime -->
+    <destination id="RuntimeConfigurator" channels="my-amf">
+        <properties>
+            <source>features.runtimeconfig.RuntimeConfigurator</source>
+        </properties>
+    </destination>
+
+    <!-- BEGIN destinations for testing MessageBrokerFilters -->
+    <destination id="filteredAck">
+        <properties>
+            <source>features.remoting.EchoService</source>
+        </properties>
+    </destination>
+
+    <destination id="filteredFault">
+        <properties>
+            <source>features.remoting.EchoService</source>
+        </properties>
+    </destination>
+    <!-- END destinations for testing MessageBrokerFilters -->
+
+</service>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/flex/services-config.xml
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/flex/services-config.xml b/apps/team/WEB-INF/flex/services-config.xml
new file mode 100755
index 0000000..42c2296
--- /dev/null
+++ b/apps/team/WEB-INF/flex/services-config.xml
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<services-config>
+
+    <services>
+        <service-include file-path="remoting-config.xml" />
+        <service-include file-path="proxy-config.xml" />
+        <service-include file-path="messaging-config.xml" />
+    </services>
+
+    <security>
+        <login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
+        <!-- Uncomment the correct app server
+        <login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss"/>
+        <login-command class="flex.messaging.security.JRunLoginCommand" server="JRun"/>
+        <login-command class="flex.messaging.security.WeblogicLoginCommand" server="Weblogic"/>
+        <login-command class="flex.messaging.security.WebSphereLoginCommand" server="WebSphere"/>
+        -->
+
+        <!-- Security constraints that are used by samples in features/security-constraints/ -->
+        <!-- Basic authentication -->
+        <security-constraint id="sample-user-basic">
+            <auth-method>Basic</auth-method>
+            <!-- Roles are defined by the application server.
+                In Tomcat, they are in conf/tomcat-users.xml
+            -->
+            <roles>
+                <role>sampleusers</role>
+            </roles>
+        </security-constraint>
+        <!-- Custom authentication -->
+        <security-constraint id="sample-user-custom">
+            <auth-method>Custom</auth-method>
+            <roles>
+                <role>sampleusers</role>
+            </roles>
+        </security-constraint>
+    </security>
+
+    <channels>
+
+        <!-- AMF -->
+
+        <!-- A regular AMF channel -->
+        <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <polling-enabled>false</polling-enabled>
+                <serialization>
+                    <ignore-property-errors>false</ignore-property-errors>
+                    <include-read-only>true</include-read-only>
+                    <!-- Enable this for remoting_AMF_Vector.mxml test to work -->
+                     <prefer-vectors>false</prefer-vectors>
+                      -->
+                </serialization>
+            </properties>
+        </channel-definition>
+
+        <!-- A secure AMF channel -->
+        <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
+            <endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
+            <properties>
+                <!--HTTPS requests on some browsers do not work when pragma "no-cache" are set-->
+                <add-no-cache-headers>false</add-no-cache-headers>
+            </properties>
+        </channel-definition>
+
+        <!-- A piggybacking AMF channel -->
+        <channel-definition id="my-amf-piggyback" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myamfpiggyback"
+            class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <polling-enabled>false</polling-enabled>
+                <piggybacking-enabled>true</piggybacking-enabled>
+            </properties>
+        </channel-definition>
+
+        <!-- A polling AMF channel -->
+        <channel-definition id="my-amf-poll" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myamfpoll"
+            class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>3</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+
+        <!-- A long polling AMF channel -->
+        <channel-definition id="my-amf-longpoll" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myamflongpoll"
+            class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <user-agent-settings>
+                    <!--
+                    <user-agent match-on="MSIE" max-streaming-connections-per-session=""1 kickstart-bytes="2048"/>
+                    <user-agent match-on="Firefox" max-streaming-connections-per-session="1" kickstart-bytes="0"/>
+                     -->
+                    <!-- MSIE 5, 6, 7 limit is 2. -->
+                    <user-agent match-on="MSIE" max-persistent-connections-per-session="1" kickstart-bytes="2048"/>
+                    <!-- MSIE 8 limit is 6. -->
+                    <user-agent match-on="MSIE 8" max-persistent-connections-per-session="5" kickstart-bytes="2048"/>
+                    <!-- Firefox 1, 2 limit is 2. -->
+                    <user-agent match-on="Firefox" max-persistent-connections-per-session="1"/>
+                    <!-- Firefox 3 limit is 6. -->
+                    <user-agent match-on="Firefox/3" max-persistent-connections-per-session="5"/>
+                    <!-- Safari 3, 4 limit is 4. -->
+                    <user-agent match-on="Safari" max-persistent-connections-per-session="3"/>
+                    <!-- Chrome 0, 1, 2 limit is 6. -->
+                    <user-agent match-on="Chrome" max-persistent-connections-per-session="5"/>
+                    <!-- Opera 7, 9 limit is 4.-->
+                    <user-agent match-on="Opera" max-persistent-connections-per-session="3"/>
+                    <!-- Opera 8 limit is 8. -->
+                    <user-agent match-on="Opera 8" max-persistent-connections-per-session="7"/>
+                    <!-- Opera 10 limit is 8. -->
+                    <user-agent match-on="Opera 9.8" max-persistent-connections-per-session="7"/>
+                </user-agent-settings>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>0</polling-interval-seconds>
+                <max-waiting-poll-requests>10</max-waiting-poll-requests>
+                <wait-interval-millis>-1</wait-interval-millis>
+                <client-wait-interval-millis>3000</client-wait-interval-millis>
+            </properties>
+        </channel-definition>
+
+        <!-- A second long polling AMF channel -->
+        <channel-definition id="my-amf-longpoll2" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myamflongpoll2"
+            class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <user-agent-settings>
+                    <user-agent match-on="Firefox" max-streaming-connections-per-session="4"/>
+                </user-agent-settings>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>0</polling-interval-seconds>
+                <max-waiting-poll-requests>10</max-waiting-poll-requests>
+                <wait-interval-millis>-1</wait-interval-millis>
+                <client-wait-interval-millis>3000</client-wait-interval-millis>
+            </properties>
+        </channel-definition>
+
+        <!-- A secure long polling AMF channel -->
+        <channel-definition id="my-amf-secure-longpoll" class="mx.messaging.channels.SecureAMFChannel">
+            <endpoint url="https://{server.name}:9400/{context.root}/messagebroker/mysecureamflongpoll"
+            class="flex.messaging.endpoints.SecureAMFEndpoint"/>
+            <properties>
+                <user-agent-settings>
+                    <user-agent match-on="Firefox" max-streaming-connections-per-session="4"/>
+                </user-agent-settings>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>0</polling-interval-seconds>
+                <max-waiting-poll-requests>10</max-waiting-poll-requests>
+                <wait-interval-millis>-1</wait-interval-millis>
+                <client-wait-interval-millis>3000</client-wait-interval-millis>
+            </properties>
+        </channel-definition>
+
+        <!-- A streaming AMF channel with default options left in -->
+        <channel-definition id="my-amf-stream" class="mx.messaging.channels.StreamingAMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myamfstream"
+            class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
+            <properties>
+                <connection-idle-timeout-minutes>2</connection-idle-timeout-minutes>
+                <max-streaming-clients>10</max-streaming-clients>
+                <server-to-client-heartbeat-millis>5000</server-to-client-heartbeat-millis>
+                <user-agent-settings>
+                    <user-agent match-on="MSIE" kickstart-bytes="2048" max-streaming-connections-per-session="1"/>
+                    <user-agent match-on="Firefox" kickstart-bytes="0" max-streaming-connections-per-session="4"/>
+                </user-agent-settings>
+            </properties>
+        </channel-definition>
+
+        <channel-definition id="bad-amf-stream" class="mx.messaging.channels.StreamingAMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/badamfstream"
+            class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
+            <properties>
+                <idle-timeout-minutes>0</idle-timeout-minutes>
+                <max-streaming-clients>10</max-streaming-clients>
+                <server-to-client-heartbeat-millis>5000</server-to-client-heartbeat-millis>
+                <user-agent-settings>
+                    <user-agent match-on="MSIE" kickstart-bytes="2048" max-streaming-connections-per-session="0"/>
+                    <user-agent match-on="Firefox" kickstart-bytes="0" max-streaming-connections-per-session="4"/>
+                </user-agent-settings>
+            </properties>
+        </channel-definition>
+
+        <!-- HTTP -->
+
+        <!-- A regular HTTP channel -->
+        <channel-definition id="my-http" class="mx.messaging.channels.HTTPChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/http" class="flex.messaging.endpoints.HTTPEndpoint"/>
+            <properties>
+                <polling-enabled>false</polling-enabled>
+            </properties>
+        </channel-definition>
+
+        <!-- A secure HTTP channel -->
+        <channel-definition id="my-secure-http" class="mx.messaging.channels.SecureHTTPChannel">
+            <endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/httpsecure" class="flex.messaging.endpoints.SecureHTTPEndpoint"/>
+            <properties>
+                <!--HTTPS requests on some browsers do not work when pragma "no-cache" are set-->
+                <add-no-cache-headers>false</add-no-cache-headers>
+            </properties>
+        </channel-definition>
+
+        <!-- A piggybacking HTTP channel -->
+        <channel-definition id="my-http-piggyback" class="mx.messaging.channels.HTTPChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myhttppiggyback"
+            class="flex.messaging.endpoints.HTTPEndpoint"/>
+            <properties>
+                <polling-enabled>false</polling-enabled>
+                <piggybacking-enabled>true</piggybacking-enabled>
+            </properties>
+        </channel-definition>
+
+        <!-- A polling HTTP channel -->
+        <channel-definition id="my-http-poll" class="mx.messaging.channels.HTTPChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myhttppoll"
+            class="flex.messaging.endpoints.HTTPEndpoint"/>
+            <properties>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>3</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+
+        <!-- A long polling HTTP channel -->
+        <channel-definition id="my-http-longpoll" class="mx.messaging.channels.HTTPChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myhttplongpoll"
+            class="flex.messaging.endpoints.HTTPEndpoint"/>
+            <properties>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>0</polling-interval-seconds>
+                <max-waiting-poll-requests>10</max-waiting-poll-requests>
+                <wait-interval-millis>-1</wait-interval-millis>
+                <client-wait-interval-millis>3000</client-wait-interval-millis>
+            </properties>
+        </channel-definition>
+
+        <!-- A streaming HTTP channel with default options left out -->
+        <channel-definition id="my-http-stream" class="mx.messaging.channels.StreamingHTTPChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/myhttpstream"
+            class="flex.messaging.endpoints.StreamingHTTPEndpoint"/>
+        </channel-definition>
+
+        <channel-definition id="bad-http-stream" class="mx.messaging.channels.StreamingHTTPChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/badhttpstream"
+            class="flex.messaging.endpoints.StreamingHTTPEndpoint"/>
+            <properties>
+                <max-streaming-clients>10</max-streaming-clients>
+                <server-to-client-heartbeat-millis>5000</server-to-client-heartbeat-millis>
+                <user-agent-settings>
+                    <user-agent match-on="MSIE" kickstart-bytes="2048" max-streaming-connections-per-session="0"/>
+                    <user-agent match-on="Firefox" kickstart-bytes="0" max-streaming-connections-per-session="0"/>
+                </user-agent-settings>
+            </properties>
+        </channel-definition>
+
+        <!-- Clustering -->
+
+        <!-- A polling AMF channel to be used in clustered destinations. This means
+             all tokens (server.name, server.port, etc.) removed from endpoint url
+        -->
+        <channel-definition id="my-amf-poll-for-cluster" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://localhost:8400/team/messagebroker/myamfpollforcluster"
+            class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>3</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+
+
+        <!-- A polling HTTP channel to be used in clustered destinations. This means
+             all tokens (server.name, server.port, etc.) removed from endpoint url
+        -->
+        <channel-definition id="my-http-poll-for-cluster" class="mx.messaging.channels.HTTPChannel">
+            <endpoint url="http://localhost:8400/team/messagebroker/myhttppollforcluster"
+            class="flex.messaging.endpoints.HTTPEndpoint"/>
+            <properties>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>3</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+
+        <!-- A secure polling AMF channel to be used in clustered destinations. This means
+             all tokens (server.name, server.port, etc.) removed from endpoint url
+        -->
+        <channel-definition id="my-secure-amf-poll-for-cluster" class="mx.messaging.channels.SecureAMFChannel">
+            <endpoint url="https://localhost:9400/team/messagebroker/mysecureamfpollforcluster"
+            class="flex.messaging.endpoints.SecureAMFEndpoint"/>
+            <properties>
+                <!--HTTPS requests on some browsers do not work when pragma "no-cache" are set-->
+                <add-no-cache-headers>false</add-no-cache-headers>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>3</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+
+        <!-- A secure polling HTTP channel to be used in clustered destinations. This means
+             all tokens (server.name, server.port, etc.) removed from endpoint url
+        -->
+        <channel-definition id="my-secure-http-poll-for-cluster" class="mx.messaging.channels.SecureHTTPChannel">
+            <endpoint url="https://localhost:9400/team/messagebroker/mysecurehttppollforcluster"
+            class="flex.messaging.endpoints.SecureHTTPEndpoint"/>
+            <properties>
+                <!--HTTPS requests on some browsers do not work when pragma "no-cache" are set-->
+                <add-no-cache-headers>false</add-no-cache-headers>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>3</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+
+        <!-- A regular AMF channel with login-after-disconnect enabled. This channel is used
+             by security-constraint samples.
+         -->
+        <channel-definition id="my-amf-loginafterdisconnect" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfloginafterdisconnect"
+                class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <polling-enabled>false</polling-enabled>
+                <login-after-disconnect>true</login-after-disconnect>
+            </properties>
+        </channel-definition>
+
+    </channels>
+
+    <logging>
+        <target class="flex.messaging.log.ConsoleTarget" level="Debug">
+            <properties>
+                <prefix>[BlazeDS] </prefix>
+                <includeDate>false</includeDate>
+                <includeTime>false</includeTime>
+                <includeLevel>true</includeLevel>
+                <includeCategory>true</includeCategory>
+            </properties>
+            <filters>
+            <!--
+                <pattern>Endpoint.FlexSession</pattern>
+                <pattern>Client.FlexClient</pattern>
+                <pattern>Client.MessageClient</pattern>
+                <pattern>Endpoint.*</pattern>
+                <pattern>Service.*</pattern>
+                <pattern>Configuration</pattern>
+            -->
+            </filters>
+        </target>
+    </logging>
+
+    <system>
+        <!--
+        <enforce-endpoint-validation>false</enforce-endpoint-validation>
+        -->
+        <manageable>true</manageable>
+        <!--
+        <redeploy>
+            <enabled>true</enabled>
+            <watch-interval>20</watch-interval>
+            <watch-file>{context.root}/WEB-INF/flex/services-config.xml</watch-file>
+            <watch-file>{context.root}/WEB-INF/flex/proxy-config.xml</watch-file>
+            <watch-file>{context.root}/WEB-INF/flex/remoting-config.xml</watch-file>
+            <watch-file>{context.root}/WEB-INF/flex/messaging-config.xml</watch-file>
+            <touch-file>{context.root}/WEB-INF/web.xml</touch-file>
+        </redeploy>
+         -->
+    </system>
+
+    <clusters>
+        <cluster id="default-cluster" properties="jgroups-tcp.xml" default="false" url-load-balancing="true"/>
+        <cluster id="udp-cluster" properties="jgroups-udp.xml" default="false" url-load-balancing="true"/>
+    </clusters>
+
+    <flex-client>
+    <!--
+        <timeout-minutes>45</timeout-minutes>
+        <heartbeat-interval-millis>5000</heartbeat-interval-millis>
+    -->
+    </flex-client>
+
+    <!-- Deserialization validator, uncomment the one you want to use -->
+    <validators>
+        <!--
+        <validator class="features.validators.deserialization.TestDeserializationValidator"/>
+        -->
+        <!--
+        <validator class="flex.messaging.validators.ClassDeserializationValidator">
+            <properties>
+                <disallow-classes>
+                </disallow-classes>
+                <allow-classes>
+                    <class name="java.*"/>
+                    <class name="\[Ljava.*"/>
+                    <class name="flex.*"/>
+                </allow-classes>
+             </properties>
+        </validator>
+        -->
+    </validators>
+</services-config>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/flex/user_classes/add_your_as_and_swc_files_here.txt
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/flex/user_classes/add_your_as_and_swc_files_here.txt b/apps/team/WEB-INF/flex/user_classes/add_your_as_and_swc_files_here.txt
new file mode 100755
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/team/WEB-INF/src/features/bootstrapservices/HTTPProxyBootstrapService.java
----------------------------------------------------------------------
diff --git a/apps/team/WEB-INF/src/features/bootstrapservices/HTTPProxyBootstrapService.java b/apps/team/WEB-INF/src/features/bootstrapservices/HTTPProxyBootstrapService.java
new file mode 100755
index 0000000..b0dbc38
--- /dev/null
+++ b/apps/team/WEB-INF/src/features/bootstrapservices/HTTPProxyBootstrapService.java
@@ -0,0 +1,254 @@
+/*
+ * 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 features.bootstrapservices;
+
+import flex.messaging.config.ConfigMap;
+import flex.messaging.services.AbstractBootstrapService;
+import flex.messaging.services.Service;
+import flex.messaging.services.http.ExternalProxySettings;
+import flex.messaging.services.http.HTTPConnectionManagerSettings;
+import flex.messaging.services.http.HTTPProxyAdapter;
+import flex.messaging.services.http.HTTPProxyDestination;
+import flex.messaging.services.http.SOAPProxyAdapter;
+
+/**
+ * This BootstrapService is used to dynamicaly create a HTTPProxy Service along 
+ * with its HTTPProxy Destinations without the need for any configuration files.
+ */
+public class HTTPProxyBootstrapService extends AbstractBootstrapService
+{
+    
+    /**
+     * Called by the <code>MessageBroker</code> after all of the server 
+     * components are created but right before they are started. This is 
+     * usually the place to create dynamic components.
+     * 
+     * @param id Id of the <code>AbstractBootstrapService</code>.
+     * @param properties Properties for the <code>AbstractBootstrapService</code>. 
+     */
+    public void initialize(String id, ConfigMap properties)
+    {
+        Service httpProxyService = createService();
+        createDestination1(httpProxyService);
+        createDestination2(httpProxyService);
+        createDestination3(httpProxyService);
+    }
+
+    /**
+     * Called by the <code>MessageBroker</code> as server starts. Useful for
+     * custom code that needs to run after all the components are initialized
+     * and the server is starting up. 
+     */    
+    public void start()
+    {
+        // No-op.
+    }
+
+    /**
+     * Called by the <code>MessageBroker</code> as server stops. Useful for 
+     * custom code that needs to run as the server is shutting down.
+     */
+    public void stop()
+    {
+        // No-op.
+    }
+
+    /*
+    <?xml version="1.0" encoding="UTF-8"?>
+    <service id="proxy-service" class="flex.messaging.services.HTTPProxyService">
+
+    <!-- Example proxy-config.xml -->
+
+    <properties>
+        <connection-manager>
+            <max-total-connections>100</max-total-connections>
+            <default-max-connections-per-host>2</default-max-connections-per-host>
+        </connection-manager>
+
+        <!-- Allow self-signed certificates; should not be used in production -->
+        <allow-lax-ssl>true</allow-lax-ssl>
+
+        <external-proxy>
+            <server>10.10.10.10</server>
+            <port>3128</port>
+            <nt-domain>mycompany</nt-domain>
+            <username>flex</username>
+            <password>flex</password>
+        </external-proxy>
+    </properties>
+
+    <!-- Server-side code that directly contacts a destination object or service -->
+    <adapters>
+        <!--
+           id: a unique id specifying the adapter
+           class: the Flex Enterprise class which implements the adapter
+             possible values: flex.messaging.services.http.HTTPProxyAdapter, flex.messaging.services.http.SOAPProxyAdapter
+           default: an optional attribute identifying the adapter to use when none is specified for the service
+        -->
+        <adapter-definition id="http-proxy" class="flex.messaging.services.http.HTTPProxyAdapter" default="true"/>
+        <adapter-definition id="soap-proxy" class="flex.messaging.services.http.SOAPProxyAdapter"/>
+    </adapters>
+
+    <default-channels>
+        <!--
+           Set the ref id of the default channels to use as transport for this service.
+           The channel is defined elsewhere using the channel-definition tag.
+        -->
+        <channel ref="my-http"/>
+        <channel ref="my-amf"/>
+    </default-channels>
+     */
+    private Service createService()
+    {
+        String serviceId = "proxy-service";
+        String serviceClass = "flex.messaging.services.HTTPProxyService";        
+        Service httpProxyService = broker.createService(serviceId, serviceClass);
+
+        // Note that <properties> are not set on the service since they are
+        // adapter related properties and will be configured at adapter level
+
+        httpProxyService.registerAdapter("http-proxy", "flex.messaging.services.http.HTTPProxyAdapter");
+        httpProxyService.registerAdapter("soap-proxy", "flex.messaging.services.http.SOAPProxyAdapter");
+        httpProxyService.setDefaultAdapter("http-proxy");
+
+        httpProxyService.addDefaultChannel("my-http");
+        httpProxyService.addDefaultChannel("my-amf");
+
+        return httpProxyService;
+    }
+
+    /*
+    <!-- Example default http destination -->
+    <destination id="DefaultHTTP">
+        <properties>
+            <dynamic-url>http://{server.name}:/{context.root}/</dynamic-url>
+        </properties>
+    </destination>
+
+    <!-- Example http proxy adapter destination -->
+    <destination id="myHTTPService">
+        <properties>
+            <!-- The endpoint available to the http proxy service -->
+            <url>http://www.mycompany.com/services/myservlet</url>
+
+            <!-- Wild card endpoints available to the http proxy services -->
+            <dynamic-url>http://www.mycompany.com/services/*</dynamic-url>
+        </properties>
+    </destination>
+     */
+    public void createDestination1(Service service)
+    {
+        String destinationId = "DefaultHTTP";
+        HTTPProxyDestination destination = (HTTPProxyDestination)service.createDestination(destinationId);
+
+        destination.addDynamicUrl("http://{server.name}:*/{context.root}/*");
+
+        String adapterId = "http-proxy";
+        HTTPProxyAdapter adapter = (HTTPProxyAdapter)destination.createAdapter(adapterId);
+        addProperties(adapter);
+    }
+
+    /*
+    <!-- Example http proxy adapter destination -->
+    <destination id="myHTTPService">
+        <properties>
+            <!-- The endpoint available to the http proxy service -->
+            <url>http://www.mycompany.com/services/myservlet</url>
+
+            <!-- Wild card endpoints available to the http proxy services -->
+            <dynamic-url>http://www.mycompany.com/services/*</dynamic-url>
+        </properties>
+    </destination>
+     */
+    private void createDestination2(Service service)
+    {
+        String destinationId = "myHTTPService";
+        HTTPProxyDestination destination = (HTTPProxyDestination)service.createDestination(destinationId);
+        
+        destination.setDefaultUrl("http://www.mycompany.com/services/myservlet");
+        destination.addDynamicUrl("http://www.mycompany.com/services/*");
+
+        String adapterId = "http-proxy";
+        HTTPProxyAdapter adapter = (HTTPProxyAdapter)destination.createAdapter(adapterId);
+        addProperties(adapter);
+    }
+
+    /*
+    <!-- Example soap proxy adapter destination -->
+    <destination id="echoSoapService">
+        <properties>
+            <!-- The location of the wsdl defined for soap proxy services -->
+            <wsdl>http://{server.name}:{server.port}/myapp/echo?wsdl</wsdl>
+
+            <!-- The soap endpoints available for access defined for soap proxy services -->
+            <soap>http://{server.name}:/myapp/echo</soap>
+        </properties>
+
+        <!-- A specific adapter ref for the destination may be defined -->
+        <adapter ref="soap-proxy"/>
+    </destination>     
+     */
+    private void createDestination3(Service service)
+    {
+        String destinationId = "echoSoapService";
+        HTTPProxyDestination destination = (HTTPProxyDestination)service.createDestination(destinationId);
+
+        destination.setDefaultUrl("http://{server.name}:{server.port}/myapp/echo?wsdl");
+        destination.addDynamicUrl("http://{server.name}:/myapp/echo");
+
+        String adapterId = "soap-proxy";
+        SOAPProxyAdapter adapter = (SOAPProxyAdapter)destination.createAdapter(adapterId);
+        addProperties(adapter);
+    }
+
+    /*
+    <properties>
+        <connection-manager>
+            <max-total-connections>100</max-total-connections>
+            <default-max-connections-per-host>2</default-max-connections-per-host>
+        </connection-manager>
+
+        <!-- Allow self-signed certificates; should not be used in production -->
+        <allow-lax-ssl>true</allow-lax-ssl>
+
+        <external-proxy>
+            <server>10.10.10.10</server>
+            <port>3128</port>
+            <nt-domain>mycompany</nt-domain>
+            <username>flex</username>
+            <password>flex</password>
+        </external-proxy>
+    </properties>     
+     */
+    private void addProperties(HTTPProxyAdapter adapter)
+    {
+        HTTPConnectionManagerSettings cms = new HTTPConnectionManagerSettings();
+        cms.setMaxTotalConnections(100);
+        cms.setDefaultMaxConnectionsPerHost(2);
+        adapter.setConnectionManagerSettings(cms);
+
+        adapter.setAllowLaxSSL(true);
+
+        ExternalProxySettings eps = new ExternalProxySettings();
+        eps.setProxyServer("10.10.10.10");
+        eps.setProxyPort(3128);
+        eps.setNTDomain("mycompany");
+        eps.setUsername("flex");
+        eps.setPassword("flex");
+        adapter.setExternalProxySettings(eps);
+    }
+}