incubator-stonehenge-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shan...@apache.org
Subject svn commit: r743257 [46/47] - in /incubator/stonehenge/trunk/stocktrader/wsas: ./ business_service/ business_service/resources/ business_service/resources/META-INF/ business_service/resources/config/ business_service/src/ business_service/src/com/ busi...
Date Wed, 11 Feb 2009 07:32:20 GMT
Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TradeServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TradeServiceImpl.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TradeServiceImpl.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TradeServiceImpl.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,321 @@
+/*
+ * 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.wso2.stocktrader.services;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.tempuri.TradeServiceWcfSkeleton;
+import org.wso2.stocktrader.CustomAccountBean;
+import org.wso2.stocktrader.CustomAccountProfileBean;
+import org.wso2.stocktrader.CustomHoldingBean;
+import org.wso2.stocktrader.CustomMarketSummaryBean;
+import org.wso2.stocktrader.CustomOrderBean;
+import org.wso2.stocktrader.CustomQuoteBean;
+import org.wso2.stocktrader.dal.DAOException;
+
+import com.ibm.websphere.samples.trade.ArrayOfHoldingDataBean;
+import com.ibm.websphere.samples.trade.ArrayOfOrderDataBean;
+import com.ibm.websphere.samples.trade.Buy;
+import com.ibm.websphere.samples.trade.BuyResponse;
+import com.ibm.websphere.samples.trade.GetAccountData;
+import com.ibm.websphere.samples.trade.GetAccountDataResponse;
+import com.ibm.websphere.samples.trade.GetAccountProfileData;
+import com.ibm.websphere.samples.trade.GetAccountProfileDataResponse;
+import com.ibm.websphere.samples.trade.GetClosedOrders;
+import com.ibm.websphere.samples.trade.GetClosedOrdersResponse;
+import com.ibm.websphere.samples.trade.GetHolding;
+import com.ibm.websphere.samples.trade.GetHoldingResponse;
+import com.ibm.websphere.samples.trade.GetHoldings;
+import com.ibm.websphere.samples.trade.GetHoldingsResponse;
+import com.ibm.websphere.samples.trade.GetMarketSummary;
+import com.ibm.websphere.samples.trade.GetMarketSummaryResponse;
+import com.ibm.websphere.samples.trade.GetOrders;
+import com.ibm.websphere.samples.trade.GetOrdersResponse;
+import com.ibm.websphere.samples.trade.GetQuote;
+import com.ibm.websphere.samples.trade.GetQuoteResponse;
+import com.ibm.websphere.samples.trade.GetTopOrders;
+import com.ibm.websphere.samples.trade.GetTopOrdersResponse;
+import com.ibm.websphere.samples.trade.HoldingDataBean;
+import com.ibm.websphere.samples.trade.IsOnline;
+import com.ibm.websphere.samples.trade.Login;
+import com.ibm.websphere.samples.trade.LoginResponse;
+import com.ibm.websphere.samples.trade.Logout;
+import com.ibm.websphere.samples.trade.LogoutResponse;
+import com.ibm.websphere.samples.trade.OrderDataBean;
+import com.ibm.websphere.samples.trade.Register;
+import com.ibm.websphere.samples.trade.RegisterResponse;
+import com.ibm.websphere.samples.trade.Sell;
+import com.ibm.websphere.samples.trade.SellEnhanced;
+import com.ibm.websphere.samples.trade.SellEnhancedResponse;
+import com.ibm.websphere.samples.trade.SellResponse;
+import com.ibm.websphere.samples.trade.UpdateAccountProfile;
+import com.ibm.websphere.samples.trade.UpdateAccountProfileResponse;
+
+public class TradeServiceImpl extends TradeServiceWcfSkeleton {
+	private static final Log logger = LogFactory.getLog(TradeServiceImpl.class);
+
+	private final TraderServiceManager mgr = new TraderServiceManager();
+
+	public BuyResponse buy(Buy buy) {
+		CustomOrderBean order;
+		try {
+			order = mgr
+					.buy(buy.getUserID(), buy.getSymbol(), buy.getQuantity());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		BuyResponse buyResponse = new BuyResponse();
+		buyResponse.setBuyReturn(order);
+		return buyResponse;
+	}
+
+	public GetAccountDataResponse getAccountData(GetAccountData getAccountData) {
+		CustomAccountBean accountData;
+		try {
+			accountData = mgr.getAccountData(getAccountData.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetAccountDataResponse getAccountDataResponse = new GetAccountDataResponse();
+		getAccountDataResponse.setGetAccountDataReturn(accountData);
+		return getAccountDataResponse;
+	}
+
+	public GetAccountProfileDataResponse getAccountProfileData(
+			GetAccountProfileData getAccountProfileData) {
+		CustomAccountProfileBean accountProfileData;
+		try {
+			accountProfileData = mgr
+					.getAccountProfileData(getAccountProfileData.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetAccountProfileDataResponse response = new GetAccountProfileDataResponse();
+		response.setGetAccountProfileDataReturn(accountProfileData);
+		return response;
+	}
+
+	public GetClosedOrdersResponse getClosedOrders(
+			GetClosedOrders getClosedOrders) {
+		List<CustomOrderBean> closedOrders;
+		try {
+			closedOrders = mgr.getClosedOrders(getClosedOrders.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetClosedOrdersResponse response = new GetClosedOrdersResponse();
+		ArrayOfOrderDataBean arrayOfOrderBean = new ArrayOfOrderDataBean();
+		arrayOfOrderBean.setOrderDataBean(toArray(closedOrders));
+		response.setGetClosedOrdersReturn(arrayOfOrderBean);
+		return response;
+	}
+
+	public GetHoldingResponse getHolding(GetHolding getHolding) {
+		CustomHoldingBean holding;
+		try {
+			holding = mgr.getHolding(getHolding.getUserID(), getHolding
+					.getHoldingID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetHoldingResponse response = new GetHoldingResponse();
+		response.setGetHoldingReturn(holding);
+		return response;
+	}
+
+	public GetHoldingsResponse getHoldings(GetHoldings getHoldings) {
+		List<CustomHoldingBean> holdingBeans;
+		try {
+			holdingBeans = mgr.getHoldings(getHoldings.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetHoldingsResponse response = new GetHoldingsResponse();
+		ArrayOfHoldingDataBean param = new ArrayOfHoldingDataBean();
+		param.setHoldingDataBean(toArray(holdingBeans));
+		response.setGetHoldingsReturn(param);
+		return response;
+	}
+
+	public GetMarketSummaryResponse getMarketSummary(
+			GetMarketSummary getMarketSummary) {
+		CustomMarketSummaryBean param;
+		try {
+			param = mgr.getMarketSummary();
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetMarketSummaryResponse response = new GetMarketSummaryResponse();
+		response.setGetMarketSummaryReturn(param);
+		return response;
+	}
+
+	public GetOrdersResponse getOrders(GetOrders getOrders) {
+		List<CustomOrderBean> orders;
+		try {
+			orders = mgr.getOrders(getOrders.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetOrdersResponse response = new GetOrdersResponse();
+		ArrayOfOrderDataBean param = new ArrayOfOrderDataBean();
+		param.setOrderDataBean(toArray(orders));
+		response.setGetOrdersReturn(param);
+		return response;
+	}
+
+	public GetQuoteResponse getQuote(GetQuote getQuote) {
+		CustomQuoteBean param;
+		try {
+			param = mgr.getQuote(getQuote.getSymbol());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetQuoteResponse response = new GetQuoteResponse();
+		response.setGetQuoteReturn(param);
+		return response;
+	}
+
+	public GetTopOrdersResponse getTopOrders(GetTopOrders getTopOrders) {
+		List<CustomOrderBean> topOrders;
+		try {
+			topOrders = mgr.getTopOrders(getTopOrders.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		GetTopOrdersResponse response = new GetTopOrdersResponse();
+		ArrayOfOrderDataBean param = new ArrayOfOrderDataBean();
+		param.setOrderDataBean(toArray(topOrders));
+		response.setGetTopOrdersReturn(param);
+		return response;
+	}
+
+	public void isOnline(IsOnline isOnline) {
+		if (logger.isDebugEnabled()) {
+			logger.debug("TradeServiceImpl.isOnline()");
+		}
+	}
+
+	public LoginResponse login(Login login) {
+		CustomAccountBean param;
+		try {
+			param = mgr.login(login.getUserID(), login.getPassword());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		LoginResponse response = new LoginResponse();
+		response.setLoginReturn(param);
+		return response;
+	}
+
+	public LogoutResponse logout(Logout logout) {
+		try {
+			mgr.logout(logout.getUserID());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		LogoutResponse response = new LogoutResponse();
+		return response;
+	}
+
+	public RegisterResponse register(Register register) {
+		CustomAccountBean param;
+		try {
+			param = mgr.register(register.getUserID(), register.getPassword(),
+					register.getFullname(), register.getAddress(), register
+							.getEmail(), register.getCreditcard(), register
+							.getOpenBalance());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		RegisterResponse response = new RegisterResponse();
+		response.setRegisterReturn(param);
+		return response;
+	}
+
+	public SellResponse sell(Sell sell) {
+		CustomOrderBean param;
+		try {
+			param = mgr.sell(sell.getUserID(), sell.getHoldingID(), sell
+					.getOrderProcessingMode());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		SellResponse response = new SellResponse();
+		response.setSellReturn(param);
+		return response;
+	}
+
+	public SellEnhancedResponse sellEnhanced(SellEnhanced sellEnhanced) {
+		CustomOrderBean param;
+		try {
+			param = mgr.sellEnhanced(sellEnhanced.getUserID(), sellEnhanced
+					.getHoldingID(), sellEnhanced.getQuantity());
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+		SellEnhancedResponse response = new SellEnhancedResponse();
+		response.setSellEnhancedReturn(param);
+		return response;
+	}
+
+	public UpdateAccountProfileResponse updateAccountProfile(
+			UpdateAccountProfile updateAccountProfile) {
+		CustomAccountProfileBean accountProfile = new CustomAccountProfileBean(
+				updateAccountProfile.getProfileData());
+		CustomAccountProfileBean param;
+		try {
+			param = mgr.updateAccountProfile(accountProfile);
+		} catch (DAOException e) {
+			logger.debug("", e);
+			throw new RuntimeException(e);
+		}
+
+		UpdateAccountProfileResponse response = new UpdateAccountProfileResponse();
+		response.setUpdateAccountProfileReturn(param);
+		return response;
+	}
+
+	private OrderDataBean[] toArray(List<CustomOrderBean> orders) {
+		OrderDataBean[] arrayOfOrders = new OrderDataBean[orders.size()];
+		return (OrderDataBean[]) orders.toArray(arrayOfOrders);
+	}
+
+	private HoldingDataBean[] toArray(List<CustomHoldingBean> holdings) {
+		HoldingDataBean[] arrayOfHoldings = new HoldingDataBean[holdings.size()];
+		return (HoldingDataBean[]) holdings.toArray(arrayOfHoldings);
+	}
+}

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TraderServiceManager.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TraderServiceManager.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TraderServiceManager.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/services/TraderServiceManager.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,229 @@
+/*
+ * 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.wso2.stocktrader.services;
+
+import java.math.BigDecimal;
+import java.util.Calendar;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.stocktrader.CustomAccountBean;
+import org.wso2.stocktrader.CustomAccountProfileBean;
+import org.wso2.stocktrader.CustomHoldingBean;
+import org.wso2.stocktrader.CustomMarketSummaryBean;
+import org.wso2.stocktrader.CustomOrderBean;
+import org.wso2.stocktrader.CustomQuoteBean;
+import org.wso2.stocktrader.dal.CustomerDAO;
+import org.wso2.stocktrader.dal.DAOException;
+import org.wso2.stocktrader.dal.DAOFactory;
+import org.wso2.stocktrader.dal.MarketSummaryDAO;
+import org.wso2.stocktrader.dal.OrderDAO;
+import org.wso2.stocktrader.mssql.MSSQLOrderDAO;
+import org.wso2.stocktrader.util.StockTraderUtility;
+
+public class TraderServiceManager {
+
+	private static final Log logger = LogFactory
+			.getLog(TraderServiceManager.class);
+
+	private DAOFactory factory = null;
+
+	public TraderServiceManager() {
+		factory = DAOFactory.getFacotry(DAOFactory.MS_SQL_FACTORY);
+	}
+
+	public CustomAccountBean login(String userId, String password)
+			throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.login(userId, password);
+	}
+
+	public void logout(String userId) throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		customerDAO.logoutUser(userId);
+	}
+
+	public CustomAccountBean getAccountData(String userId) throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getCustomerByUserId(userId);
+	}
+
+	public CustomAccountProfileBean getAccountProfileData(String userId)
+			throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getAccountProfileData(userId);
+	}
+
+	public List<CustomOrderBean> getOrders(String userId) throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getOrders(userId, false,
+				StockTraderUtility.MAX_QUERY_TOP_ORDERS,
+				StockTraderUtility.MAX_QUERY_ORDERS);
+	}
+
+	public List<CustomOrderBean> getTopOrders(String userId)
+			throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getOrders(userId, true,
+				StockTraderUtility.MAX_QUERY_TOP_ORDERS,
+				StockTraderUtility.MAX_QUERY_ORDERS);
+	}
+
+	public List<CustomOrderBean> getClosedOrders(String userId)
+			throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getClosedOrders(userId);
+	}
+
+	public CustomAccountBean register(String userId, String password,
+			String fullName, String address, String email, String creditcard,
+			BigDecimal openBalance) throws DAOException {
+		throw new UnsupportedOperationException();
+	}
+
+	public CustomAccountBean addNewRegisteredUser(String userId,
+			String password, String fullName, String address, String email,
+			String creditcard, BigDecimal openBalance) throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		CustomAccountProfileBean customerProfile = new CustomAccountProfileBean(
+				userId, password, fullName, address, email, creditcard);
+		customerDAO.insertAccountProfile(customerProfile);
+		CustomAccountBean customer = new CustomAccountBean(0, userId, Calendar
+				.getInstance(), openBalance, 0, openBalance, Calendar
+				.getInstance(), 0);
+		return customer;
+	}
+
+	public CustomAccountProfileBean updateAccountProfile(
+			CustomAccountProfileBean customAccountProfile) throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.update(customAccountProfile);
+	}
+
+	public CustomMarketSummaryBean getMarketSummary() throws DAOException {
+		MarketSummaryDAO marketSummaryDAO = factory.getMarketSummaryDAO();
+		return marketSummaryDAO.getCustomMarketSummary();
+	}
+
+	public CustomQuoteBean getQuote(String symbol) throws DAOException {
+		MarketSummaryDAO marketSummaryDAO = factory.getMarketSummaryDAO();
+		return marketSummaryDAO.getQuote(symbol);
+	}
+
+	public CustomOrderBean buy(String userID, String symbol, double quantity)
+			throws DAOException {
+		return placeOrder(StockTraderUtility.ORDER_TYPE_BUY, userID, 0, symbol,
+				quantity);
+	}
+
+	public CustomOrderBean sell(String userID, int holdingID,
+			int orderProcessingMode) throws DAOException {
+		return placeOrder(StockTraderUtility.ORDER_TYPE_SELL, userID,
+				holdingID, null, 0);
+	}
+
+	public CustomOrderBean sellEnhanced(String userID, int holdingID,
+			double quantity) throws DAOException {
+		return placeOrder(StockTraderUtility.ORDER_TYPE_SELL_ENHANCED, userID,
+				holdingID, null, quantity);
+	}
+
+	public CustomOrderBean placeOrder(String orderType, String userID,
+			int holdingID, String symbol, double quantity) throws DAOException {
+		MSSQLOrderDAO orderDAO = (MSSQLOrderDAO) factory.getOrderDAO();
+		CustomOrderBean order = null;
+		CustomHoldingBean holding = new CustomHoldingBean();
+		try {
+
+			orderDAO.beginTransaction();
+			order = createOrder(orderType, userID, holdingID, symbol, quantity,
+					holding);
+
+			TradeOrderServiceClient asynClient = TradeOrderServiceClient.getInstance();
+			asynClient.SubmitOrderTrasactedQueue(order);
+			orderDAO.commitTransaction();
+			return order;
+		} catch (Exception e) {
+			try {
+				orderDAO.rollbackTransaction();
+			} catch (DAOException e2) {
+				throw e2;
+			}
+			throw new RuntimeException(e);
+		}
+	}
+
+	private CustomOrderBean createOrder(String orderType, String userID,
+			int holdingID, String symbol, double quantity,
+			CustomHoldingBean holding) throws DAOException {
+		CustomOrderBean order = null;
+		OrderDAO orderDAO = factory.getOrderDAO();
+
+		if (StockTraderUtility.ORDER_TYPE_SELL.equals(orderType)) {
+			// CHECKME holding is the argument
+			holding = orderDAO.getHolding(holdingID);
+			if (holding == null) {
+				throw new DAOException("No holding entry found for HoldingID<"
+						+ holdingID + ">");
+			}
+			order = orderDAO.createOrder(userID, holding.getQuoteID(),
+					StockTraderUtility.ORDER_TYPE_SELL, holding.getQuantity(),
+					holdingID);
+
+		} else if (StockTraderUtility.ORDER_TYPE_SELL_ENHANCED
+				.equals(orderType)) {
+			holding = orderDAO.getHolding(holdingID);
+			if (holding == null) {
+				throw new DAOException("No holding entry found for HoldingID<"
+						+ holdingID + ">");
+			}
+			if (quantity > holding.getQuantity()) {
+				order = orderDAO.createOrder(userID, holding.getQuoteID(),
+						StockTraderUtility.ORDER_TYPE_SELL, holding
+								.getQuantity(), holdingID);
+			} else {
+				order = orderDAO
+						.createOrder(userID, holding.getQuoteID(),
+								StockTraderUtility.ORDER_TYPE_SELL, quantity,
+								holdingID);
+			}
+		} else if (StockTraderUtility.ORDER_TYPE_BUY.equals(orderType)) {
+			order = orderDAO.createOrder(userID, symbol,
+					StockTraderUtility.ORDER_TYPE_BUY, quantity, -1);
+		} else {
+			throw new IllegalArgumentException("Invalid orderType<" + orderType
+					+ ">");
+		}
+		return order;
+	}
+
+	public CustomHoldingBean getHolding(String userID, int holdingID)
+			throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getHolding(userID, holdingID);
+	}
+
+	public List<CustomHoldingBean> getHoldings(String userID)
+			throws DAOException {
+		CustomerDAO customerDAO = factory.getCustomerDAO();
+		return customerDAO.getHoldings(userID);
+	}
+
+}

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderSQLUtil.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderSQLUtil.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderSQLUtil.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderSQLUtil.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,56 @@
+/*
+ * 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.wso2.stocktrader.util;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.stocktrader.dal.DAOException;
+
+public class StockTraderSQLUtil {
+	private static final Log logger = LogFactory
+			.getLog(StockTraderSQLUtil.class);
+
+	public static Object executeScalarNoParm(String query, Connection sqlConnection)
+			throws DAOException {
+		PreparedStatement preparedStatement = null;
+		try {
+			preparedStatement = sqlConnection.prepareStatement(query);
+			ResultSet rs = preparedStatement.executeQuery();
+			if (rs.next()) {
+				return rs.getObject(1);
+			}
+			return null;
+		} catch (SQLException e) {
+			throw new DAOException("", e);
+		} finally {
+			if (preparedStatement != null) {
+				try {
+					preparedStatement.close();
+				} catch (SQLException e) {
+					logger.debug("", e);
+				}
+			}
+		}
+	}
+
+}

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderUtility.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderUtility.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderUtility.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/org/wso2/stocktrader/util/StockTraderUtility.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,100 @@
+/*
+ * 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.wso2.stocktrader.util;
+
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.util.Calendar;
+import java.util.Random;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class StockTraderUtility {
+	
+	public static final String TRADE_ORDER_SERVICE_PROPERTY_FILE = "TradeServiceConfig.properties";
+	public static final String TRADE_ORDER_SERVICE_SECURITY_FILE = "security-policy.xml";
+	public static final String MSSQL_DB_PROPERRTIES_FILE = "mssql-db.properties";
+	public static final String ORDER_TYPE_BUY = "buy";
+	public static final String ORDER_TYPE_SELL = "sell";
+	public static final String ORDER_TYPE_SELL_ENHANCED = "sellEnhanced";
+	public static final String ORDER_STATUS_CLOSED = "closed";
+	public static final String ORDER_STATUS_OPEN = "open";
+
+	public static final int MAX_QUERY_TOP_ORDERS = 5;
+	public static final int MAX_QUERY_ORDERS = 5;
+
+	public static final BigDecimal PENNY_STOCK_P = BigDecimal.valueOf(0.1);
+	public static final BigDecimal JUNK_STOCK_MIRACLE_MULTIPLIER = BigDecimal
+			.valueOf(500);
+	public static final BigDecimal STOCK_P_HIGH_BAR = BigDecimal.valueOf(1000);
+	public static final BigDecimal STOCK_P_HIGH_BAR_CRASH = BigDecimal
+			.valueOf(0.05);
+	public static final BigDecimal STOCK_CHANGE_MAX_PERCENT = BigDecimal
+			.valueOf(5);
+	public static final BigDecimal BUY_FEE = BigDecimal.valueOf(15.95);
+	public static final BigDecimal SELL_FEE = BigDecimal.valueOf(25.95);
+
+	private static final Log logger = LogFactory
+			.getLog(StockTraderUtility.class);
+
+	public static BigDecimal getRandomPriceChangeFactor(BigDecimal currentPrice) {
+		if (currentPrice.compareTo(PENNY_STOCK_P) == -1
+				|| currentPrice.compareTo(PENNY_STOCK_P) == 0) {
+			return JUNK_STOCK_MIRACLE_MULTIPLIER;
+		} else if (currentPrice.compareTo(STOCK_P_HIGH_BAR) == 1
+				|| currentPrice.compareTo(STOCK_P_HIGH_BAR) == 0) {
+			return STOCK_P_HIGH_BAR_CRASH;
+		}
+
+		BigDecimal factor = BigDecimal.valueOf(0);
+		Random rand = new Random();
+		int y = rand.nextInt(STOCK_CHANGE_MAX_PERCENT.subtract(BigDecimal.ONE)
+				.intValue());
+		y = y + 1;
+		int x = rand.nextInt();
+
+		if (x % 2 == 0) {
+			factor = BigDecimal.ONE.subtract((BigDecimal.valueOf(y))
+					.divide(BigDecimal.valueOf(100)));// / 100m;
+		} else
+			factor = BigDecimal.ONE.add(BigDecimal.ONE.add(BigDecimal
+					.valueOf(y).divide(BigDecimal.valueOf(100))));
+		return factor;
+	}
+
+	public static Date convertToSqlDate(Calendar calendar) {
+		return new Date(calendar.getTimeInMillis());
+	}
+
+	public static Calendar convertToCalendar(Date date) {
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTimeInMillis(date.getTime());
+		return calendar;
+	}
+
+	public static BigDecimal getOrderFee(String orderType) {
+		if (StockTraderUtility.ORDER_TYPE_BUY.equals(orderType)
+				|| StockTraderUtility.ORDER_TYPE_SELL.equals(orderType)) {
+			return BUY_FEE;
+		} else {
+			return SELL_FEE;
+		}
+	}
+
+}

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/IsOnline.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/IsOnline.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/IsOnline.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/IsOnline.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,409 @@
+/*
+ * 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.
+ */
+
+
+/**
+ * IsOnline.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: SNAPSHOT  Built on : Jul 01, 2008 (11:48:18 IST)
+ */
+            
+                package traderorderhost.trade;
+            
+
+            /**
+            *  IsOnline bean class
+            */
+        
+        public  class IsOnline
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://Trade.TraderOrderHost",
+                "isOnline",
+                "ns2");
+
+            
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://Trade.TraderOrderHost")){
+                return "ns2";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        
+
+     /**
+     * isReaderMTOMAware
+     * @return true if the reader supports MTOM
+     */
+   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
+        boolean isReaderMTOMAware = false;
+        
+        try{
+          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
+        }catch(java.lang.IllegalArgumentException e){
+          isReaderMTOMAware = false;
+        }
+        return isReaderMTOMAware;
+   }
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+                org.apache.axiom.om.OMDataSource dataSource =
+                       new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME){
+
+                 public void serialize(org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+                       IsOnline.this.serialize(MY_QNAME,factory,xmlWriter);
+                 }
+               };
+               return new org.apache.axiom.om.impl.llom.OMSourcedElementImpl(
+               MY_QNAME,factory,dataSource);
+            
+       }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       final org.apache.axiom.om.OMFactory factory,
+                                       org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,factory,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               final org.apache.axiom.om.OMFactory factory,
+                               org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+
+                    if ((namespace != null) && (namespace.trim().length() > 0)) {
+                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+                        if (writerPrefix != null) {
+                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
+                        } else {
+                            if (prefix == null) {
+                                prefix = generatePrefix(namespace);
+                            }
+
+                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
+                            xmlWriter.writeNamespace(prefix, namespace);
+                            xmlWriter.setPrefix(prefix, namespace);
+                        }
+                    } else {
+                        xmlWriter.writeStartElement(parentQName.getLocalPart());
+                    }
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://Trade.TraderOrderHost");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":isOnline",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "isOnline",
+                           xmlWriter);
+                   }
+
+               
+                   }
+               
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+         /**
+          * Util method to write an attribute with the ns prefix
+          */
+          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+              if (xmlWriter.getPrefix(namespace) == null) {
+                       xmlWriter.writeNamespace(prefix, namespace);
+                       xmlWriter.setPrefix(prefix, namespace);
+
+              }
+
+              xmlWriter.writeAttribute(namespace,attName,attValue);
+
+         }
+
+        /**
+          * Util method to write an attribute without the ns prefix
+          */
+          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+                if (namespace.equals(""))
+              {
+                  xmlWriter.writeAttribute(attName,attValue);
+              }
+              else
+              {
+                  registerPrefix(xmlWriter, namespace);
+                  xmlWriter.writeAttribute(namespace,attName,attValue);
+              }
+          }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+         /**
+         * Register a namespace prefix
+         */
+         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+                java.lang.String prefix = xmlWriter.getPrefix(namespace);
+
+                if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+
+                    while (xmlWriter.getNamespaceContext().getNamespaceURI(prefix) != null) {
+                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                    }
+
+                    xmlWriter.writeNamespace(prefix, namespace);
+                    xmlWriter.setPrefix(prefix, namespace);
+                }
+
+                return prefix;
+            }
+
+
+  
+        /**
+        * databinding method to get an XML representation of this object
+        *
+        */
+        public javax.xml.stream.XMLStreamReader getPullParser(javax.xml.namespace.QName qName)
+                    throws org.apache.axis2.databinding.ADBException{
+
+
+        
+                 java.util.ArrayList elementList = new java.util.ArrayList();
+                 java.util.ArrayList attribList = new java.util.ArrayList();
+
+                
+
+                return new org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl(qName, elementList.toArray(), attribList.toArray());
+            
+            
+
+        }
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static IsOnline parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            IsOnline object =
+                new IsOnline();
+
+            int event;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"isOnline".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (IsOnline)traderorderhost.trade.imports.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                 
+                    
+                    reader.next();
+                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // A start element we are not expecting indicates a trailing invalid property
+                                throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
+                            
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+          

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessor.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessor.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessor.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessor.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+
+
+
+/**
+ * OrderProcessor.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: SNAPSHOT  Built on : Jul 01, 2008 (11:47:57 IST)
+ */
+
+    package traderorderhost.trade;
+
+    /*
+     *  OrderProcessor java interface
+     */
+
+    public interface OrderProcessor {
+          
+       /**
+         * Auto generated method signature for Asynchronous Invocations
+         * 
+         */
+        public void  submitOrderTransactedQueue(
+         traderorderhost.trade.SubmitOrderTransactedQueue submitOrderTransactedQueue0
+
+        ) throws java.rmi.RemoteException
+        
+        ;
+
+        
+       /**
+         * Auto generated method signature for Asynchronous Invocations
+         * 
+         */
+        public void  isOnline(
+         traderorderhost.trade.IsOnline isOnline1
+
+        ) throws java.rmi.RemoteException
+        
+        ;
+
+        
+       /**
+         * Auto generated method signature for Asynchronous Invocations
+         * 
+         */
+        public void  submitOrder(
+         traderorderhost.trade.SubmitOrder submitOrder2
+
+        ) throws java.rmi.RemoteException
+        
+        ;
+
+        
+
+        
+       //
+       }
+    

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorCallbackHandler.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorCallbackHandler.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorCallbackHandler.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorCallbackHandler.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,72 @@
+/*
+ * 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.
+ */
+
+/**
+ * OrderProcessorCallbackHandler.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: SNAPSHOT  Built on : Jul 01, 2008 (11:47:57 IST)
+ */
+
+    package traderorderhost.trade;
+
+    /**
+     *  OrderProcessorCallbackHandler Callback class, Users can extend this class and implement
+     *  their own receiveResult and receiveError methods.
+     */
+    public abstract class OrderProcessorCallbackHandler{
+
+
+
+    protected Object clientData;
+
+    /**
+    * User can pass in any object that needs to be accessed once the NonBlocking
+    * Web service call is finished and appropriate method of this CallBack is called.
+    * @param clientData Object mechanism by which the user can pass in user data
+    * that will be avilable at the time this callback is called.
+    */
+    public OrderProcessorCallbackHandler(Object clientData){
+        this.clientData = clientData;
+    }
+
+    /**
+    * Please use this constructor if you don't want to set any clientData
+    */
+    public OrderProcessorCallbackHandler(){
+        this.clientData = null;
+    }
+
+    /**
+     * Get the client data
+     */
+
+     public Object getClientData() {
+        return clientData;
+     }
+
+        
+               // No methods generated for meps other than in-out
+                
+               // No methods generated for meps other than in-out
+                
+               // No methods generated for meps other than in-out
+                
+
+
+    }
+    

Added: incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorStub.java
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorStub.java?rev=743257&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorStub.java (added)
+++ incubator/stonehenge/trunk/stocktrader/wsas/business_service/src/traderorderhost/trade/OrderProcessorStub.java Wed Feb 11 07:32:15 2009
@@ -0,0 +1,515 @@
+/*
+ * 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.
+ */
+
+/**
+ * OrderProcessorStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: SNAPSHOT  Built on : Jul 01, 2008 (11:47:57 IST)
+ */
+        package traderorderhost.trade;
+
+        
+
+        /*
+        *  OrderProcessorStub java implementation
+        */
+
+        
+        public class OrderProcessorStub extends org.apache.axis2.client.Stub
+        implements OrderProcessor{
+        protected org.apache.axis2.description.AxisOperation[] _operations;
+
+        //hashmaps to keep the fault mapping
+        private java.util.HashMap faultExceptionNameMap = new java.util.HashMap();
+        private java.util.HashMap faultExceptionClassNameMap = new java.util.HashMap();
+        private java.util.HashMap faultMessageMap = new java.util.HashMap();
+
+        private static int counter = 0;
+
+        private static synchronized String getUniqueSuffix(){
+            // reset the counter if it is greater than 99999
+            if (counter > 99999){
+                counter = 0;
+            }
+            counter = counter + 1; 
+            return Long.toString(System.currentTimeMillis()) + "_" + counter;
+        }
+
+    
+    private void populateAxisService() throws org.apache.axis2.AxisFault {
+
+     //creating the Service with a unique name
+     _service = new org.apache.axis2.description.AxisService("OrderProcessor" + getUniqueSuffix());
+     addAnonymousOperations();
+
+        //creating the operations
+        org.apache.axis2.description.AxisOperation __operation;
+
+        _operations = new org.apache.axis2.description.AxisOperation[3];
+        
+                    __operation = new org.apache.axis2.description.OutOnlyAxisOperation();
+                
+
+            __operation.setName(new javax.xml.namespace.QName("http://Trade.TraderOrderHost", "submitOrderTransactedQueue"));
+	    _service.addOperation(__operation);
+	    
+
+	    
+	    
+            _operations[0]=__operation;
+            
+        
+                    __operation = new org.apache.axis2.description.OutOnlyAxisOperation();
+                
+
+            __operation.setName(new javax.xml.namespace.QName("http://Trade.TraderOrderHost", "isOnline"));
+	    _service.addOperation(__operation);
+	    
+
+	    
+	    
+            _operations[1]=__operation;
+            
+        
+                    __operation = new org.apache.axis2.description.OutOnlyAxisOperation();
+                
+
+            __operation.setName(new javax.xml.namespace.QName("http://Trade.TraderOrderHost", "submitOrder"));
+	    _service.addOperation(__operation);
+	    
+
+	    
+	    
+            _operations[2]=__operation;
+            
+        
+        }
+
+    //populates the faults
+    private void populateFaults(){
+         
+
+
+    }
+
+    /**
+      *Constructor that takes in a configContext
+      */
+
+    public OrderProcessorStub(org.apache.axis2.context.ConfigurationContext configurationContext,
+       java.lang.String targetEndpoint)
+       throws org.apache.axis2.AxisFault {
+         this(configurationContext,targetEndpoint,false);
+   }
+
+
+   /**
+     * Constructor that takes in a configContext  and useseperate listner
+     */
+   public OrderProcessorStub(org.apache.axis2.context.ConfigurationContext configurationContext,
+        java.lang.String targetEndpoint, boolean useSeparateListener)
+        throws org.apache.axis2.AxisFault {
+         //To populate AxisService
+         populateAxisService();
+         populateFaults();
+
+        _serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
+        
+	
+        configurationContext = _serviceClient.getServiceContext().getConfigurationContext();
+
+        _serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
+                targetEndpoint));
+        _serviceClient.getOptions().setUseSeparateListener(useSeparateListener);
+        
+    
+    }
+
+    /**
+     * Default Constructor
+     */
+    public OrderProcessorStub(org.apache.axis2.context.ConfigurationContext configurationContext) throws org.apache.axis2.AxisFault {
+        
+                    this(configurationContext,"http://nandika:9010/TradeOrders" );
+                
+    }
+
+    /**
+     * Default Constructor
+     */
+    public OrderProcessorStub() throws org.apache.axis2.AxisFault {
+        
+                    this("http://nandika:9010/TradeOrders" );
+                
+    }
+
+    /**
+     * Constructor taking the target endpoint
+     */
+    public OrderProcessorStub(java.lang.String targetEndpoint) throws org.apache.axis2.AxisFault {
+        this(null,targetEndpoint);
+    }
+
+
+
+         
+                
+                /**
+                  * Auto generated method signature
+                  * 
+                  */
+                public void  submitOrderTransactedQueue(
+                 traderorderhost.trade.SubmitOrderTransactedQueue submitOrderTransactedQueue3
+
+                ) throws java.rmi.RemoteException
+                
+                
+                {
+                org.apache.axis2.context.MessageContext _messageContext = null;
+
+                
+                org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());
+                _operationClient.getOptions().setAction("SubmitOrder");
+                _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+                
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+                org.apache.axiom.soap.SOAPEnvelope env = null;
+                 _messageContext = new org.apache.axis2.context.MessageContext();
+
+                
+                                                    //Style is Doc.
+                                                    
+                                                                    
+                                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                                    submitOrderTransactedQueue3,
+                                                                    optimizeContent(new javax.xml.namespace.QName("http://Trade.TraderOrderHost",
+                                                                    "submitOrderTransactedQueue")));
+                                                                
+
+              //adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+                // create message context with that soap envelope
+
+            _messageContext.setEnvelope(env);
+
+            // add the message contxt to the operation client
+            _operationClient.addMessageContext(_messageContext);
+
+             _operationClient.execute(true);
+
+           
+              _messageContext.getTransportOut().getSender().cleanup(_messageContext); 
+           
+             return;
+           }
+             
+                
+                /**
+                  * Auto generated method signature
+                  * 
+                  */
+                public void  isOnline(
+                 traderorderhost.trade.IsOnline isOnline4
+
+                ) throws java.rmi.RemoteException
+                
+                
+                {
+                org.apache.axis2.context.MessageContext _messageContext = null;
+
+                
+                org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[1].getName());
+                _operationClient.getOptions().setAction("isOnline");
+                _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+                
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+                org.apache.axiom.soap.SOAPEnvelope env = null;
+                 _messageContext = new org.apache.axis2.context.MessageContext();
+
+                
+                                                    //Style is Doc.
+                                                    
+                                                                    
+                                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                                    isOnline4,
+                                                                    optimizeContent(new javax.xml.namespace.QName("http://Trade.TraderOrderHost",
+                                                                    "isOnline")));
+                                                                
+
+              //adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+                // create message context with that soap envelope
+
+            _messageContext.setEnvelope(env);
+
+            // add the message contxt to the operation client
+            _operationClient.addMessageContext(_messageContext);
+
+             _operationClient.execute(true);
+
+           
+              _messageContext.getTransportOut().getSender().cleanup(_messageContext); 
+           
+             return;
+           }
+             
+                
+                /**
+                  * Auto generated method signature
+                  * 
+                  */
+                public void  submitOrder(
+                 traderorderhost.trade.SubmitOrder submitOrder5
+
+                ) throws java.rmi.RemoteException
+                
+                
+                {
+                org.apache.axis2.context.MessageContext _messageContext = null;
+
+                
+                org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[2].getName());
+                _operationClient.getOptions().setAction("SubmitOrderOnePhase");
+                _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+                
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+                org.apache.axiom.soap.SOAPEnvelope env = null;
+                 _messageContext = new org.apache.axis2.context.MessageContext();
+
+                
+                                                    //Style is Doc.
+                                                    
+                                                                    
+                                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                                    submitOrder5,
+                                                                    optimizeContent(new javax.xml.namespace.QName("http://Trade.TraderOrderHost",
+                                                                    "submitOrder")));
+                                                                
+
+              //adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+                // create message context with that soap envelope
+
+            _messageContext.setEnvelope(env);
+
+            // add the message contxt to the operation client
+            _operationClient.addMessageContext(_messageContext);
+
+             _operationClient.execute(true);
+
+           
+              _messageContext.getTransportOut().getSender().cleanup(_messageContext); 
+           
+             return;
+           }
+            
+
+
+       /**
+        *  A utility method that copies the namepaces from the SOAPEnvelope
+        */
+       private java.util.Map getEnvelopeNamespaces(org.apache.axiom.soap.SOAPEnvelope env){
+        java.util.Map returnMap = new java.util.HashMap();
+        java.util.Iterator namespaceIterator = env.getAllDeclaredNamespaces();
+        while (namespaceIterator.hasNext()) {
+            org.apache.axiom.om.OMNamespace ns = (org.apache.axiom.om.OMNamespace) namespaceIterator.next();
+            returnMap.put(ns.getPrefix(),ns.getNamespaceURI());
+        }
+       return returnMap;
+    }
+
+    
+    
+    private javax.xml.namespace.QName[] opNameArray = null;
+    private boolean optimizeContent(javax.xml.namespace.QName opName) {
+        
+
+        if (opNameArray == null) {
+            return false;
+        }
+        for (int i = 0; i < opNameArray.length; i++) {
+            if (opName.equals(opNameArray[i])) {
+                return true;   
+            }
+        }
+        return false;
+    }
+     //http://nandika:9010/TradeOrders
+            private  org.apache.axiom.om.OMElement  toOM(traderorderhost.trade.SubmitOrderTransactedQueue param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(traderorderhost.trade.SubmitOrderTransactedQueue.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(traderorderhost.trade.IsOnline param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(traderorderhost.trade.IsOnline.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(traderorderhost.trade.SubmitOrder param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(traderorderhost.trade.SubmitOrder.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+                                    
+                                        private  org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, traderorderhost.trade.SubmitOrderTransactedQueue param, boolean optimizeContent)
+                                        throws org.apache.axis2.AxisFault{
+
+                                             
+                                                    try{
+
+                                                            org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+                                                            emptyEnvelope.getBody().addChild(param.getOMElement(traderorderhost.trade.SubmitOrderTransactedQueue.MY_QNAME,factory));
+                                                            return emptyEnvelope;
+                                                        } catch(org.apache.axis2.databinding.ADBException e){
+                                                            throw org.apache.axis2.AxisFault.makeFault(e);
+                                                        }
+                                                
+
+                                        }
+                                
+                             
+                             /* methods to provide back word compatibility */
+
+                             
+                                    
+                                        private  org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, traderorderhost.trade.IsOnline param, boolean optimizeContent)
+                                        throws org.apache.axis2.AxisFault{
+
+                                             
+                                                    try{
+
+                                                            org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+                                                            emptyEnvelope.getBody().addChild(param.getOMElement(traderorderhost.trade.IsOnline.MY_QNAME,factory));
+                                                            return emptyEnvelope;
+                                                        } catch(org.apache.axis2.databinding.ADBException e){
+                                                            throw org.apache.axis2.AxisFault.makeFault(e);
+                                                        }
+                                                
+
+                                        }
+                                
+                             
+                             /* methods to provide back word compatibility */
+
+                             
+                                    
+                                        private  org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, traderorderhost.trade.SubmitOrder param, boolean optimizeContent)
+                                        throws org.apache.axis2.AxisFault{
+
+                                             
+                                                    try{
+
+                                                            org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+                                                            emptyEnvelope.getBody().addChild(param.getOMElement(traderorderhost.trade.SubmitOrder.MY_QNAME,factory));
+                                                            return emptyEnvelope;
+                                                        } catch(org.apache.axis2.databinding.ADBException e){
+                                                            throw org.apache.axis2.AxisFault.makeFault(e);
+                                                        }
+                                                
+
+                                        }
+                                
+                             
+                             /* methods to provide back word compatibility */
+
+                             
+
+
+        /**
+        *  get the default envelope
+        */
+        private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory){
+        return factory.getDefaultEnvelope();
+        }
+
+
+        private  java.lang.Object fromOM(
+        org.apache.axiom.om.OMElement param,
+        java.lang.Class type,
+        java.util.Map extraNamespaces) throws org.apache.axis2.AxisFault{
+
+        try {
+        
+                if (traderorderhost.trade.SubmitOrderTransactedQueue.class.equals(type)){
+                
+                           return traderorderhost.trade.SubmitOrderTransactedQueue.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+           
+                if (traderorderhost.trade.IsOnline.class.equals(type)){
+                
+                           return traderorderhost.trade.IsOnline.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+           
+                if (traderorderhost.trade.SubmitOrder.class.equals(type)){
+                
+                           return traderorderhost.trade.SubmitOrder.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+           
+        } catch (java.lang.Exception e) {
+        throw org.apache.axis2.AxisFault.makeFault(e);
+        }
+           return null;
+        }
+
+
+
+    
+   }
+   



Mime
View raw message