You are viewing a plain text version of this content. The canonical link for it is here.
Posted to stonehenge-commits@incubator.apache.org by be...@apache.org on 2009/09/30 16:21:14 UTC

svn commit: r820332 [1/7] - in /incubator/stonehenge/trunk/stocktrader/metro: ./ active_sts/ active_sts/etc/ active_sts/src/ active_sts/src/org/ active_sts/src/org/apache/ active_sts/src/org/apache/stonehenge/ active_sts/src/org/apache/stonehenge/stock...

Author: bendewey
Date: Wed Sep 30 16:21:08 2009
New Revision: 820332

URL: http://svn.apache.org/viewvc?rev=820332&view=rev
Log:
STONEHENGE-100 for Ming

Added:
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/build.xml
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-keystore.jks   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-truststore.jks   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/sun-jaxws.xml
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/web.xml
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/ActiveSTSAttributeProvider.java
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/STSImpl.java
    incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/UsernamePasswordValidator.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/BeanFactory.java
    incubator/stonehenge/trunk/stocktrader/metro/common/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountBean.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountProfileBean.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomMarketSummaryBean.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomOrderBean.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomQuoteBean.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/dal/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/dal/CustomerDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/dal/DAOException.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/dal/DAOFactory.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/dal/MarketSummaryDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/dal/OrderDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mssql/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mssql/AbstractMSSQLDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLCustomerDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLDAOFactory.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLMarketSummaryDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLOrderDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mysql/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mysql/AbstractMySQLDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLCustomerDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLDAOFactory.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLMarketSummaryDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLOrderDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/util/
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/util/StockTraderSQLUtil.java
    incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/util/StockTraderUtility.java
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/ConfigServiceDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/ConfigServiceDaoFactory.java
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/ConnectionProvider.java
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/impl/
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/impl/ConfigServiceDAOImpl.java
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/impl/MSSQLConnectionProvider.java
    incubator/stonehenge/trunk/stocktrader/metro/config_servcie_common_dal/src/org/apache/stonehenge/stocktrader/dal/impl/MySQLConnectionProvider.java
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/org/
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/org/apache/
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/org/apache/stonehenge/
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/org/apache/stonehenge/stocktrader/
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/org/apache/stonehenge/stocktrader/mssql/
    incubator/stonehenge/trunk/stocktrader/metro/config_service/test/org/apache/stonehenge/stocktrader/mssql/ConfigServiceDAOImplTest.java
    incubator/stonehenge/trunk/stocktrader/metro/documents/STS_Setup_manual.doc   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/documents/TLS_Setup_manual.docx   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/documents/TestCases.xls   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/documents/task.docx   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/etc/DB/
    incubator/stonehenge/trunk/stocktrader/metro/etc/DB/create_and_initial_table_configService.sql
    incubator/stonehenge/trunk/stocktrader/metro/etc/DB/insert_bssts_into_table_service.sql
    incubator/stonehenge/trunk/stocktrader/metro/etc/DB/insert_opssc_into_table_service.sql
    incubator/stonehenge/trunk/stocktrader/metro/etc/active_sts/
    incubator/stonehenge/trunk/stocktrader/metro/etc/active_sts/ActiveSTS.wsdl
    incubator/stonehenge/trunk/stocktrader/metro/etc/active_sts/sts_schema.xsd
    incubator/stonehenge/trunk/stocktrader/metro/etc/key/
    incubator/stonehenge/trunk/stocktrader/metro/etc/key/stonehenge-keystore.jks   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/etc/key/stonehenge-truststore.jks   (with props)
    incubator/stonehenge/trunk/stocktrader/metro/etc/metaData/
    incubator/stonehenge/trunk/stocktrader/metro/etc/metaData/Fedidp.xml
    incubator/stonehenge/trunk/stocktrader/metro/etc/metaData/Fedidpx.xml
    incubator/stonehenge/trunk/stocktrader/metro/etc/metaData/Fedsp.xml
    incubator/stonehenge/trunk/stocktrader/metro/etc/metaData/Fedspx.xml
    incubator/stonehenge/trunk/stocktrader/metro/etc/web.non-sts.xml
    incubator/stonehenge/trunk/stocktrader/metro/etc/web.sts.xml
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/BeanFactory.java
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/UsernamePasswordValidator.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/bean/Service.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/filter/STSFilter.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/service/SamlAssertionRequest.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/validator/
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/validator/PasswordValidator.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/validator/URLValidator.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/wsit-client.xml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/ConfigServiceSelector.xhtml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/configServiceAdd.xhtml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/configurationAdvanced.xhtml
Removed:
    incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/client-keystore.jks
    incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/client-truststore.jks
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/CustomAccountBean.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/CustomAccountProfileBean.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/CustomMarketSummaryBean.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/CustomOrderBean.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/CustomQuoteBean.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/dal/
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/mssql/
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/mysql/
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/util/
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/etc/server-keystore.jks
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/etc/server-truststore.jks
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/CustomOrderBean.java
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/CustomQuoteBean.java
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/dal/
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/mssql/
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/mysql/
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/util/StockTraderUtility.java
Modified:
    incubator/stonehenge/trunk/stocktrader/metro/README.txt
    incubator/stonehenge/trunk/stocktrader/metro/build.xml
    incubator/stonehenge/trunk/stocktrader/metro/business_service/build.xml
    incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/sun-jaxws.xml
    incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/web.xml
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeConfigServiceClient.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderConfig.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderServiceClient.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeServiceImpl.java
    incubator/stonehenge/trunk/stocktrader/metro/business_service/src/wsit-client.xml
    incubator/stonehenge/trunk/stocktrader/metro/config_service/src/org/apache/stonehenge/stocktrader/dal/ConfigServiceDAO.java
    incubator/stonehenge/trunk/stocktrader/metro/config_service/src/org/apache/stonehenge/stocktrader/dal/ConfigServiceDAOImpl.java
    incubator/stonehenge/trunk/stocktrader/metro/config_service/src/org/apache/stonehenge/stocktrader/services/ConfigServiceServiceImpl.java
    incubator/stonehenge/trunk/stocktrader/metro/documents/manual.doc
    incubator/stonehenge/trunk/stocktrader/metro/etc/as.xml
    incubator/stonehenge/trunk/stocktrader/metro/etc/build.properties
    incubator/stonehenge/trunk/stocktrader/metro/etc/business_service/TradeServiceWsas.wsdl
    incubator/stonehenge/trunk/stocktrader/metro/etc/business_service/wsdl0.wsdl
    incubator/stonehenge/trunk/stocktrader/metro/etc/config_service/ConfigService.wsdl
    incubator/stonehenge/trunk/stocktrader/metro/etc/order_processor/OrderProcessor.wsdl
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/build.xml
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/etc/sun-jaxws.xml
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/etc/web.xml
    incubator/stonehenge/trunk/stocktrader/metro/order_processor/src/org/apache/stonehenge/stocktrader/service/OrderProcessorImpl.java
    incubator/stonehenge/trunk/stocktrader/metro/resources/conf/TradeServiceConfig.properties
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/build.xml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/bean/ConfigServiceBean.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/bean/LoginBean.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/bean/RegisterBean.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/service/BusinessServiceClient.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/service/BusinessServiceConfig.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/service/ConfigServiceClient.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/src/org/apache/stonehenge/stocktrader/service/CookieManager.java
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/WEB-INF/faces-config.xml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/WEB-INF/web.xml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/account.xhtml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/configService.xhtml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/register.xhtml
    incubator/stonehenge/trunk/stocktrader/metro/trader_client/web/template.xhtml

Modified: incubator/stonehenge/trunk/stocktrader/metro/README.txt
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/README.txt?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/README.txt (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/README.txt Wed Sep 30 16:21:08 2009
@@ -5,9 +5,14 @@
 Structure of Stocktrader Directories
 -------------------------------------
 STOCKTRADER_HOME
+|__acitive_sts
 |__business_service
+|__common
+|__config_servcie_common_dal
+|__config_service
 |__order_processor
 |__trader_client
+|__resources
 |__etc
 |__lib
 	|__metro
@@ -19,6 +24,8 @@
 	|__commons
 	|__log4j
 	|__ant
+	|__agent
+	
 	
 
 Addresses to download the jar files
@@ -37,7 +44,9 @@
 
 facelets :
     jsf-facelets.jar
-	From: https://facelets.dev.java.net/files/documents/3448/84208/facelets-1.1.14.zip
+	From: https://facelets.dev.java.net/files/documents/3448/31241/facelets-1.0.14.zip
+	richfaces jar files
+	http://www.jboss.org/richfaces/download/stable.html(3.3.1GA) 
 	
 javaee :
     javaee.jar
@@ -57,7 +66,12 @@
  
 commons :
 	commons-logging-1.1.1.jar
-	From: http://labs.xiaonei.com/apache-mirror/commons/logging/binaries/commons-logging-1.1.1-bin.zip
+        commons-beanutils-1.8.0.jar
+        commons-codec-1.3.jar
+        commons-collections-3.2.1.jar
+        commons-digester-2.0.jar
+        commons-el.jar
+ 	From: http://commons.apache.org/
   
 ant :
 	ant-contrib
@@ -69,4 +83,8 @@
 
 mysql :
 	mysql-connector-java-5.1.7-bin.jar
-	From: http://dev.mysql.com/downloads/connector/j/5.1.html
\ No newline at end of file
+	From: http://dev.mysql.com/downloads/connector/j/5.1.html
+	
+agent :
+	openssoclientsdk.jar
+	From: http://download.java.net/general/opensso/nightly/20090801.1/j2eeagents/	
\ No newline at end of file

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/build.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/build.xml?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/active_sts/build.xml (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/active_sts/build.xml Wed Sep 30 16:21:08 2009
@@ -0,0 +1,93 @@
+<project basedir="." default="war" name="active_sts">
+    <import file="../etc/as.xml"/>
+
+    <property name="src.dir" value="${basedir}/src"/>
+    <property name="build.home" value="${basedir}/build"/>
+    <property name="build.classes.home" value="${build.home}/classes"/>
+    <property name="build.war.home" value="${build.home}/war"/>
+    <property name="common.src.dir" value="${basedir}/../common/src"/>
+
+    <property name="war.name" value="${ant.project.name}.war"/>
+    <property name="war.file" value="${build.war.home}/${war.name}"/>
+    <property name="lib.home" value="${basedir}/../lib"/>
+    <property name="lib.metro.home" value="${lib.home}/metro"/>
+    <property name="deploy.war" value="${deploy.dir}/${war.name}"/>
+
+    <path id="metro.classpath">
+        <pathelement location="${java.home}/../lib/tools.jar"/>
+        <fileset dir="${lib.metro.home}">
+            <include name="*.jar"/>
+        </fileset>
+    </path>
+
+    <path id="all.classpath">
+        <fileset dir="${lib.home}">
+            <include name="**/*.jar"/>
+        </fileset>
+    </path>
+
+    <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
+        <classpath refid="metro.classpath"/>
+    </taskdef>
+
+    <target name="setup" depends="clean">
+        <mkdir dir="${build.home}"/>
+        <mkdir dir="${build.classes.home}"/>
+        <mkdir dir="${build.war.home}"/>
+    </target>
+
+    <target name="clean">
+        <delete dir="${build.home}" includeEmptyDirs="true"/>
+    </target>
+
+    <target name="import-ws" depends="setup">
+        <wsimport debug="${debug}" verbose="${verbose}" keep="${keep}" destdir="${build.classes.home}"
+                  wsdl="${active.sts.wsdl}" extension="true">
+            <xjcarg value="-extension"/>
+        </wsimport>
+    </target>
+
+    <target name="build" depends="import-ws">
+        <javac fork="true" srcdir="${common.src.dir}" destdir="${build.classes.home}">
+            <classpath refid="all.classpath"/>
+        </javac>
+        <copy todir="${build.classes.home}">
+            <fileset dir="../resources/conf" includes="*.properties"/>
+        </copy>
+        <javac fork="true" srcdir="${config.service.common.dal.dir}" destdir="${build.classes.home}">
+            <classpath refid="all.classpath"/>
+        </javac>
+        <javac fork="true" srcdir="${src.dir}" destdir="${build.classes.home}">
+            <classpath refid="all.classpath"/>
+        </javac>
+    </target>
+
+    <target name="war" depends="build">
+        <war warfile="${war.file}" webxml="etc/web.xml">
+            <webinf dir="${basedir}/etc" includes="sun-jaxws.xml"/>
+            <zipfileset
+                    dir="${active.sts.binding.dir}"
+                    includes="*.wsdl, *.xsd"
+                    prefix="WEB-INF/wsdl"/>
+            <classes dir="${build.classes.home}"/>
+            <zipfileset dir="${basedir}/etc"
+                        includes="com.sun.xml.ws.api.security.trust.STSAttributeProvider"
+                        prefix="WEB-INF/classes/META-INF/services"/>
+            <classes dir="${build.classes.home}"/>
+            <lib dir="${lib.home}/commons"/>
+            <lib dir="${lib.home}/log4j"/>
+            <lib dir="${lib.home}/mssql"/>
+            <lib dir="${lib.home}/mysql"/>
+        </war>
+    </target>
+
+    <target name="deploy" depends="war">
+        <copy file="${war.file}" tofile="${deploy.war}"/>
+    </target>
+
+    <target name="undeploy">
+        <delete file="${deploy.dir}/${war.name}"/>
+    </target>
+
+    <target name="redeploy" depends="undeploy, deploy"/>
+</project>

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-keystore.jks
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-keystore.jks?rev=820332&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-keystore.jks
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-truststore.jks
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-truststore.jks?rev=820332&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/server-truststore.jks
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/sun-jaxws.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/sun-jaxws.xml?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/sun-jaxws.xml (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/sun-jaxws.xml Wed Sep 30 16:21:08 2009
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ 
+ Copyright 1997-2008 Sun Microsystems, Inc. All rights reserved.
+ 
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License").  You
+ may not use this file except in compliance with the License. You can obtain
+ a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
+ or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
+ language governing permissions and limitations under the License.
+ 
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
+ Sun designates this particular file as subject to the "Classpath" exception
+ as provided by Sun in the GPL Version 2 section of the License file that
+ accompanied this code.  If applicable, add the following below the License
+ Header, with the fields enclosed by brackets [] replaced by your own
+ identifying information: "Portions Copyrighted [year]
+ [name of copyright owner]"
+ 
+ Contributor(s):
+ 
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license."  If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above.  However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+-->
+
+<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
+
+    <endpoint
+        name="ActiveSTS"
+        implementation="org.apache.stonehenge.stocktrader.sts.STSImpl"
+        wsdl="ActiveSTS.wsdl"
+        service="{http://tempuri.org/}SecurityTokenService"
+        port="{http://tempuri.org/}ISecurityTokenService_Port"
+        binding="http://www.w3.org/2003/05/soap/bindings/HTTP/"
+        url-pattern="/ActiveSTS" />
+
+</endpoints>

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/web.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/web.xml?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/web.xml (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/active_sts/etc/web.xml Wed Sep 30 16:21:08 2009
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 1997-2008 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License").  You
+ may not use this file except in compliance with the License. You can obtain
+ a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
+ or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
+ Sun designates this particular file as subject to the "Classpath" exception
+ as provided by Sun in the GPL Version 2 section of the License file that
+ accompanied this code.  If applicable, add the following below the License
+ Header, with the fields enclosed by brackets [] replaced by your own
+ identifying information: "Portions Copyrighted [year]
+ [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license."  If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above.  However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+-->
+<web-app version="2.4" mlns="http://java.sun.com/xml/ns/j2ee">
+    <display-name>ActiveSTS</display-name>
+    <description>ActiveSTS</description>
+    <listener>
+        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
+    </listener>
+    <servlet>
+        <servlet-name>ActiveSTS</servlet-name>
+        <display-name>ActiveSTS</display-name>
+        <description>JAX-WS endpoint - ActiveSTS</description>
+        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>ActiveSTS</servlet-name>
+        <url-pattern>/ActiveSTS</url-pattern>
+    </servlet-mapping>
+    <session-config>
+        <session-timeout>60</session-timeout>
+    </session-config>
+</web-app>
+

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/ActiveSTSAttributeProvider.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/ActiveSTSAttributeProvider.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/ActiveSTSAttributeProvider.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/ActiveSTSAttributeProvider.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,161 @@
+package org.apache.stonehenge.stocktrader.sts;
+
+import com.sun.xml.ws.api.security.trust.Claims;
+import com.sun.xml.ws.api.security.trust.STSAttributeProvider;
+import com.sun.xml.wss.saml.Assertion;
+import com.sun.xml.wss.saml.AssertionUtil;
+import com.sun.xml.wss.saml.Attribute;
+import com.sun.xml.wss.saml.AttributeStatement;
+import com.sun.xml.wss.saml.AuthenticationStatement;
+import com.sun.xml.wss.saml.NameID;
+import com.sun.xml.wss.saml.NameIdentifier;
+import com.sun.xml.wss.saml.SAMLException;
+import org.w3c.dom.Element;
+
+import javax.security.auth.Subject;
+import javax.xml.namespace.QName;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class ActiveSTSAttributeProvider implements STSAttributeProvider {
+    public Map<QName, List<String>> getClaimedAttributes(Subject subject, String appliesTo, String tokenType, Claims claims) {
+        String name = null;
+        //get user name from subject
+        Set<Principal> principals = subject.getPrincipals();
+        if (principals != null) {
+            final Iterator iterator = principals.iterator();
+            while (iterator.hasNext()) {
+                String cnName = principals.iterator().next().getName();
+                int pos = cnName.indexOf("=");
+                name = cnName.substring(pos + 1);
+                break;
+            }
+        }
+
+        Map<QName, List<String>> attrs = new HashMap<QName, List<String>>();
+
+        // Add user id, map the URL to a list of users
+        QName nameIdQName = new QName("http://sun.com", STSAttributeProvider.NAME_IDENTIFIER);
+        List<String> nameIdAttrs = new ArrayList<String>();
+        nameIdAttrs.add(name);
+        attrs.put(nameIdQName, nameIdAttrs);
+
+        // Add attributes
+
+        // Check if it is the ActAs case
+        if ("true".equals(claims.getOtherAttributes().get(new QName("ActAs")))) {
+            // Get the ActAs token
+            Element token = null;
+            for (Object obj : claims.getSupportingProperties()) {
+                if (obj instanceof Subject) {
+                    token = (Element) ((Subject) obj).getPublicCredentials().iterator().next();
+                    break;
+                }
+            }
+
+            try {
+                if (token != null) {
+                    addAttributes(token, attrs, true);
+                }
+            } catch (Exception ex) {
+                throw new RuntimeException(ex);
+            }
+        } else {
+            // Add Role attribute
+            QName testQName = new QName("http://sun.com", "Role");
+            List<String> testAttrs = new ArrayList<String>();
+            testAttrs.add(getUserRole(name));
+            attrs.put(testQName, testAttrs);
+        }
+
+        return attrs;
+    }
+
+    private String getUserRole(String userName) {
+//        if ("alice".equals(userName)) {
+//            return "staff ";
+//        }
+//
+//        if ("bob".equals(userName)) {
+//            return "manager";
+//        }
+
+        return "staff";
+    }
+
+    private void addAttributes(Element token, Map<QName, List<String>> attrs, boolean isActAs) throws SAMLException {
+        // only handle the case of UsernameToken and SAML assertion here
+        String name = null;
+        String nameNS = null;
+        String tokenName = token.getLocalName();
+        if ("UsernameToken".equals(tokenName)) {
+            // an UsernameToken: get the user name
+            name = token.getElementsByTagName("Username").item(0).getFirstChild().getNodeValue();
+        } else if ("Assertion".equals(tokenName)) {
+            // an SAML assertion
+            Assertion assertion = AssertionUtil.fromElement(token);
+
+            com.sun.xml.wss.saml.Subject subject = null;
+            NameID nameID = null;
+
+            // SAML 2.0
+            try {
+                subject = assertion.getSubject();
+            } catch (Exception ex) {
+                subject = null;
+            }
+
+            if (subject != null) {
+                nameID = subject.getNameId();
+            }
+
+            List<Object> statements = assertion.getStatements();
+            for (Object s : statements) {
+                if (s instanceof AttributeStatement) {
+                    List<Attribute> samlAttrs = ((AttributeStatement) s).getAttributes();
+                    for (Attribute samlAttr : samlAttrs) {
+                        String attrName = samlAttr.getName();
+                        String attrNS = samlAttr.getNameFormat();
+                        List<Object> samlAttrValues = samlAttr.getAttributes();
+                        List<String> attrValues = new ArrayList<String>();
+                        for (Object samlAttrValue : samlAttrValues) {
+                            attrValues.add(((Element) samlAttrValue).getFirstChild().getNodeValue());
+                        }
+                        attrs.put(new QName(attrNS, attrName), attrValues);
+                    }
+
+                    // for SAML 1.0, 1.1
+                    if (subject == null) {
+                        subject = ((AttributeStatement) s).getSubject();
+                    }
+                } else if (s instanceof AuthenticationStatement) {
+                    subject = ((AuthenticationStatement) s).getSubject();
+                }
+            }
+
+            // Get the user identifier in the Subject:
+            if (nameID != null) {
+                //SAML 2.0 case
+                name = nameID.getValue();
+                nameNS = nameID.getNameQualifier();
+            } else {
+                // SAML 1.0, 1.1. case
+                NameIdentifier nameIdentifier = subject.getNameIdentifier();
+                if (nameIdentifier != null) {
+                    name = nameIdentifier.getValue();
+                    nameNS = nameIdentifier.getNameQualifier();
+                }
+            }
+
+            String idName = isActAs ? "ActAs" : NAME_IDENTIFIER;
+            List<String> nameIds = new ArrayList<String>();
+            nameIds.add(name);
+            attrs.put(new QName(nameNS, idName), nameIds);
+        }
+    }
+}

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/STSImpl.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/STSImpl.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/STSImpl.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/STSImpl.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,24 @@
+package org.apache.stonehenge.stocktrader.sts;
+
+import com.sun.xml.ws.security.trust.sts.BaseSTSImpl;
+
+import javax.annotation.Resource;
+import javax.xml.transform.Source;
+import javax.xml.ws.Provider;
+import javax.xml.ws.Service;
+import javax.xml.ws.ServiceMode;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.WebServiceProvider;
+import javax.xml.ws.handler.MessageContext;
+
+@ServiceMode(value=Service.Mode.PAYLOAD)
+@WebServiceProvider(wsdlLocation="WEB-INF/wsdl/sts.wsdl")
+public class STSImpl extends BaseSTSImpl implements Provider<Source>{
+    @Resource
+    protected WebServiceContext context;
+    
+    protected MessageContext getMessageContext() {        
+        MessageContext msgCtx = context.getMessageContext(); 
+        return msgCtx;
+    }  
+}

Added: incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/UsernamePasswordValidator.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/UsernamePasswordValidator.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/UsernamePasswordValidator.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/active_sts/src/org/apache/stonehenge/stocktrader/sts/UsernamePasswordValidator.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,27 @@
+package org.apache.stonehenge.stocktrader.sts;
+
+import com.sun.xml.wss.impl.callback.PasswordValidationCallback;
+import org.apache.stonehenge.stocktrader.dal.CustomerDAO;
+import org.apache.stonehenge.stocktrader.dal.DAOFactory;
+import org.apache.stonehenge.stocktrader.dal.DAOException;
+import org.apache.stonehenge.stocktrader.CustomAccountProfileBean;
+import org.apache.stonehenge.stocktrader.CustomAccountBean;
+
+public class UsernamePasswordValidator implements PasswordValidationCallback.PasswordValidator {
+    public boolean validate(PasswordValidationCallback.Request request) throws
+            PasswordValidationCallback.PasswordValidationException {
+        PasswordValidationCallback.PlainTextPasswordRequest plainTextRequest =
+                (PasswordValidationCallback.PlainTextPasswordRequest) request;
+        try {
+            CustomerDAO user = DAOFactory.getFacotry().getCustomerDAO();
+            CustomAccountProfileBean profileBean = user.getAccountProfileData(plainTextRequest.getUsername());
+            if (profileBean != null && profileBean.getPassword().equals(plainTextRequest.getPassword())) {
+                return true;
+            }
+        } catch (DAOException e) {
+            e.printStackTrace();
+            return false;
+        }
+        return false;
+    }
+}

Modified: incubator/stonehenge/trunk/stocktrader/metro/build.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/build.xml?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/build.xml (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/build.xml Wed Sep 30 16:21:08 2009
@@ -1,29 +1,42 @@
 <project basedir="." default="redeploy" name="">
     <import file="etc/as.xml"/>
+     <property name="web.dir" value="${basedir}/trader_client/web/WEB-INF"/>
+    <target name="NONSTS">
+        <echo message="copy non-sts web file"/>
+        <copy file="${basedir}/etc/web.non-sts.xml" tofile="${web.dir}/web.xml" overwrite="true"/>
+    </target>
 
+    <target name="STS">
+        <echo message="copy sts web file"/>
+         <copy file="${basedir}/etc/web.sts.xml" tofile="${web.dir}/web.xml" overwrite="true"/>
+    </target>
     <target name="deploy">
-    		<ant dir="config_service" target="deploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="business_service" target="deploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="order_processor" target="deploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="trader_client" target="deploy" inheritAll="false" inheritRefs="false"/>
+        <ant dir="config_service" target="deploy" inheritAll="false" inheritRefs="false"/>
+        <ant dir="active_sts" target="deploy" inheritAll="false" inheritRefs="false"/>
     </target>
 
     <target name="undeploy">
-    		<ant dir="config_service" target="undeploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="business_service" target="undeploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="order_processor" target="undeploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="trader_client" target="undeploy" inheritAll="false" inheritRefs="false"/>
+        <ant dir="config_service" target="undeploy" inheritAll="false" inheritRefs="false"/>
+        <ant dir="active_sts" target="undeploy" inheritAll="false" inheritRefs="false"/>
     </target>
 
     <target name="redeploy">
-    		<ant dir="config_service" target="redeploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="business_service" target="redeploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="order_processor" target="redeploy" inheritAll="false" inheritRefs="false"/>
         <ant dir="trader_client" target="redeploy" inheritAll="false" inheritRefs="false"/>
+        <ant dir="config_service" target="redeploy" inheritAll="false" inheritRefs="false"/>
+        <ant dir="active_sts" target="redeploy" inheritAll="false" inheritRefs="false"/>
     </target>
-    
+
     <target name="zippatch">
         <input message="Please Enter the name of the patch zip(exclude .zip suffix):" addproperty="zipfilename"/>
-        <zip destfile="../patches_for_stonehenge/${zipfilename}.zip" basedir="." excludes="**/*.svn, lib/**, **/build/**, **/*.ipr, **/*.iml, **/*.iws, .hg*, .hg/**" update="true"/>
+        <zip destfile="../${zipfilename}.zip" basedir="."
+             excludes="**/*.svn, lib/**, **/build/**, **/*.ipr, **/*.iml, **/*.iws, .hg*, .hg/**" update="true"/>
     </target>
 </project>
\ No newline at end of file

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/build.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/build.xml?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/build.xml (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/build.xml Wed Sep 30 16:21:08 2009
@@ -1,6 +1,6 @@
 <project basedir="." default="war" name="business_service">
     <import file="../etc/as.xml"/>
-    
+    <property name="common.src.dir" value="${basedir}/../common/src"/>
     <property name="src.dir" value="${basedir}/src"/>
     <property name="build.home" value="${basedir}/build"/>
     <property name="build.classes.home" value="${build.home}/classes"/>
@@ -10,9 +10,6 @@
     <property name="war.file" value="${build.war.home}/${war.name}"/>
     <property name="lib.home" value="${basedir}/../lib"/>
     <property name="lib.metro.home" value="${lib.home}/metro"/>
-    <property name="op.file" value="${build.classes.home}/TradeServiceConfig.properties"/>
-    <property name="client.keystore" value="${basedir}/etc/client-keystore.jks"/>
-    <property name="client.truststore" value="${basedir}/etc/client-truststore.jks"/>
 
     <path id="metro.classpath">
         <pathelement location="${java.home}/../lib/tools.jar"/>
@@ -82,12 +79,20 @@
         </copy>
         <copy file="${src.dir}/wsdl0.wsdl" todir="${build.classes.home}"/>
         <copy file="${src.dir}/wsit-client.xml" todir="${build.classes.home}"/>
-        <javac
-                fork="true"
-                srcdir="${src.dir}"
-                destdir="${build.classes.home}">
+        <javac fork="true" srcdir="${common.src.dir}" destdir="${build.classes.home}">
+            <classpath refid="all.classpath"/>
+        </javac>
+
+        <javac fork="true" srcdir="${config.service.common.dal.dir}" destdir="${build.classes.home}">
             <classpath refid="all.classpath"/>
         </javac>
+        
+        <javac fork="true" srcdir="${src.dir}" destdir="${build.classes.home}">
+            <classpath>
+                <dirset dir="${build.classes.home}"/>
+                <path refid="all.classpath"/>
+            </classpath>
+        </javac>
     </target>
 
     <target name="war" depends="build">
@@ -105,12 +110,8 @@
         </war>
     </target>
 
-    <target name="deploy-keystore">
-        <copy file="${client.keystore}" todir="${keystore.dir}"/>
-        <copy file="${client.truststore}" todir="${keystore.dir}"/>
-    </target>
-
     <target name="deploy" depends="war, deploy-keystore">
+        <!--<sun-appserv-deploy file="${war.file}" passwordfile=".password" asinstalldir="${as.home}"/>-->
         <copy file="${war.file}" todir="${deploy.dir}"/>
     </target>
 
@@ -119,4 +120,5 @@
     </target>
 
     <target name="redeploy" depends="undeploy, deploy"/>
+    
 </project>

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/sun-jaxws.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/sun-jaxws.xml?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/sun-jaxws.xml (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/sun-jaxws.xml Wed Sep 30 16:21:08 2009
@@ -47,4 +47,12 @@
         port="{http://tempuri.org/}BasicHttpBinding_ITradeServices"
         url-pattern="/TradeServiceWsas"/>
 
+    <endpoint
+        name="TradeServiceWsasSTS"
+        interface="org.tempuri.ITradeServices"
+        implementation="org.apache.stonehenge.stocktrader.services.TradeServiceImpl"
+        wsdl="TradeServiceWsas.wsdl"
+        service="{http://tempuri.org/}TradeServiceWsas"
+        port="{http://tempuri.org/}CustomBinding_ITradeServices"
+        url-pattern="/TradeServiceWsasSTS"/>
 </endpoints>

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/web.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/web.xml?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/web.xml (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/etc/web.xml Wed Sep 30 16:21:08 2009
@@ -53,6 +53,10 @@
     <servlet-name>stocktrader</servlet-name>
     <url-pattern>/TradeServiceWsas</url-pattern>
   </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>stocktrader</servlet-name>
+    <url-pattern>/TradeServiceWsasSTS</url-pattern>
+  </servlet-mapping>
   <session-config>
     <session-timeout>60</session-timeout>
   </session-config>

Added: incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/BeanFactory.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/BeanFactory.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/BeanFactory.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/BeanFactory.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,127 @@
+package org.apache.stonehenge.stocktrader;
+
+import com.ibm.websphere.samples.trade.*;
+
+import java.util.List;
+import java.util.ArrayList;
+
+public class BeanFactory {
+    public AccountDataBean toAccount(CustomAccountBean bean) {
+        AccountDataBean newBean = new AccountDataBean();
+        newBean.setAccountID(bean.getAccountID());
+        newBean.setProfileID(bean.getProfileID());
+        newBean.setBalance(bean.getBalance());
+        newBean.setCreationDate(bean.getCreationDate());
+        newBean.setLastLogin(bean.getLastLogin());
+        newBean.setLoginCount(bean.getLoginCount());
+        newBean.setLogoutCount(bean.getLogoutCount());
+        newBean.setOpenBalance(bean.getOpenBalance());
+
+        return newBean;
+    }
+
+    public AccountProfileDataBean toAccountProfile(CustomAccountProfileBean bean) {
+        AccountProfileDataBean newBean = new AccountProfileDataBean();
+        newBean.setAddress(bean.getAddress());
+        newBean.setCreditCard(bean.getCreditCard());
+        newBean.setEmail(bean.getEmail());
+        newBean.setFullName(bean.getFullName());
+        newBean.setPassword(bean.getPassword());
+        newBean.setUserID(bean.getUserID());
+
+        return newBean;
+    }
+
+    public CustomAccountProfileBean toCustomAccountProfileBean(AccountProfileDataBean bean) {
+        CustomAccountProfileBean newBean = new CustomAccountProfileBean();
+        newBean.setAddress(bean.getAddress());
+        newBean.setCreditCard(bean.getCreditCard());
+        newBean.setEmail(bean.getEmail());
+        newBean.setFullName(bean.getFullName());
+        newBean.setPassword(bean.getPassword());
+        newBean.setUserID(bean.getUserID());
+
+        return newBean;
+    }
+
+    public HoldingDataBean toHoldingData(CustomHoldingBean bean) {
+        HoldingDataBean newBean = new HoldingDataBean();
+        newBean.setHoldingID(bean.getHoldingID());
+        newBean.setQuantity(bean.getQuantity());
+        newBean.setPurchasePrice(bean.getPurchasePrice());
+        newBean.setPurchaseDate(bean.getPurchaseDate());
+        newBean.setQuoteID(bean.getQuoteID());
+
+        return newBean;
+    }
+
+    public List<HoldingDataBean> toHoldingDataList(List<CustomHoldingBean> beans) {
+        List<HoldingDataBean> newBeans = new ArrayList<HoldingDataBean>();
+        for (CustomHoldingBean bean : beans) {
+            newBeans.add(toHoldingData(bean));
+        }
+        
+        return newBeans;
+    }
+
+    public MarketSummaryDataBeanWS toMarketSummaryData(CustomMarketSummaryBean bean) {
+        MarketSummaryDataBeanWS newBean = new MarketSummaryDataBeanWS();
+
+        newBean.setTSIA(bean.getOpenTSIA());
+		newBean.setOpenTSIA(bean.getOpenTSIA());
+		newBean.setVolume(bean.getVolume());
+		newBean.setTopGainers(toArrayOfQuote(bean.getTopGainers()));
+		newBean.setTopLosers(toArrayOfQuote(bean.getTopLosers()));
+
+        return newBean;
+    }
+
+    private ArrayOfQuoteDataBean toArrayOfQuote(List<CustomQuoteBean> listOfCustomQuoteBean) {
+        ArrayOfQuoteDataBean arrayOfQuoteDataBean = new ArrayOfQuoteDataBean();
+
+        for (CustomQuoteBean customQuoteBean : listOfCustomQuoteBean) {
+            arrayOfQuoteDataBean.getQuoteDataBean().add(toQuote(customQuoteBean));
+        }
+
+        return arrayOfQuoteDataBean;
+    }
+
+    public OrderDataBean toOrder(CustomOrderBean bean) {
+        OrderDataBean newBean = new OrderDataBean();
+        newBean.setCompletionDate(bean.getCompletionDate());
+		newBean.setOpenDate(bean.getOpenDate());
+		newBean.setOrderFee(bean.getOrderFee());
+		newBean.setOrderID(bean.getOrderID());
+		newBean.setOrderStatus(bean.getOrderStatus());
+		newBean.setOrderType(bean.getOrderType());
+		newBean.setPrice(bean.getPrice());
+		newBean.setQuantity(bean.getQuantity());
+		newBean.setSymbol(bean.getSymbol());
+
+        return newBean;
+    }
+
+    public List<OrderDataBean> toOrderList(List<CustomOrderBean> beans) {
+        List<OrderDataBean> newBeans = new ArrayList<OrderDataBean>();
+        for (CustomOrderBean bean : beans) {
+            newBeans.add(toOrder(bean));
+        }
+
+        return newBeans;
+    }
+
+    public QuoteDataBean toQuote(CustomQuoteBean bean) {
+        QuoteDataBean newBean = new QuoteDataBean();
+
+        newBean.setSymbol(bean.getSymbol());
+		newBean.setCompanyName(bean.getCompanyName());
+		newBean.setVolume(bean.getVolume());
+		newBean.setPrice(bean.getPrice());
+		newBean.setOpen(bean.getOpen());
+		newBean.setLow(bean.getLow());
+		newBean.setHigh(bean.getHigh());
+		newBean.setChange(bean.getChange());
+        
+        return newBean;
+    }
+}
\ No newline at end of file

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeConfigServiceClient.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeConfigServiceClient.java?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeConfigServiceClient.java (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeConfigServiceClient.java Wed Sep 30 16:21:08 2009
@@ -1,68 +1,71 @@
 package org.apache.stonehenge.stocktrader.services;
 
-import org.apache.stonehenge.stocktrader.util.StockTraderUtility;
+import org.apache.stonehenge.stocktrader.dal.ConfigServiceDAO;
+import org.apache.stonehenge.stocktrader.dal.ConfigServiceDaoFactory;
 import org.datacontract.schemas._2004._07.trade.BSConfigRequest;
 import org.datacontract.schemas._2004._07.trade.BSConfigResponse;
+import org.datacontract.schemas._2004._07.trade.ClientConfigRequest;
+import org.datacontract.schemas._2004._07.trade.ClientConfigResponse;
 import org.tempuri.ConfigService;
 import org.tempuri.ConfigServiceService;
 import traderconfighost.trade.GetBSConfig;
 import traderconfighost.trade.GetBSConfigResponse;
+import traderconfighost.trade.GetClientConfig;
+import traderconfighost.trade.GetClientConfigResponse;
 
 import javax.xml.ws.BindingProvider;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
 
 public class TradeConfigServiceClient {
-    private static final String SERVICE_URL = "org.apache.stonehenge.stocktrader.TradeConfigService.url";
 
     private static TradeConfigServiceClient self = null;
-    private Properties prop = new Properties();
     private static ConfigServiceService service = null;
+    private static ConfigServiceDaoFactory configServiceDaoFactory;
+    private static ConfigServiceDAO configServiceDAO;
 
     public static TradeConfigServiceClient getInstance() {
-        if (self == null) {
+            configServiceDaoFactory = ConfigServiceDaoFactory.getFacotry();
+            configServiceDAO = configServiceDaoFactory.getConfigServiceDAO();
             self = new TradeConfigServiceClient();
-        }
+        ((BindingProvider) service).getRequestContext()
+                .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, configServiceDAO.getConfigService());
         return self;
     }
 
     private TradeConfigServiceClient() {
-        ClassLoader cl = getClass().getClassLoader();
-        InputStream is = cl
-                .getResourceAsStream(StockTraderUtility.TRADE_ORDER_SERVICE_PROPERTY_FILE);
-        try {
-            prop.load(is);
-        } catch (IOException e) {
-        }
-
         ConfigService configService = new ConfigService();
         service = configService.getBasicHttpBindingConfigServiceService();
-        ((BindingProvider) service).getRequestContext()
-                .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, prop.getProperty(SERVICE_URL));
     }
 
     public TradeOrderConfig getTradeOrderConfig() {
+        GetClientConfig getClientConfig = new GetClientConfig();
+        ClientConfigRequest clientconfigRequest = new ClientConfigRequest();
+        clientconfigRequest.setClientName("METRO_CLIENT");
+        getClientConfig.setClient(clientconfigRequest);
+        GetClientConfigResponse clientConfigResponse = service.getClientConfig(getClientConfig);
+        ClientConfigResponse clientresponse = clientConfigResponse.getGetClientConfigResult();
+        String bsName = clientresponse.getBSName();
+
         GetBSConfig getBSConfig = new GetBSConfig();
         BSConfigRequest configRequest = new BSConfigRequest();
-        configRequest.setBSName("METRO_BS");
+        configRequest.setBSName(bsName);
         getBSConfig.setBs(configRequest);
         GetBSConfigResponse getBSConfigResponse = service.getBSConfig(getBSConfig);
         BSConfigResponse response = getBSConfigResponse.getGetBSConfigResult();
 
         TradeOrderConfig config = new TradeOrderConfig();
+        config.setServiceName(response.getOPSName());
         config.setEndpointURL(response.getOPS());
         config.setSecure(response.isSec());
         return config;
     }
 
-    public static void main(String arg[]) {
-        TradeConfigServiceClient client = TradeConfigServiceClient.getInstance();
-        TradeOrderConfig config = client.getTradeOrderConfig();
-        String url = config.getEndpointURL();
-
-        assert url.equals("http://localhost:8090/order_processor/OrderProcessorSec");
-        
-        System.out.println("connect successfully!!");
-    }
+//    public static void main(String arg[]) {
+//        TradeConfigServiceClient client = TradeConfigServiceClient.getInstance();
+//        TradeOrderConfig config = client.getTradeOrderConfig();
+//        String url = config.getEndpointURL();
+//
+//        assert url.equals("http://localhost:8091/order_processor/OrderProcessorSec");
+//
+//        System.out.println("connect successfully!!");
+//    }
 }

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderConfig.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderConfig.java?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderConfig.java (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderConfig.java Wed Sep 30 16:21:08 2009
@@ -1,19 +1,36 @@
 package org.apache.stonehenge.stocktrader.services;
 
 public class TradeOrderConfig {
+    private String serviceName;
+
     private String endpointURL;
-	private boolean secure;
 
-	public String getEndpointURL() {
+    private boolean secure;
+
+    public String getEndpointURL() {
 		return endpointURL;
 	}
-	public void setEndpointURL(String endpointURL) {
+
+    public void setEndpointURL(String endpointURL) {
 		this.endpointURL = endpointURL;
 	}
-	public boolean isSecure() {
+
+    public void setServiceName(String serviceName) {
+        this.serviceName = serviceName;
+    }
+
+    public boolean isSecure() {
 		return secure;
 	}
 	public void setSecure(boolean secure) {
 		this.secure = secure;
 	}
+
+    public boolean isMessageLevelSecurity() {
+        return serviceName.endsWith("OPSSEC");
+    }
+
+    public boolean isUsernameTokenOverTLS() {
+        return serviceName.endsWith("OPSSC");
+    }
 }

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderServiceClient.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderServiceClient.java?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderServiceClient.java (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeOrderServiceClient.java Wed Sep 30 16:21:08 2009
@@ -1,15 +1,20 @@
 package org.apache.stonehenge.stocktrader.services;
 
+import org.apache.stonehenge.stocktrader.BeanFactory;
+import org.apache.stonehenge.stocktrader.CustomOrderBean;
 import org.tempuri.OrderProcessor;
 import org.tempuri.OrderProcessorService;
-import org.apache.stonehenge.stocktrader.CustomOrderBean;
 import traderorderhost.trade.SubmitOrder;
 
 import javax.xml.ws.BindingProvider;
 import java.io.IOException;
+import java.util.Map;
+
+import com.sun.xml.wss.XWSSConstants;
 
 public class TradeOrderServiceClient {
     private static TradeOrderServiceClient self = null;
+    private final BeanFactory factory = new BeanFactory();
 
     private TradeOrderServiceClient() throws IOException {
     }
@@ -27,28 +32,36 @@
         OrderProcessorService service = getOrderProcessorService(processor);
 
         SubmitOrder param = new SubmitOrder();
-        param.setOrder(order);
+        param.setOrder(factory.toOrder(order));
         service.submitOrder(param);
     }
 
     private OrderProcessorService getOrderProcessorService(OrderProcessor processor) throws IOException {
         TradeOrderConfig config = TradeConfigServiceClient.getInstance().getTradeOrderConfig();
-        OrderProcessorService service;
+        OrderProcessorService service = null;
         if (config.isSecure()) {
-            service = processor.getCustomBindingOrderProcessorService();
+            if (config.isMessageLevelSecurity()) {
+                service = processor.getCustomBindingOrderProcessorService();
+            } else if (config.isUsernameTokenOverTLS()) {
+                service = processor.getSecureConversationBindingOrderProcessorService();
+            }
         } else {
             service = processor.getBasicHttpBindingOrderProcessorService();
         }
 
-        ((BindingProvider) service).getRequestContext()
-                .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, config.getEndpointURL());
+        Map<String, Object> requestContext = ((BindingProvider) service).getRequestContext();
+
+        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, config.getEndpointURL());
+        requestContext.put(XWSSConstants.USERNAME_PROPERTY, "uid:0");
+        requestContext.put(XWSSConstants.PASSWORD_PROPERTY, "xxx");
+
         return service;
     }
 
-    public static void main(String[] args) throws Exception {
-        TradeOrderServiceClient asynClient = TradeOrderServiceClient.getInstance();
-        CustomOrderBean order = new CustomOrderBean(2, 2);
-        order.setQuantity(235D);
-        asynClient.SubmitOrder(order);
-    }
-}
+//    public static void main(String[] args) throws Exception {
+//        TradeOrderServiceClient asynClient = TradeOrderServiceClient.getInstance();
+//        CustomOrderBean order = new CustomOrderBean(2, 2);
+//        order.setQuantity(235D);
+//        asynClient.SubmitOrder(order);
+//    }
+}
\ No newline at end of file

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeServiceImpl.java?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeServiceImpl.java (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/src/org/apache/stonehenge/stocktrader/services/TradeServiceImpl.java Wed Sep 30 16:21:08 2009
@@ -16,6 +16,7 @@
     private static final Log logger = LogFactory.getLog(TradeServiceImpl.class);
 
 	private final TraderServiceManager mgr = new TraderServiceManager();
+    private final BeanFactory factory = new BeanFactory();
     
     public EmptyMethodActionResponse emptyMethodAction(
             @WebParam(name = "emptyMethodAction", targetNamespace = "http://trade.samples.websphere.ibm.com",
@@ -42,7 +43,7 @@
 			throw new RuntimeException(e);
 		}
 		LoginResponse response = new LoginResponse();
-		response.setLoginReturn(param);
+		response.setLoginReturn(factory.toAccount(param));
 		return response;
     }
 
@@ -59,7 +60,7 @@
 		GetOrdersResponse response = new GetOrdersResponse();
 		ArrayOfOrderDataBean param = new ArrayOfOrderDataBean();
         // FIXED: used array for metro generated code
-        param.getOrderDataBean().addAll(orders);
+        param.getOrderDataBean().addAll(factory.toOrderList(orders));
 //		param.setOrderDataBean(toArray(orders));
 		response.setGetOrdersReturn(param);
 		return response;
@@ -76,7 +77,7 @@
 			throw new RuntimeException(e);
 		}
 		GetAccountDataResponse getAccountDataResponse = new GetAccountDataResponse();
-		getAccountDataResponse.setGetAccountDataReturn(accountData);
+		getAccountDataResponse.setGetAccountDataReturn(factory.toAccount(accountData));
 		return getAccountDataResponse;
     }
 
@@ -92,15 +93,15 @@
 			throw new RuntimeException(e);
 		}
 		GetAccountProfileDataResponse response = new GetAccountProfileDataResponse();
-		response.setGetAccountProfileDataReturn(accountProfileData);
+		response.setGetAccountProfileDataReturn(factory.toAccountProfile(accountProfileData));
+
 		return response;
     }
 
     public UpdateAccountProfileResponse updateAccountProfile(
             @WebParam(name = "updateAccountProfile", targetNamespace = "http://trade.samples.websphere.ibm.com",
                     partName = "parameters") UpdateAccountProfile updateAccountProfile) {
-        CustomAccountProfileBean accountProfile = new CustomAccountProfileBean(
-				updateAccountProfile.getProfileData());
+        CustomAccountProfileBean accountProfile = factory.toCustomAccountProfileBean(updateAccountProfile.getProfileData());
 		CustomAccountProfileBean param;
 		try {
 			param = mgr.updateAccountProfile(accountProfile);
@@ -110,7 +111,7 @@
 		}
 
 		UpdateAccountProfileResponse response = new UpdateAccountProfileResponse();
-		response.setUpdateAccountProfileReturn(param);
+		response.setUpdateAccountProfileReturn(factory.toAccountProfile(param));
 		return response;
     }
 
@@ -139,7 +140,7 @@
 			throw new RuntimeException(e);
 		}
 		BuyResponse buyResponse = new BuyResponse();
-		buyResponse.setBuyReturn(order);
+		buyResponse.setBuyReturn(factory.toOrder(order));
 		return buyResponse;
     }
 
@@ -155,7 +156,7 @@
 			throw new RuntimeException(e);
 		}
 		SellResponse response = new SellResponse();
-		response.setSellReturn(param);
+		response.setSellReturn(factory.toOrder(param));
 		return response;
     }
 
@@ -173,7 +174,7 @@
 		ArrayOfHoldingDataBean param = new ArrayOfHoldingDataBean();
         
         // FIXED: used array for metro generated code
-        param.getHoldingDataBean().addAll(holdingBeans);
+        param.getHoldingDataBean().addAll(factory.toHoldingDataList(holdingBeans));
 //		param.setHoldingDataBean(toArray(holdingBeans));
 		response.setGetHoldingsReturn(param);
 		return response;
@@ -193,7 +194,7 @@
 			throw new RuntimeException(e);
 		}
 		RegisterResponse response = new RegisterResponse();
-		response.setRegisterReturn(param);
+		response.setRegisterReturn(factory.toAccount(param));
 		return response;
     }
 
@@ -210,7 +211,7 @@
 		GetClosedOrdersResponse response = new GetClosedOrdersResponse();
 		ArrayOfOrderDataBean arrayOfOrderBean = new ArrayOfOrderDataBean();
         // FIXED: used array for metro generated code
-        arrayOfOrderBean.getOrderDataBean().addAll(closedOrders);
+        arrayOfOrderBean.getOrderDataBean().addAll(factory.toOrderList(closedOrders));
 //		arrayOfOrderBean.setOrderDataBean(toArray(closedOrders));
 		response.setGetClosedOrdersReturn(arrayOfOrderBean);
 		return response;
@@ -227,7 +228,7 @@
 			throw new RuntimeException(e);
 		}
 		GetMarketSummaryResponse response = new GetMarketSummaryResponse();
-		response.setGetMarketSummaryReturn(param);
+		response.setGetMarketSummaryReturn(factory.toMarketSummaryData(param));
 		return response;
     }
 
@@ -242,7 +243,7 @@
 			throw new RuntimeException(e);
 		}
 		GetQuoteResponse response = new GetQuoteResponse();
-		response.setGetQuoteReturn(param);
+		response.setGetQuoteReturn(factory.toQuote(param));
 		return response;
     }
 
@@ -258,7 +259,7 @@
 			throw new RuntimeException(e);
 		}
 		GetHoldingResponse response = new GetHoldingResponse();
-		response.setGetHoldingReturn(holding);
+		response.setGetHoldingReturn(factory.toHoldingData(holding));
 		return response;
     }
 
@@ -275,7 +276,7 @@
 		GetTopOrdersResponse response = new GetTopOrdersResponse();
 		ArrayOfOrderDataBean param = new ArrayOfOrderDataBean();
         // FIXED: used array for metro generated code
-        param.getOrderDataBean().addAll(topOrders);
+        param.getOrderDataBean().addAll(factory.toOrderList(topOrders));
 //		param.setOrderDataBean(toArray(topOrders));
 		response.setGetTopOrdersReturn(param);
 		return response;
@@ -293,7 +294,7 @@
 			throw new RuntimeException(e);
 		}
 		SellEnhancedResponse response = new SellEnhancedResponse();
-		response.setSellEnhancedReturn(param);
+		response.setSellEnhancedReturn(factory.toOrder(param));
 		return response;
     }
 }

Modified: incubator/stonehenge/trunk/stocktrader/metro/business_service/src/wsit-client.xml
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/business_service/src/wsit-client.xml?rev=820332&r1=820331&r2=820332&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/business_service/src/wsit-client.xml (original)
+++ incubator/stonehenge/trunk/stocktrader/metro/business_service/src/wsit-client.xml Wed Sep 30 16:21:08 2009
@@ -20,9 +20,9 @@
         <wsp:ExactlyOne>
             <wsp:All>
                 <sunsp:DisableInclusivePrefixList xmlns:sunsp="http://schemas.sun.com/2006/03/wss/client"></sunsp:DisableInclusivePrefixList>
-                <sc:KeyStore wspp:visibility="private" location="client-keystore.jks"
+                <sc:KeyStore wspp:visibility="private" location="stonehenge-keystore.jks"
                              type="JKS" alias="mykey" storepass="changeit"></sc:KeyStore>
-                <sc:TrustStore wspp:visibility="private" location="client-truststore.jks"
+                <sc:TrustStore wspp:visibility="private" location="stonehenge-truststore.jks"
                                type="JKS" storepass="changeit" peeralias="mykey"></sc:TrustStore>
             </wsp:All>
         </wsp:ExactlyOne>

Added: incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountBean.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountBean.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountBean.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountBean.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,124 @@
+/*
+ * 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.apache.stonehenge.stocktrader;
+
+import java.math.BigDecimal;
+import java.util.Calendar;
+
+public class CustomAccountBean {
+	private static final long serialVersionUID = -6368651996080304426L;
+
+	protected String userID;
+    protected Integer accountID;
+    protected Integer loginCount;
+    protected Integer logoutCount;
+    protected Calendar lastLogin;
+    protected Calendar creationDate;
+    protected BigDecimal balance;
+    protected BigDecimal openBalance;
+    protected String profileID;
+
+	public CustomAccountBean() {
+	}
+
+	public CustomAccountBean(int accountId, String profileId,
+			Calendar creationDate, BigDecimal openBalance, int logoutCount,
+			BigDecimal balance, Calendar lastLogIn, int loginCount) {
+		setAccountID(accountId);
+		setProfileID(profileId);
+		setCreationDate(creationDate);
+		setOpenBalance(openBalance);
+		setLogoutCount(logoutCount);
+		setBalance(balance);
+		setLastLogin(lastLogIn);
+		setLoginCount(loginCount);
+		setLogoutCount(logoutCount);
+	}
+
+	public String getUserID() {
+		return this.userID;
+	}
+
+	public void setUserID(String userID) {
+		this.userID = userID;
+	}
+
+    public Integer getAccountID() {
+        return accountID;
+    }
+
+    public void setAccountID(Integer accountID) {
+        this.accountID = accountID;
+    }
+
+    public Integer getLoginCount() {
+        return loginCount;
+    }
+
+    public void setLoginCount(Integer loginCount) {
+        this.loginCount = loginCount;
+    }
+
+    public Integer getLogoutCount() {
+        return logoutCount;
+    }
+
+    public void setLogoutCount(Integer logoutCount) {
+        this.logoutCount = logoutCount;
+    }
+
+    public Calendar getLastLogin() {
+        return lastLogin;
+    }
+
+    public void setLastLogin(Calendar lastLogin) {
+        this.lastLogin = lastLogin;
+    }
+
+    public Calendar getCreationDate() {
+        return creationDate;
+    }
+
+    public void setCreationDate(Calendar creationDate) {
+        this.creationDate = creationDate;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public BigDecimal getOpenBalance() {
+        return openBalance;
+    }
+
+    public void setOpenBalance(BigDecimal openBalance) {
+        this.openBalance = openBalance;
+    }
+
+    public String getProfileID() {
+        return profileID;
+    }
+
+    public void setProfileID(String profileID) {
+        this.profileID = profileID;
+    }
+}

Added: incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountProfileBean.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountProfileBean.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountProfileBean.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomAccountProfileBean.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,91 @@
+/*
+ * 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.apache.stonehenge.stocktrader;
+
+public class CustomAccountProfileBean {
+
+	private static final long serialVersionUID = 1485167358537563576L;
+
+    protected String userID;
+    protected String password;
+    protected String fullName;
+    protected String address;
+    protected String email;
+    protected String creditCard;
+
+	public CustomAccountProfileBean() {
+	}
+
+	public CustomAccountProfileBean(String userId, String password,
+			String fullName, String address, String email, String creditcard) {
+		setUserID(userId);
+		setPassword(password);
+		setFullName(fullName);
+		setAddress(address);
+		setEmail(email);
+		setCreditCard(creditcard);
+	}
+
+    public String getUserID() {
+        return userID;
+    }
+
+    public void setUserID(String userID) {
+        this.userID = userID;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getFullName() {
+        return fullName;
+    }
+
+    public void setFullName(String fullName) {
+        this.fullName = fullName;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getCreditCard() {
+        return creditCard;
+    }
+
+    public void setCreditCard(String creditCard) {
+        this.creditCard = creditCard;
+    }
+}

Added: incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomHoldingBean.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,124 @@
+/*
+ * 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.apache.stonehenge.stocktrader;
+
+import java.math.BigDecimal;
+import java.util.Calendar;
+
+/**
+ * This class is to be used as the data model for holding information.
+ */
+public class CustomHoldingBean {
+
+	private static final long serialVersionUID = 3294871357941879094L;
+    
+	private int accountID;
+    protected Integer holdingID;
+    protected Double quantity;
+    protected BigDecimal purchasePrice;
+    protected Calendar purchaseDate;
+    protected String quoteID;
+
+	public CustomHoldingBean() {
+	}
+
+	/**
+	 * Constructs a data model instance with holding information.
+	 * 
+	 * @param accountId
+	 *            the account ID of the buyer
+	 * @param holdingID
+	 *            the holding ID of the stock
+	 * @param quantity
+	 *            the quantity of the stock
+	 * @param purchasePrice
+	 *            the purchase price of the stock
+	 * @param purchaseDate
+	 *            the date of the purchase of the stock
+	 * @param quoteID
+	 *            the quote ID of the stock
+	 */
+	public CustomHoldingBean(int accountId, int holdingID, double quantity,
+			BigDecimal purchasePrice, Calendar purchaseDate, String quoteID) {
+		setAccountID(accountId);
+		setHoldingID(holdingID);
+		setQuantity(quantity);
+		setPurchasePrice(purchasePrice);
+		setPurchaseDate(purchaseDate);
+		setQuoteID(quoteID);
+	}
+
+	public CustomHoldingBean(int holdingID, double quantity,
+			BigDecimal purchasePrice, Calendar purchaseDate, String quoteID,
+			int accountID) {
+		setHoldingID(holdingID);
+		setAccountID(accountID);
+		setQuantity(quantity);
+		setPurchasePrice(purchasePrice);
+		setPurchaseDate(purchaseDate);
+		setQuoteID(quoteID);
+	}
+
+	public int getAccountID() {
+		return accountID;
+	}
+
+	public void setAccountID(int accountID) {
+		this.accountID = accountID;
+	}
+
+    public Integer getHoldingID() {
+        return holdingID;
+    }
+
+    public void setHoldingID(Integer holdingID) {
+        this.holdingID = holdingID;
+    }
+
+    public Double getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(Double quantity) {
+        this.quantity = quantity;
+    }
+
+    public BigDecimal getPurchasePrice() {
+        return purchasePrice;
+    }
+
+    public void setPurchasePrice(BigDecimal purchasePrice) {
+        this.purchasePrice = purchasePrice;
+    }
+
+    public Calendar getPurchaseDate() {
+        return purchaseDate;
+    }
+
+    public void setPurchaseDate(Calendar purchaseDate) {
+        this.purchaseDate = purchaseDate;
+    }
+
+    public String getQuoteID() {
+        return quoteID;
+    }
+
+    public void setQuoteID(String quoteID) {
+        this.quoteID = quoteID;
+    }
+}

Added: incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomMarketSummaryBean.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomMarketSummaryBean.java?rev=820332&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomMarketSummaryBean.java (added)
+++ incubator/stonehenge/trunk/stocktrader/metro/common/src/org/apache/stonehenge/stocktrader/CustomMarketSummaryBean.java Wed Sep 30 16:21:08 2009
@@ -0,0 +1,93 @@
+/*
+ * 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.apache.stonehenge.stocktrader;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+public class CustomMarketSummaryBean {
+
+	private static final long serialVersionUID = 6180349684421231291L;
+
+    protected BigDecimal tsia;
+    protected BigDecimal openTSIA;
+    protected Double volume;
+    protected List<CustomQuoteBean> topGainers = new ArrayList<CustomQuoteBean>();
+    protected List<CustomQuoteBean> topLosers = new ArrayList<CustomQuoteBean>();
+    protected Calendar summaryDate;
+
+	public CustomMarketSummaryBean(BigDecimal tSIA, BigDecimal openTSIA,
+			double volume, List<CustomQuoteBean> topGainers,
+			List<CustomQuoteBean> topLosers) {
+		setTSIA(tSIA);
+		setOpenTSIA(openTSIA);
+		setVolume(volume);
+		setTopGainers(topGainers);
+		setTopLosers(topLosers);
+	}
+
+	private void setTopGainers(List<CustomQuoteBean> topGainers) {
+        this.topGainers.addAll(topGainers);
+	}
+
+    public List<CustomQuoteBean> getTopGainers() {
+        return topGainers;
+    }
+
+    private void setTopLosers(List<CustomQuoteBean> topLosers) {
+        this.topLosers.addAll(topLosers);
+	}
+
+    public List<CustomQuoteBean> getTopLosers() {
+        return topLosers;
+    }
+
+    public BigDecimal getTSIA() {
+        return tsia;
+    }
+
+    public void setTSIA(BigDecimal tsia) {
+        this.tsia = tsia;
+    }
+
+    public BigDecimal getOpenTSIA() {
+        return openTSIA;
+    }
+
+    public void setOpenTSIA(BigDecimal openTSIA) {
+        this.openTSIA = openTSIA;
+    }
+
+    public Double getVolume() {
+        return volume;
+    }
+
+    public void setVolume(Double volume) {
+        this.volume = volume;
+    }
+
+    public Calendar getSummaryDate() {
+        return summaryDate;
+    }
+
+    public void setSummaryDate(Calendar summaryDate) {
+        this.summaryDate = summaryDate;
+    }
+}