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

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

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/flex/services-config.xml
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/flex/services-config.xml b/apps/samples-spring/WEB-INF/flex/services-config.xml
new file mode 100755
index 0000000..6898ed1
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/flex/services-config.xml
@@ -0,0 +1,122 @@
+<?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" />
+        <default-channels>
+           <channel ref="my-amf"/>
+        </default-channels>
+    </services>
+
+    <channels>
+
+        <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"/>
+        </channel-definition>
+
+        <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>
+                <add-no-cache-headers>false</add-no-cache-headers>
+            </properties>
+        </channel-definition>
+
+        <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
+            <properties>
+                <polling-enabled>true</polling-enabled>
+                <polling-interval-seconds>4</polling-interval-seconds>
+            </properties>
+        </channel-definition>
+        
+		<channel-definition id="my-longpolling-amf" class="mx.messaging.channels.AMFChannel">
+			<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amflongpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
+			<properties>
+				<polling-enabled>true</polling-enabled>
+				<polling-interval-seconds>5</polling-interval-seconds>
+				<wait-interval-millis>60000</wait-interval-millis>
+				<client-wait-interval-millis>1</client-wait-interval-millis>
+				<max-waiting-poll-requests>200</max-waiting-poll-requests>
+                <user-agent-settings>
+					<!-- MSIE 5, 6, 7 default max number of permanent HTTP connections is 2. -->
+					<user-agent match-on="MSIE" max-streaming-connections-per-session="1"/>
+					<!-- MSIE 8 max number is 6. -->
+					<user-agent match-on="MSIE 8" max-streaming-connections-per-session="5"/>
+					<!-- Firefox 1, 2 max number is 2. --> 
+					<user-agent match-on="Firefox" max-streaming-connections-per-session="1"/>
+					<!-- Firefox 3 max number is 6. -->
+					<user-agent match-on="Firefox/3" max-streaming-connections-per-session="5"/>
+					<!-- Safari 3, 4 max number is 4. -->  
+					<user-agent match-on="Safari" max-streaming-connections-per-session="3"/>
+					<!-- Chrome 0, 1, 2 max number is 6. -->
+					<user-agent match-on="Chrome" max-streaming-connections-per-session="5"/>
+					<!-- Opera 7, 9 max number is 4.-->
+					<user-agent match-on="Opera" max-streaming-connections-per-session="3"/>
+					<!-- Opera 8 max number is 8. -->  
+					<user-agent match-on="Opera 8" max-streaming-connections-per-session="7"/>
+					<!-- Opera 10 max number is 8. -->
+					<user-agent match-on="Opera 10" max-streaming-connections-per-session="7"/>
+                </user-agent-settings>
+			</properties>
+		</channel-definition>        
+		
+        <channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel">
+            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
+        </channel-definition>
+
+    </channels>
+    
+    <security>
+        <login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
+    	<security-constraint id="trusted">
+            <roles>
+                <role>ROLE_USER</role>
+                <role>ROLE_ADMIN</role>
+            </roles>
+        </security-constraint>
+    </security>
+
+    <logging>
+        <target class="flex.messaging.log.ConsoleTarget" level="Warn">
+            <properties>
+                <prefix>[BlazeDS] </prefix>
+                <includeDate>false</includeDate>
+                <includeTime>false</includeTime>
+                <includeLevel>false</includeLevel>
+                <includeCategory>false</includeCategory>
+            </properties>
+            <filters>
+                <pattern>Endpoint.*</pattern>
+                <pattern>Service.*</pattern>
+                <pattern>Configuration</pattern>
+            </filters>
+        </target>
+    </logging>
+
+    <system>
+        <redeploy>
+            <enabled>false</enabled>
+        </redeploy>
+    </system>
+
+</services-config>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/spring/app-config.xml
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/spring/app-config.xml b/apps/samples-spring/WEB-INF/spring/app-config.xml
new file mode 100755
index 0000000..e13cdb8
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/spring/app-config.xml
@@ -0,0 +1,58 @@
+<?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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:security="http://www.springframework.org/schema/security"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="
+		http://www.springframework.org/schema/beans
+		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+		http://www.springframework.org/schema/security
+		http://www.springframework.org/schema/security/spring-security-3.0.xsd
+		http://www.springframework.org/schema/context
+		http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+
+	<!-- 
+		Enable annotation-based configuration. companyService and industryService 
+		(used in the Company Manager sample) are configured using annotations. 
+		Open CompanyDAO.java and IndustryDAO.java for details. 
+	-->
+	<context:annotation-config />
+	<context:component-scan base-package="org.springframework.flex.samples" />
+
+	<!-- Implementation of ProductDAO using low-level JDBC -->
+	<bean id="productService" class="org.springframework.flex.samples.product.ProductDAO">
+		<constructor-arg ref="dataSource" />
+	</bean>
+
+	<!-- Implementation of ContactDAO using Spring's JdbcTemplate -->
+	<bean id="contactService" class="org.springframework.flex.samples.contact.ContactDAO">
+		<constructor-arg ref="dataSource" />
+	</bean>
+
+	<!-- A secured implementation of ProductDAO -->
+	<bean id="securedProductService" class="org.springframework.flex.samples.product.ProductDAO">
+		<constructor-arg ref="dataSource" />
+		<security:intercept-methods>
+			<security:protect method="find*" access="ROLE_USER" />
+		</security:intercept-methods>
+	</bean>
+
+</beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/spring/infrastructure-config.xml
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/spring/infrastructure-config.xml b/apps/samples-spring/WEB-INF/spring/infrastructure-config.xml
new file mode 100755
index 0000000..fa70dd2
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/spring/infrastructure-config.xml
@@ -0,0 +1,41 @@
+<?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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:amq="http://activemq.apache.org/schema/core"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+        http://www.springframework.org/schema/jdbc
+        http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
+ 
+    <!-- Create and populate the tables of the embedded database -->
+    <bean id="dbInit" class="org.springframework.flex.samples.util.DatabaseInitializer">
+        <constructor-arg ref="dataSource" />
+    </bean>
+
+    <!--
+        Simple Spring-managed DataSource for embedded HSQL database
+        The dbInit bean takes care of creating and populating the sample tables.
+    -->
+    <jdbc:embedded-database id="dataSource" type="HSQL" />
+
+</beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/spring/security-config.xml
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/spring/security-config.xml b/apps/samples-spring/WEB-INF/spring/security-config.xml
new file mode 100755
index 0000000..9c342a7
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/spring/security-config.xml
@@ -0,0 +1,43 @@
+<?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.
+
+-->
+<beans:beans xmlns="http://www.springframework.org/schema/security"
+	xmlns:beans="http://www.springframework.org/schema/beans" 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-3.0.xsd
+                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
+
+	<http entry-point-ref="entryPoint">
+	    <anonymous enabled="false"/>
+		<form-login default-target-url="/spring-blazeds-security-101/index.html" login-page="/login.jsp" />
+	</http>
+    
+	<beans:bean id="entryPoint" 
+	    class="org.springframework.flex.security3.FlexAuthenticationEntryPoint"/>
+	
+	<authentication-manager>
+	   <authentication-provider>
+	       <user-service>
+	        <user name="john" password="john" authorities="ROLE_USER" />
+            <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
+            <user name="guest" password="guest" authorities="ROLE_GUEST" />
+	       </user-service>
+	   </authentication-provider>
+	</authentication-manager>
+
+</beans:beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/.classpath
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/.classpath b/apps/samples-spring/WEB-INF/src/spring-samples/.classpath
new file mode 100755
index 0000000..18eb959
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/.classpath
@@ -0,0 +1,68 @@
+<?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.
+
+-->
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/aopalliance-1.0.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/aspectjrt-1.6.3.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/aspectjweaver-1.6.5.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/backport-util-concurrent-2.2.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/cglib-nodep-2.1_3.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/commons-codec-1.3.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/commons-httpclient-3.1.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/commons-logging-1.1.1.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/flex-messaging-common.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/flex-messaging-core.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/flex-messaging-opt.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/flex-messaging-proxy.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/flex-messaging-remoting.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/flex-rds-server.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/hsqldb.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/jackson-core-asl-1.0.0.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/jstl-1.1.2.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.aop-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.asm-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.aspects-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.beans-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.context.support-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.context-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.core-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.expression-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.flex-1.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.instrument.tomcat-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.instrument-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.integration-1.0.4.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.jdbc-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.jms-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.orm-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.oxm-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.test-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.transaction-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.web.portlet-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.web.servlet-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.web.struts-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/org.springframework.web-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/spring-security-config-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/spring-security-core-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/spring-security-web-3.0.3.RELEASE.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR/standard-1.1.2.jar"/>
+	<classpathentry kind="var" path="WEBAPP_LIB_DIR"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/.project
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/.project b/apps/samples-spring/WEB-INF/src/spring-samples/.project
new file mode 100755
index 0000000..ae8612b
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/.project
@@ -0,0 +1,35 @@
+<?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.
+
+-->
+<projectDescription>
+	<name>spring-samples</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/Company.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/Company.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/Company.java
new file mode 100755
index 0000000..92415a1
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/Company.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.company;
+
+import java.io.Serializable;
+
+import org.springframework.flex.samples.industry.Industry;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class Company implements Serializable {
+
+    static final long serialVersionUID = 103844514947365244L;
+
+    private int id;
+
+    private String name;
+
+    private String address;
+
+    private String city;
+
+    private String state;
+
+    private String zip;
+
+    private String phone;
+
+    private Industry industry;
+
+    public Company() {
+
+    }
+
+    public int getId() {
+        return this.id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return this.address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getCity() {
+        return this.city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getState() {
+        return this.state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getZip() {
+        return this.zip;
+    }
+
+    public void setZip(String zip) {
+        this.zip = zip;
+    }
+
+    public String getPhone() {
+        return this.phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Industry getIndustry() {
+        return this.industry;
+    }
+
+    public void setIndustry(Industry industry) {
+        this.industry = industry;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/CompanyDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/CompanyDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/CompanyDAO.java
new file mode 100755
index 0000000..4febd31
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/CompanyDAO.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.company;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.flex.remoting.RemotingDestination;
+import org.springframework.flex.remoting.RemotingExclude;
+import org.springframework.flex.remoting.RemotingInclude;
+import org.springframework.flex.samples.industry.IIndustryDAO;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
+import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+import org.springframework.stereotype.Service;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+@Service("companyService")
+@RemotingDestination(channels = { "my-amf" })
+public class CompanyDAO implements ICompanyDAO {
+
+    private final SimpleJdbcTemplate template;
+
+    private final SimpleJdbcInsert insertCompany;
+
+    private final IIndustryDAO industryDAO;
+
+    private final RowMapper<Company> rowMapper = new ParameterizedRowMapper<Company>() {
+
+        public Company mapRow(ResultSet rs, int rowNum) throws SQLException {
+            Company company = new Company();
+            company.setId(rs.getInt("id"));
+            company.setName(rs.getString("name"));
+            company.setAddress(rs.getString("address"));
+            company.setCity(rs.getString("city"));
+            company.setState(rs.getString("state"));
+            company.setZip(rs.getString("zip"));
+            company.setPhone(rs.getString("phone"));
+            company.setIndustry(CompanyDAO.this.industryDAO.findById(rs.getInt("industry_id")));
+            return company;
+        }
+    };
+
+    @Autowired
+    public CompanyDAO(DataSource dataSource, IIndustryDAO industryDAO) {
+        this.template = new SimpleJdbcTemplate(dataSource);
+        this.insertCompany = new SimpleJdbcInsert(dataSource).withTableName("COMPANY").usingGeneratedKeyColumns("ID");
+        this.industryDAO = industryDAO;
+    }
+
+    @RemotingInclude
+    public Company findById(int id) {
+        return this.template.queryForObject("SELECT * FROM company WHERE id=?", this.rowMapper, id);
+    }
+
+    @RemotingInclude
+    public List<Company> findAll() {
+        return this.template.query("SELECT * FROM company ORDER BY name", this.rowMapper);
+    }
+
+    @RemotingInclude
+    public List<Company> findByName(String name) {
+        return this.template.query("SELECT * FROM company WHERE UPPER(name) LIKE ? ORDER BY name", this.rowMapper, "%" + name.toUpperCase() + "%");
+    }
+
+    @RemotingInclude
+    public Company create(Company company) {
+        Map<String, Object> parameters = new HashMap<String, Object>();
+        parameters.put("name", company.getName());
+        parameters.put("address", company.getAddress());
+        parameters.put("city", company.getCity());
+        parameters.put("state", company.getState());
+        parameters.put("zip", company.getZip());
+        parameters.put("phone", company.getPhone());
+        parameters.put("industry_id", company.getIndustry().getId());
+        Number id = this.insertCompany.executeAndReturnKey(parameters);
+        company.setId(id.intValue());
+        return company;
+    }
+
+    @RemotingInclude
+    public boolean update(Company company) {
+        int count = this.template.update("UPDATE company SET name=?, address=?, city=?, state=?, zip=?, phone=?, industry_id=? WHERE id=?",
+            company.getName(), company.getAddress(), company.getCity(), company.getState(), company.getZip(), company.getPhone(),
+            company.getIndustry().getId(), company.getId());
+        return count == 1;
+    }
+
+    @RemotingExclude
+    public boolean remove(Company company) {
+        int count = this.template.update("DELETE FROM company WHERE id=?", company.getId());
+        return count == 1;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/ICompanyDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/ICompanyDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/ICompanyDAO.java
new file mode 100755
index 0000000..937d8f4
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/company/ICompanyDAO.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.company;
+
+import org.springframework.flex.samples.dao.IGenericDAO;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public interface ICompanyDAO extends IGenericDAO<Company> {
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/Contact.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/Contact.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/Contact.java
new file mode 100755
index 0000000..2bb839d
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/Contact.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.contact;
+
+import java.io.Serializable;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class Contact implements Serializable {
+
+    static final long serialVersionUID = 103844514947365244L;
+
+    private int id;
+
+    private String firstName;
+
+    private String lastName;
+
+    private String address;
+
+    private String city;
+
+    private String state;
+
+    private String zip;
+
+    private String phone;
+
+    private String email;
+
+    public Contact() {
+
+    }
+
+    public int getId() {
+        return this.id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getFirstName() {
+        return this.firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public String getLastName() {
+        return this.lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getAddress() {
+        return this.address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getCity() {
+        return this.city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getState() {
+        return this.state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getZip() {
+        return this.zip;
+    }
+
+    public void setZip(String zip) {
+        this.zip = zip;
+    }
+
+    public String getPhone() {
+        return this.phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getEmail() {
+        return this.email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/ContactDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/ContactDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/ContactDAO.java
new file mode 100755
index 0000000..b6a7fb6
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/ContactDAO.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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.
+ */
+ 
+ /*
+  * This file has been modified by Adobe (Adobe Systems Incorporated).
+  * Date: April 10, 2010
+  * Reason: Migrated the DB used for samples-spring web app to HSQL.
+  */
+
+package org.springframework.flex.samples.contact;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
+import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class ContactDAO implements IContactDAO {
+
+    private final SimpleJdbcTemplate template;
+
+    private final SimpleJdbcInsert insertContact;
+
+    private final RowMapper<Contact> rowMapper = new ParameterizedRowMapper<Contact>() {
+
+        public Contact mapRow(ResultSet rs, int rowNum) throws SQLException {
+            Contact contact = new Contact();
+            contact.setId(rs.getInt("id"));
+            contact.setFirstName(rs.getString("first_name"));
+            contact.setLastName(rs.getString("last_name"));
+            contact.setAddress(rs.getString("address"));
+            contact.setCity(rs.getString("city"));
+            contact.setState(rs.getString("state"));
+            contact.setZip(rs.getString("zip"));
+            contact.setPhone(rs.getString("phone"));
+            contact.setEmail(rs.getString("email"));
+            return contact;
+        }
+    };
+
+    public ContactDAO(DataSource dataSource) {
+        this.template = new SimpleJdbcTemplate(dataSource);
+        this.insertContact = new SimpleJdbcInsert(dataSource).withTableName("CONTACT").usingGeneratedKeyColumns("ID");
+    }
+
+    public List<Contact> findAll() {
+        return this.template.query("SELECT * FROM contact ORDER BY first_name, last_name", this.rowMapper);
+    }
+
+    public List<Contact> findByName(String name) {
+        return this.template.query("SELECT * FROM contact WHERE UPPER(CONCAT(CONCAT(first_name, ' '), last_name)) LIKE ? ORDER BY first_name, last_name",
+            this.rowMapper, "%" + name.toUpperCase() + "%");
+    }
+
+    public Contact findById(int id) {
+        return this.template.queryForObject("SELECT * FROM contact WHERE id=?", this.rowMapper, id);
+    }
+
+    public Contact create(Contact contact) {
+        Map<String, Object> parameters = new HashMap<String, Object>();
+        parameters.put("first_name", contact.getFirstName());
+        parameters.put("last_name", contact.getLastName());
+        parameters.put("address", contact.getAddress());
+        parameters.put("city", contact.getCity());
+        parameters.put("state", contact.getState());
+        parameters.put("zip", contact.getZip());
+        parameters.put("phone", contact.getPhone());
+        parameters.put("email", contact.getEmail());
+        Number id = this.insertContact.executeAndReturnKey(parameters);
+        contact.setId(id.intValue());
+        return contact;
+    }
+
+    public boolean update(Contact contact) {
+        int count = this.template.update(
+            "UPDATE contact SET first_name=?, last_name=?, address=?, city=?, state=?, zip=?, phone=?, email=? WHERE id=?", contact.getFirstName(),
+            contact.getLastName(), contact.getAddress(), contact.getCity(), contact.getState(), contact.getZip(), contact.getPhone(),
+            contact.getEmail(), contact.getId());
+        return count == 1;
+    }
+
+    public boolean remove(Contact contact) {
+        int count = this.template.update("DELETE FROM contact WHERE id=?", contact.getId());
+        return count == 1;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/IContactDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/IContactDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/IContactDAO.java
new file mode 100755
index 0000000..752c68b
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/contact/IContactDAO.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.contact;
+
+import org.springframework.flex.samples.dao.IGenericDAO;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public interface IContactDAO extends IGenericDAO<Contact> {
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/dao/IGenericDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/dao/IGenericDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/dao/IGenericDAO.java
new file mode 100755
index 0000000..83614e6
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/dao/IGenericDAO.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.dao;
+
+import java.util.List;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public interface IGenericDAO<T> {
+
+    public List<T> findAll();
+
+    public List<T> findByName(String name);
+
+    public T findById(int id);
+
+    public T create(T item);
+
+    public boolean update(T item);
+
+    public boolean remove(T item);
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IIndustryDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IIndustryDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IIndustryDAO.java
new file mode 100755
index 0000000..980ede7
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IIndustryDAO.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.industry;
+
+import org.springframework.flex.samples.dao.IGenericDAO;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public interface IIndustryDAO extends IGenericDAO<Industry> {
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/Industry.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/Industry.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/Industry.java
new file mode 100755
index 0000000..292c441
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/Industry.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.industry;
+
+import java.io.Serializable;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class Industry implements Serializable {
+
+    static final long serialVersionUID = 103844514947365244L;
+
+    private int id;
+
+    private String name;
+
+    public Industry() {
+
+    }
+
+    public int getId() {
+        return this.id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IndustryDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IndustryDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IndustryDAO.java
new file mode 100755
index 0000000..27ff898
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/industry/IndustryDAO.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.industry;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.flex.remoting.RemotingDestination;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
+import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+import org.springframework.stereotype.Service;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+@Service("industryService")
+@RemotingDestination(channels = { "my-amf" })
+public class IndustryDAO implements IIndustryDAO {
+
+    private final SimpleJdbcTemplate template;
+
+    private final SimpleJdbcInsert insertIndustry;
+
+    private final RowMapper<Industry> rowMapper = new ParameterizedRowMapper<Industry>() {
+
+        public Industry mapRow(ResultSet rs, int rowNum) throws SQLException {
+            Industry industry = new Industry();
+            industry.setId(rs.getInt("id"));
+            industry.setName(rs.getString("name"));
+            return industry;
+        }
+    };
+
+    public List<Industry> findAll() {
+        return this.template.query("SELECT * FROM industry ORDER BY name", this.rowMapper);
+    }
+
+    public List<Industry> findByName(String name) {
+        return this.template.query("SELECT * FROM industry WHERE UPPER(name) LIKE ? ORDER BY name", this.rowMapper, "%" + name.toUpperCase() + "%");
+    }
+
+    @Autowired
+    public IndustryDAO(DataSource dataSource) {
+        this.template = new SimpleJdbcTemplate(dataSource);
+        this.insertIndustry = new SimpleJdbcInsert(dataSource).withTableName("INDUSTRY").usingGeneratedKeyColumns("ID");
+    }
+
+    public Industry findById(int id) {
+        return this.template.queryForObject("SELECT * FROM industry WHERE id=?", this.rowMapper, id);
+    }
+
+    public Industry create(Industry industry) {
+        Map<String, Object> parameters = new HashMap<String, Object>();
+        parameters.put("name", industry.getName());
+        Number id = this.insertIndustry.executeAndReturnKey(parameters);
+        industry.setId(id.intValue());
+        return industry;
+    }
+
+    public boolean update(Industry industry) {
+        int count = this.template.update("UPDATE industry SET name=? WHERE id=?", industry.getName());
+        return count == 1;
+    }
+
+    public boolean remove(Industry industry) {
+        int count = this.template.update("DELETE FROM industry WHERE id=?", industry.getId());
+        return count == 1;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/integration/Counter.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/integration/Counter.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/integration/Counter.java
new file mode 100755
index 0000000..2360fcc
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/integration/Counter.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.integration;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * 
+ * @author Mark Fisher
+ * @author Jeremy Grelle
+ */
+public class Counter {
+
+    private volatile boolean running;
+
+    private final Log log = LogFactory.getLog(Counter.class);
+
+    private final AtomicInteger count = new AtomicInteger();
+
+    public Integer next() {
+        return this.running ? this.count.getAndIncrement() : null;
+    }
+
+    public void handle(String message) {
+        if ("start".equalsIgnoreCase(message)) {
+            this.running = true;
+        } else if ("stop".equalsIgnoreCase(message)) {
+            this.running = false;
+        } else {
+            try {
+                this.count.set(Integer.parseInt(message));
+            } catch (NumberFormatException e) {
+                this.log.info("UNSUPPORTED FLEX MESSAGE RECEIVED: " + message);
+            }
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/MarketFeed.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/MarketFeed.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/MarketFeed.java
new file mode 100755
index 0000000..cd5e4b5
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/MarketFeed.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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.
+ */
+
+  /*
+  * This file has been modified by Adobe (Adobe Systems Incorporated).
+  * Date: May 19, 2010
+  * Reason(s): Fixed the following issues:
+  * BLZ-533: unexploded war fails to deploy on weblogic
+  * 
+  * Date: Oct 7, 2010
+  * Reason(s): Fixed the following issues:
+  * BLZ-573: Cannot create a new company in Company Manager Sample in Spring BlazeDS Integration Test Drive
+  * BLZ-574: Error in creating new contact in insync05 sample in Spring BlazeDS Integration test drive
+  */
+
+package org.springframework.flex.samples.marketfeed;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.springframework.core.io.Resource;
+import org.springframework.flex.messaging.AsyncMessageCreator;
+import org.springframework.flex.messaging.MessageTemplate;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import flex.messaging.messages.AsyncMessage;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class MarketFeed {
+
+    private static FeedThread thread;
+
+    private final MessageTemplate template;
+
+    private final List<Stock> stockList;
+
+    public MarketFeed(MessageTemplate template, Resource filePath) throws IOException {
+        this.template = template;
+        this.stockList = getStocks(filePath.getInputStream());
+    }
+
+    public void start() {
+        if (thread == null) {
+            thread = new FeedThread(this.template, this.stockList);
+            thread.start();
+        }
+    }
+
+    public void stop() {
+        if (thread != null) {
+            thread.running = false;
+            thread = null;
+        }
+    }
+
+    private List<Stock> getStocks(InputStream fileInputStream) {
+
+        List<Stock> list = new ArrayList<Stock>();
+
+        try {
+            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+            factory.setValidating(false);
+            Document doc = factory.newDocumentBuilder().parse(fileInputStream);
+            NodeList stockNodes = doc.getElementsByTagName("stock");
+            int length = stockNodes.getLength();
+            Stock stock;
+            Node stockNode;
+            for (int i = 0; i < length; i++) {
+                stockNode = stockNodes.item(i);
+                stock = new Stock();
+                stock.setSymbol(getStringValue(stockNode, "symbol"));
+                stock.setName(getStringValue(stockNode, "company"));
+                stock.setLast(getDoubleValue(stockNode, "last"));
+                stock.setHigh(stock.getLast());
+                stock.setLow(stock.getLast());
+                stock.setOpen(stock.getLast());
+                stock.setChange(0);
+                list.add(stock);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return list;
+    }
+
+    private String getStringValue(Node node, String name) {
+        return ((Element) node).getElementsByTagName(name).item(0).getFirstChild().getNodeValue();
+    }
+
+    private double getDoubleValue(Node node, String name) {
+        return Double.parseDouble(getStringValue(node, name));
+    }
+
+    public static class FeedThread extends Thread {
+
+        public boolean running = false;
+
+        private final MessageTemplate template;
+
+        private final List<Stock> stockList;
+
+        private final Random random = new Random();
+
+        public FeedThread(MessageTemplate template, List<Stock> stockList) {
+            this.template = template;
+            this.stockList = stockList;
+        }
+
+        @Override
+        public void run() {
+            this.running = true;
+
+            int size = this.stockList.size();
+            int index = 0;
+
+            Stock stock;
+
+            while (this.running) {
+
+                stock = this.stockList.get(index);
+                simulateChange(stock);
+
+                index++;
+                if (index >= size) {
+                    index = 0;
+                }
+
+                sendStockUpdate(stock);
+
+                try {
+                    Thread.sleep(20);
+                } catch (InterruptedException e) {
+                }
+
+            }
+        }
+
+        private void sendStockUpdate(final Stock stock) {
+            template.send(new AsyncMessageCreator() {
+
+                public AsyncMessage createMessage() {
+                    AsyncMessage msg = template.createMessageForDestination("market-feed");
+                    msg.setHeader("DSSubtopic", stock.getSymbol());
+                    msg.setBody(stock);
+                    return msg;
+                }
+            });
+        }
+
+        private void simulateChange(Stock stock) {
+
+            double maxChange = stock.open * 0.005;
+            double change = maxChange - this.random.nextDouble() * maxChange * 2;
+            stock.change = change;
+            double last = stock.last + change;
+
+            if (last < stock.open + stock.open * 0.15 && last > stock.open - stock.open * 0.15) {
+                stock.last = last;
+            } else {
+                stock.last = stock.last - change;
+            }
+
+            if (stock.last > stock.high) {
+                stock.high = stock.last;
+            } else if (stock.last < stock.low) {
+                stock.low = stock.last;
+            }
+            stock.date = new Date();
+
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/Stock.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/Stock.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/Stock.java
new file mode 100755
index 0000000..bcef1f5
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/marketfeed/Stock.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.marketfeed;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class Stock implements Serializable {
+
+    private static final long serialVersionUID = -1763421100056755200L;
+
+    protected String symbol;
+
+    protected String name;
+
+    protected double low;
+
+    protected double high;
+
+    protected double open;
+
+    protected double last;
+
+    protected double change;
+
+    protected Date date;
+
+    public double getChange() {
+        return this.change;
+    }
+
+    public void setChange(double change) {
+        this.change = change;
+    }
+
+    public double getHigh() {
+        return this.high;
+    }
+
+    public void setHigh(double high) {
+        this.high = high;
+    }
+
+    public double getLast() {
+        return this.last;
+    }
+
+    public void setLast(double last) {
+        this.last = last;
+    }
+
+    public double getLow() {
+        return this.low;
+    }
+
+    public void setLow(double low) {
+        this.low = low;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public double getOpen() {
+        return this.open;
+    }
+
+    public void setOpen(double open) {
+        this.open = open;
+    }
+
+    public String getSymbol() {
+        return this.symbol;
+    }
+
+    public void setSymbol(String symbol) {
+        this.symbol = symbol;
+    }
+
+    public Date getDate() {
+        return this.date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/IProductDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/IProductDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/IProductDAO.java
new file mode 100755
index 0000000..6e3f6fc
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/IProductDAO.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.product;
+
+import org.springframework.flex.samples.dao.IGenericDAO;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public interface IProductDAO extends IGenericDAO<Product> {
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/Product.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/Product.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/Product.java
new file mode 100755
index 0000000..f53157b
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/Product.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.product;
+
+import java.io.Serializable;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class Product implements Serializable {
+
+    static final long serialVersionUID = 103844514947365244L;
+
+    private int productId;
+
+    private String name;
+
+    private String description;
+
+    private String image;
+
+    private String category;
+
+    private double price;
+
+    private int qty;
+
+    public Product() {
+
+    }
+
+    public Product(int productId, String name, String description, String image, String category, double price, int qty) {
+        this.productId = productId;
+        this.name = name;
+        this.description = description;
+        this.image = image;
+        this.category = category;
+        this.price = price;
+        this.qty = qty;
+    }
+
+    public String getCategory() {
+        return this.category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getDescription() {
+        return this.description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getImage() {
+        return this.image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public double getPrice() {
+        return this.price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    public int getProductId() {
+        return this.productId;
+    }
+
+    public void setProductId(int productId) {
+        this.productId = productId;
+    }
+
+    public int getQty() {
+        return this.qty;
+    }
+
+    public void setQty(int qty) {
+        this.qty = qty;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/ProductDAO.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/ProductDAO.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/ProductDAO.java
new file mode 100755
index 0000000..548f006
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/product/ProductDAO.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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 org.springframework.flex.samples.product;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.sql.DataSource;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class ProductDAO implements IProductDAO {
+
+    private final DataSource dataSource;
+
+    public ProductDAO(DataSource dataSource) {
+        this.dataSource = dataSource;
+    }
+
+    public List<Product> findAll() {
+        List<Product> list = new ArrayList<Product>();
+        Connection c = null;
+
+        try {
+            c = this.dataSource.getConnection();
+            Statement s = c.createStatement();
+            ResultSet rs = s.executeQuery("SELECT * FROM product ORDER BY name");
+            while (rs.next()) {
+                list.add(new Product(rs.getInt("id"), rs.getString("name"), rs.getString("description"), rs.getString("image"),
+                    rs.getString("category"), rs.getDouble("price"), rs.getInt("qty")));
+            }
+        } catch (SQLException e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+        return list;
+    }
+
+    public List<Product> findByName(String name) {
+        List<Product> list = new ArrayList<Product>();
+        Connection c = null;
+        try {
+            c = this.dataSource.getConnection();
+            PreparedStatement ps = c.prepareStatement("SELECT * FROM product WHERE UPPER(name) LIKE ? ORDER BY name");
+            ps.setString(1, "%" + name.toUpperCase() + "%");
+            ResultSet rs = ps.executeQuery();
+            while (rs.next()) {
+                list.add(new Product(rs.getInt("id"), rs.getString("name"), rs.getString("description"), rs.getString("image"),
+                    rs.getString("category"), rs.getDouble("price"), rs.getInt("qty")));
+            }
+        } catch (SQLException e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+        return list;
+    }
+
+    public Product findById(int id) {
+        Product product = new Product();
+        Connection c = null;
+        try {
+            c = this.dataSource.getConnection();
+            PreparedStatement ps = c.prepareStatement("SELECT * FROM product WHERE id=?");
+            ps.setInt(1, id);
+            ResultSet rs = ps.executeQuery();
+            if (rs.next()) {
+                product = new Product();
+                product.setProductId(rs.getInt("id"));
+                product.setName(rs.getString("name"));
+                product.setDescription(rs.getString("description"));
+                product.setImage(rs.getString("image"));
+                product.setCategory(rs.getString("category"));
+                product.setPrice(rs.getDouble("price"));
+                product.setQty(rs.getInt("qty"));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+        return product;
+    }
+
+    public Product create(Product product) {
+        Connection c = null;
+        PreparedStatement ps = null;
+        try {
+            c = this.dataSource.getConnection();
+            ps = c.prepareStatement("INSERT INTO product (name, description, image, category, price, qty) VALUES (?, ?, ?, ?, ?, ?)",
+                new String[] { "ID" });
+            ps.setString(1, product.getName());
+            ps.setString(2, product.getDescription());
+            ps.setString(3, product.getImage());
+            ps.setString(4, product.getCategory());
+            ps.setDouble(5, product.getPrice());
+            ps.setInt(6, product.getQty());
+            ps.executeUpdate();
+            ResultSet rs = ps.getGeneratedKeys();
+            rs.next();
+            // Update the id in the returned object. This is important as this value must be returned to the client.
+            int id = rs.getInt(1);
+            product.setProductId(id);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+        return product;
+    }
+
+    public boolean update(Product product) {
+        Connection c = null;
+        try {
+            c = this.dataSource.getConnection();
+            PreparedStatement ps = c.prepareStatement("UPDATE product SET name=?, description=?, image=?, category=?, price=?, qty=? WHERE id=?");
+            ps.setString(1, product.getName());
+            ps.setString(2, product.getDescription());
+            ps.setString(3, product.getImage());
+            ps.setString(4, product.getCategory());
+            ps.setDouble(5, product.getPrice());
+            ps.setInt(6, product.getQty());
+            ps.setInt(7, product.getProductId());
+            return ps.executeUpdate() == 1;
+        } catch (SQLException e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+
+    }
+
+    public boolean remove(Product product) {
+        Connection c = null;
+        try {
+            c = this.dataSource.getConnection();
+            PreparedStatement ps = c.prepareStatement("DELETE FROM product WHERE id=?");
+            ps.setInt(1, product.getProductId());
+            int count = ps.executeUpdate();
+            return count == 1;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/secured/Security3Helper.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/secured/Security3Helper.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/secured/Security3Helper.java
new file mode 100755
index 0000000..24bd1c0
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/secured/Security3Helper.java
@@ -0,0 +1,29 @@
+/*
+ * 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 org.springframework.flex.samples.secured;
+
+import java.util.Map;
+
+import org.springframework.flex.security3.AuthenticationResultUtils;
+
+
+public class Security3Helper {
+
+    public Map<String, Object> getAuthentication() {
+        return AuthenticationResultUtils.getAuthenticationResult();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/7a58369c/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/simplefeed/SimpleFeed.java
----------------------------------------------------------------------
diff --git a/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/simplefeed/SimpleFeed.java b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/simplefeed/SimpleFeed.java
new file mode 100755
index 0000000..939bdde
--- /dev/null
+++ b/apps/samples-spring/WEB-INF/src/spring-samples/src/org/springframework/flex/samples/simplefeed/SimpleFeed.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2002-2009 the original author or authors.
+ * 
+ * Licensed 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.
+ */
+
+ /*
+  * This file has been modified by Adobe (Adobe Systems Incorporated).
+  * Date: Oct 7, 2010
+  * Reason(s): Fixed the following issues:
+  * BLZ-573: Cannot create a new company in Company Manager Sample in Spring BlazeDS Integration Test Drive
+  * BLZ-574: Error in creating new contact in insync05 sample in Spring BlazeDS Integration test drive
+  */
+
+package org.springframework.flex.samples.simplefeed;
+
+import java.util.Random;
+
+import org.springframework.flex.messaging.MessageTemplate;
+
+/**
+ * 
+ * @author Christophe Coenraets
+ * @author Jeremy Grelle
+ */
+public class SimpleFeed {
+
+    private static FeedThread thread;
+
+    private final MessageTemplate template;
+
+    public SimpleFeed(MessageTemplate template) {
+        this.template = template;
+    }
+
+    public void start() {
+        if (thread == null) {
+            thread = new FeedThread(this.template);
+            thread.start();
+        }
+    }
+
+    public void stop() {
+        if (thread != null) {
+            thread.running = false;
+            thread = null;
+        }
+    }
+
+    public static class FeedThread extends Thread {
+
+        public boolean running = false;
+
+        private final MessageTemplate template;
+
+        public FeedThread(MessageTemplate template) {
+            this.template = template;
+        }
+
+        @Override
+        public void run() {
+            this.running = true;
+            Random random = new Random();
+            double initialValue = 35;
+            double currentValue = 35;
+            double maxChange = initialValue * 0.005;
+
+            while (this.running) {
+                double change = maxChange - random.nextDouble() * maxChange * 2;
+                double newValue = currentValue + change;
+
+                if (currentValue < initialValue + initialValue * 0.15 && currentValue > initialValue - initialValue * 0.15) {
+                    currentValue = newValue;
+                } else {
+                    currentValue -= change;
+                }
+
+                this.template.send("simple-feed", new Double(currentValue));
+
+                try {
+                    Thread.sleep(300);
+                } catch (InterruptedException e) {
+                }
+
+            }
+        }
+    }
+
+}