incubator-stonehenge-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bende...@apache.org
Subject svn commit: r798753 - in /incubator/stonehenge/trunk/stocktrader/dotnet: business_service/BusinessServiceImplementation/ business_service/OrderProcessorASyncClient/ common/BasicClient/ trader_client/BusinessServiceClient/
Date Wed, 29 Jul 2009 02:24:01 GMT
Author: bendewey
Date: Wed Jul 29 02:24:00 2009
New Revision: 798753

URL: http://svn.apache.org/viewvc?rev=798753&view=rev
Log:
STONEHENGE-92 thanks Avantika

Modified:
    incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceImplementation/TradeService.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/common/BasicClient/BasicClient.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/BusinessServiceClient/BusinessServiceClient.cs

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceImplementation/TradeService.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceImplementation/TradeService.cs?rev=798753&r1=798752&r2=798753&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceImplementation/TradeService.cs
(original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceImplementation/TradeService.cs
Wed Jul 29 02:24:00 2009
@@ -829,7 +829,7 @@
                                     //This creates a new client with the orderMode specified
using the config info
                                     //from the database. Specifically, the row containing
"DOTNET_BS" in the table
                                     //BSTOOPS
-                                    TradeOrderServiceAsyncClient asyncclient = new TradeOrderServiceAsyncClient(bsConfig.OPSName);
+                                    TradeOrderServiceAsyncClient asyncclient = new TradeOrderServiceAsyncClient(bsConfig.OPSName,
bsConfig.OPS);
 
                                     asyncclient.processOrderASync(order);
 
@@ -874,7 +874,7 @@
                                 //easily knowing where communication and proxy logic sits;
and make changes to services
                                 //you might want to interface with vs. littering proxy calls
throughout the
                                 //business tier itself.
-                                TradeOrderServiceAsyncClient asyncclient = new TradeOrderServiceAsyncClient(bsConfig.OPS);
+                                TradeOrderServiceAsyncClient asyncclient = new TradeOrderServiceAsyncClient(bsConfig.OPSName,
bsConfig.OPS);
                                 asyncclient.processOrderASync(order);
                                 dalOrder.CommitADOTransaction();
 

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs?rev=798753&r1=798752&r2=798753&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs
(original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs
Wed Jul 29 02:24:00 2009
@@ -69,11 +69,11 @@
         /// in the database BSTOPS table
         /// </summary>
         /// <param name="orderMode">The order mode, determines what type of binding/remote
interface is used for communication.</param>
-        public TradeOrderServiceAsyncClient(string orderMode)
+        public TradeOrderServiceAsyncClient(string clientConfig, string url)
         {
             try
             {
-                opsclient = new Client.Client(typeof(IOrderProcessor), ConfigurationManager.AppSettings.Get(orderMode));
+                opsclient = new Client.Client(typeof(IOrderProcessor), ConfigurationManager.AppSettings.Get(clientConfig),
url);
             }
             catch
             {

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/common/BasicClient/BasicClient.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/common/BasicClient/BasicClient.cs?rev=798753&r1=798752&r2=798753&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/common/BasicClient/BasicClient.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/common/BasicClient/BasicClient.cs Wed Jul
29 02:24:00 2009
@@ -46,6 +46,7 @@
         public Connection _connection;
         private Type _type;
         private string _clientConfig;
+        private string _url;
         private string _userName;
         private string _password;
 
@@ -74,6 +75,25 @@
             _connection = new Connection(_type, null, _clientConfig, null,userName,password);
         }
 
+        public ClientList(Type clientContractType, string clientConfig, string url)
+        {
+            _clientConfig = clientConfig;
+            _type = clientContractType;
+            _url = url;
+
+            _connection = new Connection(_type, null, _clientConfig, null, url);
+        }
+
+        public ClientList(Type clientContractType, string clientConfig, string url, string
userName, string password)
+        {
+            _clientConfig = clientConfig;
+            _type = clientContractType;
+            _url = url;
+            _userName = userName;
+            _password = password;
+            _connection = new Connection(_type, null, _clientConfig, null, url, userName,
password);
+        }
+
         public class Connection
         {
             private IChannel _channel;
@@ -83,7 +103,7 @@
             public Type _type;
             string _userName;
             string _password;
-
+            string _url;
 
             /// <summary>
             /// Creates a new Connection instance, which stores all the information for a
cached Channel instance
@@ -101,6 +121,15 @@
                 _factory = factory;
             }
 
+            public Connection(Type type, IChannel channel, string clientConfig, ChannelFactory
factory,string url)
+            {
+                _type = type;
+                _channel = channel;
+                _clientConfig = clientConfig;
+                _factory = factory;
+                _url = url;
+            }
+
             public Connection(Type type, IChannel channel, string clientConfig, ChannelFactory
factory, string userName, string password)
             {
                 _type = type;
@@ -111,6 +140,18 @@
                 _password = password;
             }
 
+            public Connection(Type type, IChannel channel, string clientConfig, ChannelFactory
factory, string url, string userName, string password)
+            {
+                _type = type;
+                _channel = channel;
+                _clientConfig = clientConfig;
+                _factory = factory;
+                _url = url;
+                _userName = userName;
+                _password = password;
+
+            }
+
             /// <summary>
             /// Uses reflection to create a typed generic object.
             /// </summary>
@@ -147,6 +188,27 @@
                 return channelFactory;
             }
 
+            /// <summary>
+            /// Returns a channel factory as an object type. The channel factory will be
created as type "theType"
+            /// </summary>
+            /// <param name="theType">The type representing the service contract type.</param>
+            /// <param name="clientConfiguration">The name of the binding configuration
to be used when creating the factory.</param>
+            /// <param name="url">The endpoint address to be used when creating the
channel factory.</param>
+            /// <returns>object representing a channel factory</returns>
+            public static object createChannelFactory(Type theType, string clientConfiguration,
string url, string userName, string password)
+            {
+                object channelFactory = CreateGeneric(typeof(ChannelFactory<>), theType,
new object[] { clientConfiguration });
+                ((ChannelFactory)channelFactory).Credentials.UserName.UserName = userName;
+                ((ChannelFactory)channelFactory).Credentials.UserName.Password = password;
+                if (!string.IsNullOrEmpty(url))
+                {
+                    var oldAddress = ((ChannelFactory)channelFactory).Endpoint.Address;
+                    ((ChannelFactory)channelFactory).Endpoint.Address = new EndpointAddress(new
Uri(url), oldAddress.Identity);
+                }
+                return channelFactory;
+            }
+
+
             public string ClientConfig
             {
                 get
@@ -159,6 +221,7 @@
                 }
             }
 
+
             /// <summary>
             /// Returns a channel as an IChannel type. The channel will be created using
a channel factory.
             /// </summary>
@@ -193,7 +256,10 @@
                         {
                             if (_factory == null)
                             {
-                                _factory = (ChannelFactory)createChannelFactory(_type, ClientConfig,_userName,_password);
+                                if (_url == null)
+                                    _factory = (ChannelFactory)createChannelFactory(_type,
ClientConfig, _userName, _password);
+                                else
+                                    _factory = (ChannelFactory)createChannelFactory(_type,
ClientConfig, _url, _userName, _password);
                             }
                             if (_channel == null)
                             {
@@ -250,6 +316,7 @@
         public ClientList connection;
         private string _clientConfig;
         private Type _type;
+        private string _url;
 
         /// <summary>
         /// 
@@ -274,6 +341,25 @@
             }
         }
 
+        public Client(Type clientContractType, string clientConfig, string url)
+        {
+            _type = clientContractType;
+            _clientConfig = clientConfig;
+            _url = url;
+            if (connectionDictionary == null)
+                connectionDictionary = new Dictionary<string, ClientList>();
+            try
+            {
+                connection = connectionDictionary[_type.FullName];
+            }
+            catch
+            {
+                //No entry!
+                connection = new ClientList(clientContractType, clientConfig, url);
+                connectionDictionary.Add(_type.FullName, connection);
+            }
+        }
+
         /// <summary>
         /// 
         /// </summary>
@@ -297,6 +383,25 @@
             }
         }
 
+        public Client(Type clientContractType, string clientConfig, string url, string userName,
string password)
+        {
+            _type = clientContractType;
+            _clientConfig = clientConfig;
+            _url = url;
+            if (connectionDictionary == null)
+                connectionDictionary = new Dictionary<string, ClientList>();
+            try
+            {
+                connection = connectionDictionary[_type.FullName];
+            }
+            catch
+            {
+                //No entry!
+                connection = new ClientList(clientContractType, clientConfig, url, userName,
password);
+                connectionDictionary.Add(_type.FullName, connection);
+            }
+        }
+
         /// <summary>
         /// Property that is referenced in custom client code to get a channel from the connection
list.  Hence, when
         /// getting a channel via this property, load balancing and failover will occur.
@@ -320,4 +425,3 @@
         }
     }
 }
-

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/BusinessServiceClient/BusinessServiceClient.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/BusinessServiceClient/BusinessServiceClient.cs?rev=798753&r1=798752&r2=798753&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/BusinessServiceClient/BusinessServiceClient.cs
(original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/BusinessServiceClient/BusinessServiceClient.cs
Wed Jul 29 02:24:00 2009
@@ -87,11 +87,11 @@
             {
                 if (clientConfig.BSName.Equals(Settings.BS_LABEL))
                 {
-                    bslclient = new Client.Client(typeof(ITradeServices), ConfigurationManager.AppSettings.Get(clientConfig.BSName));
+                    bslclient = new Client.Client(typeof(ITradeServices), ConfigurationManager.AppSettings.Get(clientConfig.BSName),
clientConfig.BS);
                 }
                 else
                 {
-                    bslclient = new Client.Client(typeof(ITradeServices), ConfigurationManager.AppSettings.Get(clientConfig.BSName),
Settings.BSL_USERID, Settings.BSL_PASSWORD);
+                    bslclient = new Client.Client(typeof(ITradeServices), ConfigurationManager.AppSettings.Get(clientConfig.BSName),
clientConfig.BS, Settings.BSL_USERID, Settings.BSL_PASSWORD);
                 }
             }
             catch
@@ -452,4 +452,4 @@
         }
 
     }
-}
+}
\ No newline at end of file



Mime
View raw message