Author: drewbai
Date: Fri Dec 19 13:48:13 2008
New Revision: 728166
URL: http://svn.apache.org/viewvc?rev=728166&view=rev
Log:
intial commit (second solution)
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/CustomCertValidator.cs
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorImplementation.csproj
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorService.cs
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/ProcessOrder.cs
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/Properties/
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/Properties/AssemblyInfo.cs
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/stocktrader.snk
(with props)
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/CustomCertValidator.cs
URL:
http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/CustomCertValidator.cs?rev=728166&view=auto
==============================================================================
---
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/CustomCertValidator.cs
(added)
+++
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/CustomCertValidator.cs
Fri Dec 19 13:48:13 2008
@@ -0,0 +1,44 @@
+// .Net StockTrader Sample WCF Application for Benchmarking, Performance
Analysis and Design Considerations for Service-Oriented Applications
+
+//======================================================================================================
+// This is the Order Processor Service Custom Certificate validator. It
utilizes the provide base class,
+// CustomCertificateValidator, that comes with Config Service. This base
class uses a list of thumbprints
+// for valid certificates we want to accept for clients connecting with client
certificates to the secured
+// message security mode endpoint. See the StockTrader Setup and
Configuration Guide for details. You
+// must override the base method getAllowedThumbprints and provide your custom
list, per below. For OPS,
+// the only two certs that will be allowed are those that ship with the
StockTrader sample.
+//======================================================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Trade.Utility;
+
+namespace Trade.OrderProcessorImplementation
+{
+ /// <summary>
+ /// The Order Processor Service custom X.509 certificate validator, that
uses the base class
+ /// provided with Configuration Service. This class is referenced in the
config file, with the
+ /// OPS_M_Security_Behavior behavior configuration for the host exe.
+ /// </summary>
+ public class CustomCertValidator : CustomCertificateValidator
+ {
+ /// <summary>
+ /// Override to provide our list of valid cert thumbprints for the
service.
+ /// </summary>
+ /// <returns></returns>
+ protected override string[] getAllowedThumbprints()
+ {
+ List<string> thumbprints = new List<string>();
+
+ //This is the thumbprint for the BSLClient Certificate in the
BSLClient.pfx file. Spaces should be removed.
+ thumbprints.Add("59d185eae27b5d89df9a90927353206cc89b8a1b");
+
+ //This is the thumbprint for the OPSHost Certificate in the
OPSHost.pfx file. Spaces should be removed. We add
+ //this one as well for allowing the service certificate to be used
when a node checks its own endpoints.
+ thumbprints.Add("fa0f58bb605fa43369e279e8f9088872fde09943");
+
+ return thumbprints.ToArray();
+ }
+ }
+}
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorImplementation.csproj
URL:
http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorImplementation.csproj?rev=728166&view=auto
==============================================================================
---
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorImplementation.csproj
(added)
+++
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorImplementation.csproj
Fri Dec 19 13:48:13 2008
@@ -0,0 +1,113 @@
+<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{657AD453-B00F-4F8A-9A94-25874320DE2C}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Trade.OrderProcessorImplementation</RootNamespace>
+ <AssemblyName>Trade.OrderProcessorImplementation</AssemblyName>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>stocktrader.snk</AssemblyOriginatorKeyFile>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ <SccProjectName>
+ </SccProjectName>
+ <SccLocalPath>
+ </SccLocalPath>
+ <SccAuxPath>
+ </SccAuxPath>
+ <SccProvider>
+ </SccProvider>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'
">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Data" />
+ <Reference Include="System.IdentityModel, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\Program Files\Reference
Assemblies\Microsoft\Framework\v3.0\System.IdentityModel.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Messaging" />
+ <Reference Include="System.Runtime.Serialization, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\Windows\Microsoft.NET\Framework\v3.0\Windows
Communication Foundation\System.Runtime.Serialization.dll</HintPath>
+ </Reference>
+ <Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\Windows\Microsoft.NET\Framework\v3.0\Windows
Communication Foundation\System.ServiceModel.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Transactions" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Trade.BusinessServiceDataContract, Version=2.0.2.0,
Culture=neutral, PublicKeyToken=aaca655dc76c580b, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\..\..\SharedLibraries\BusinessService\Trade.BusinessServiceDataContract.dll</HintPath>
+ </Reference>
+ <Reference Include="Trade.DALFactory, Version=2.0.2.0, Culture=neutral,
PublicKeyToken=aaca655dc76c580b, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\SharedLibraries\Trade.DALFactory.dll</HintPath>
+ </Reference>
+ <Reference Include="Trade.IDAL, Version=2.0.2.0, Culture=neutral,
PublicKeyToken=aaca655dc76c580b, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\SharedLibraries\Trade.IDAL.dll</HintPath>
+ </Reference>
+ <Reference Include="Trade.OrderProcessorContract, Version=2.0.2.0,
Culture=neutral, PublicKeyToken=aaca655dc76c580b, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\..\..\SharedLibraries\OrderProcessorService\Trade.OrderProcessorContract.dll</HintPath>
+ </Reference>
+ <Reference Include="Trade.OrderProcessorServiceConfigurationSettings,
Version=2.0.2.0, Culture=neutral, PublicKeyToken=aaca655dc76c580b,
processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\..\SharedLibraries\Trade.OrderProcessorServiceConfigurationSettings.dll</HintPath>
+ </Reference>
+ <Reference Include="Trade.Utility, Version=2.0.2.0, Culture=neutral,
PublicKeyToken=aaca655dc76c580b, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\SharedLibraries\Trade.Utility.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="CustomCertValidator.cs" />
+ <Compile Include="OrderProcessorService.cs" />
+ <Compile Include="ProcessOrder.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="stocktrader.snk" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets
below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+ <PropertyGroup>
+ <PostBuildEvent>copy "$(TargetPath)" ..\..\..\..\SharedLibraries
+copy "$(TargetDir)$(TargetName).pdb"
..\..\..\..\SharedLibraries</PostBuildEvent>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorService.cs
URL:
http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorService.cs?rev=728166&view=auto
==============================================================================
---
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorService.cs
(added)
+++
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/OrderProcessorService.cs
Fri Dec 19 13:48:13 2008
@@ -0,0 +1,113 @@
+// .Net StockTrader Sample WCF Application for Benchmarking, Performance
Analysis and Design Considerations for Service-Oriented Applications
+
+//======================================================================================================
+// The Order Processor Service implementation class/business logic.
+//======================================================================================================
+
+
+using System;
+using System.Configuration;
+using System.Diagnostics;
+using System.Messaging;
+using System.Transactions;
+using System.ServiceModel;
+using System.ServiceModel.Channels;
+using System.Runtime.Serialization;
+//using ConfigService.ServiceConfigurationBase;
+//using ConfigService.ServiceConfigurationUtility;
+//using ConfigService.ServiceConfigurationHelper;
+using Trade.BusinessServiceDataContract;
+using Trade.OrderProcessorContract;
+using Trade.OrderProcessorServiceConfigurationSettings;
+using Trade.Utility;
+//using Trade.OrderProcessorAsyncClient;
+
+namespace Trade.OrderProcessorImplementation
+{
+
+ /// <summary>
+ /// Service class which implements the Order Processor service contract.
+ /// ReleaseServiceInstanceOnTransactionComplete is marked as false to
support transacted batches from the
+ /// transacted (persisted) durable MSMQ message queue. This is required!
+ /// </summary>
+ [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple,
InstanceContextMode = InstanceContextMode.PerCall)]
+ public class OrderProcessor : IOrderProcessor
+ {
+ public OrderProcessor()
+ {
+
+ }
+
+ /// <summary>
+ /// Interesting in that this service contract is a one-way contract.
However, it
+ // turns out this online check works fine in that we are loosely
couple when working with MSMQ
+ // and still tightly coupled on one-way TCP or HTTP bindings. The
behavior is such
+ // that this method will fail from calling client only on TCP/HTTP
one-way (Async)
+ // bindings, which happens regardless on any method call; but will
not fail on MSMQ bindings
+ // if the messaging service is running. If MSMQ messaging service is
not running at the endpoint,
+ // we will have endpoint not found detection as desired.
+ /// </summary>
+ public void isOnline()
+ {
+ return;
+ }
+
+
+ /// <summary>
+ /// SubmitOrder service operation is a service operation that
processes order messages from the client
+ /// coming in via TCP, HTTP, or a non-transacted (volatile) MSMQ WCF
binding from either the BSL or another remote instance
+ /// of the Order Processor Service running in 'Forward' mode.
+ /// This method *always* uses a System.Transaction tx to ensure
database integrity.
+ /// However, since it is receiving from a non-persisted format, the
order could possibly be lost
+ /// even as database integrity is maintained on the processing of the
order itself.
+ /// This is because if a received order is not processed successfully
to the database, the message
+ /// will not be automatically preserved by the source it is being
received from since that source
+ /// is not a durable (persisted) source.
+ /// </summary>
+ /// <param name="order">Order to submit.</param>
+ public void SubmitOrder(OrderDataModel order)
+ {
+ System.Transactions.TransactionOptions txOps = new
TransactionOptions();
+ txOps.IsolationLevel =
System.Transactions.IsolationLevel.ReadCommitted;
+ txOps.Timeout =
TimeSpan.FromSeconds(Settings.SYSTEMDOTTRANSACTION_TIMEOUT);
+ //Start our System.Transactions tx with the options set above.
+ using (TransactionScope tx = new
TransactionScope(TransactionScopeOption.Required, txOps))
+ {
+ try
+ {
+ processOrder(order);
+
+ //Complete transaction scope!
+ tx.Complete();
+ }
+ catch
+ {
+ throw;
+ }
+ }
+ return;
+ }
+
+ /// <summary>
+ /// Processes the order and creates holding, or sells stock.
+ /// </summary>
+ /// <param name="queuedOrder">Order to process.</param>
+ private void processOrder(OrderDataModel queuedOrder)
+ {
+ //You could extend this application by transforming the order
message
+ //as it comes in to another format, if required. In this case,
+ //no transformation actually takes place since the types are the
same.
+ //You can imagine different systems bridged might have different
schema,
+ //however, and transformations could be rather easily accomplished
here.
+
+ if (queuedOrder.orderID % Settings.DISPLAYNUMBERORDERITERATIONS ==
0)
+ {
+ string message = string.Format("Processing Order {0}, symbol
{1}, type {2}.", queuedOrder.orderID.ToString(), queuedOrder.symbol,
queuedOrder.orderType);
+ StockTraderUtility.writeConsoleMessage(message +
"\n",EventLogEntryType.Information,false, Settings.EVENT_LOG);
+ }
+ ProcessOrder orderService = new ProcessOrder();
+ orderService.ProcessAndCompleteOrder(queuedOrder);
+ return;
+ }
+ }
+}
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/ProcessOrder.cs
URL:
http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/ProcessOrder.cs?rev=728166&view=auto
==============================================================================
---
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/ProcessOrder.cs
(added)
+++
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/ProcessOrder.cs
Fri Dec 19 13:48:13 2008
@@ -0,0 +1,154 @@
+// .Net StockTrader Sample WCF Application for Benchmarking, Performance
Analysis and Design Considerations for Service-Oriented Applications
+
+//======================================================================================================
+// A class that is used to process a submitted order within the StockTraderDB
the database, with required
+// business logic.
+//======================================================================================================
+
+//======================================================================================================
+// Code originally contributed by Microsoft Corporation.
+// This contribution to the Stonehenge project is limited strictly
+// to the source code that is submitted in this submission.
+// Any technology, including underlying platform technology,
+// that is referenced or required by the submitted source code
+// is not a part of the contribution.
+// For example and not by way of limitation,
+// any systems/Windows libraries (WPF, WCF, ASP.NET etc.)
+// required to run the submitted source code is not a part of the contribution
+//======================================================================================================
+
+using System;
+using System.Diagnostics;
+using System.Collections.Generic;
+using System.Text;
+using System.ServiceModel;
+using System.ServiceModel.Description;
+using System.ServiceModel.Dispatcher;
+using System.ServiceModel.Channels;
+using Trade.IDAL;
+using Trade.DALFactory;
+using Trade.BusinessServiceDataContract;
+using Trade.OrderProcessorContract;
+using Trade.OrderProcessorServiceConfigurationSettings;
+using Trade.Utility;
+
+namespace Trade.OrderProcessorImplementation
+{
+ public class ProcessOrder
+ {
+ private IOrder dalOrder;
+
+ public void ProcessAndCompleteOrder(OrderDataModel order)
+ {
+ try
+ {
+ dalOrder = Trade.DALFactory.Order.Create(Settings.DAL);
+ dalOrder.Open(Settings.TRADEDB_SQL_CONN_STRING);
+ decimal total = 0;
+ int holdingid = -1;
+ QuoteDataModel quote =
dalOrder.getQuoteForUpdate(order.symbol);
+ //Get the latest trading price--this is the money going into
(or out of) the users account.
+ order.price = quote.price;
+
+ //Calculate order total, and create/update the Holding. Whole
holding
+ //sells delete the holding, partials sells update the holding
with new amount
+ //(and potentially the order too), and buys create a new
holding.
+ if (order.orderType == StockTraderUtility.ORDER_TYPE_BUY)
+ {
+ holdingid = dalOrder.createHolding(order);
+ total = Convert.ToDecimal(order.quantity) * order.price +
order.orderFee;
+ }
+ else
+ if (order.orderType == StockTraderUtility.ORDER_TYPE_SELL)
+ {
+ holdingid = sellHolding(order);
+ //We will assume here, since the holding cannot be
found, it has already been sold,
+ //perhaps in another browser session.
+ if (holdingid == -1 )
+ return;
+ total = -1 * Convert.ToDecimal(order.quantity) *
order.price + order.orderFee;
+ }
+
+ //Debit/Credit User Account. Note, if we did not want to
allow unlimited margin
+ //trading, we would change the ordering a bit and add the biz
logic here to make
+ //sure the user has enough money to actually buy the shares
they asked for!
+
+ //Now Update Account Balance.
+ dalOrder.updateAccountBalance(order.accountID, total);
+
+ //Update the stock trading volume and price in the quote table
+ dalOrder.updateStockPriceVolume(order.quantity, quote);
+
+ //Now perform our ACID tx test, if requested based on order
type and acid stock symbols
+ if (order.symbol.Equals(StockTraderUtility.ACID_TEST_BUY) &&
order.orderType == StockTraderUtility.ORDER_TYPE_BUY)
+ throw new
Exception(StockTraderUtility.EXCEPTION_MESSAGE_ACID_BUY);
+ else
+ if (order.symbol.Equals(StockTraderUtility.ACID_TEST_SELL)
&& order.orderType == StockTraderUtility.ORDER_TYPE_SELL)
+ throw new
Exception(StockTraderUtility.EXCEPTION_MESSAGE_ACID_SELL);
+
+ //Finally, close the order
+ order.orderStatus = StockTraderUtility.ORDER_STATUS_CLOSED;
+ order.completionDate = DateTime.Now;
+ order.holdingID = holdingid;
+ dalOrder.closeOrder(order);
+ //Done!
+
+ return;
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ dalOrder.Close();
+ }
+ }
+
+ int sellHolding(OrderDataModel order)
+ {
+ //Note, we need to make this call simply becuase holdingID is not
a serialized
+ //property on OrderDataBean; hence we cannot associate a sell
order with a specific
+ //holding without first searching for and retrieving the holding
by order.OrderID.
+ //A better approach would be to serialize the holdingID property
on OrderDataModel,
+ //then this extra query could be avoided. However, we cannot here
becuase WebSphere
+ //Trade 6.1 will not interoperate from the JSP app to .NET backend
services if we do.
+ //Of course, Trade 6.1 could easily be updated to serialize this
property on OrderDataBean,
+ //and then no "compromise" would be needed. But we want this to
work with the existing IBM
+ //Trade 6.1 code as downloadable from IBM's site.
+ HoldingDataModel holding =
dalOrder.getHoldingForUpdate(order.orderID);
+ if (holding == null)
+ throw new
Exception(StockTraderUtility.EXCEPTION_MESSAGE_INVALID_HOLDING_NOT_FOUND);
+ order.accountID = holding.AccountID;
+
+ //There are three distinct business cases here, each needs
different treatment:
+ // a) Quantity requested is less than total shares in the holding
-- update holding.
+ // b) Quantity requested is equal to total shares in the holding
-- delete holding.
+ // c) Quantity requested is greater than total shares in the
holding -- delete holding, update order table.
+ if (order.quantity < holding.quantity)
+ {
+ dalOrder.updateHolding(holding.holdingID, order.quantity);
+ }
+ else
+ if (holding.quantity == order.quantity)
+ {
+ dalOrder.deleteHolding(holding.holdingID);
+ }
+ else
+ //We now need to back-update the order record quantity to
reflect
+ //fact not all shares originally requested were sold since
the holding
+ //had less shares in it, perhaps due to other orders
+ //placed against that holding that completed before this
one. So we will
+ //sell the remaining shares, but need to update the final
order to reflect this.
+ if (order.quantity > holding.quantity)
+ {
+ dalOrder.deleteHolding(holding.holdingID);
+ order.quantity = holding.quantity;
+ order.accountID = holding.AccountID;
+ dalOrder.updateOrder(order);
+ }
+ return holding.holdingID;
+ }
+ }
+}
+
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/Properties/AssemblyInfo.cs
URL:
http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/Properties/AssemblyInfo.cs?rev=728166&view=auto
==============================================================================
---
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/Properties/AssemblyInfo.cs
(added)
+++
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/Properties/AssemblyInfo.cs
Fri Dec 19 13:48:13 2008
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Trade.OrderProcessorImplementation")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct(".NET StockTrader")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed
to COM
+[assembly: Guid("d45bdf08-d1fe-4a76-97ef-23813b802953")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build
Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("2.0.2.0")]
+[assembly: AssemblyFileVersion("2.0.2.0")]
Added:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/stocktrader.snk
URL:
http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/stocktrader.snk?rev=728166&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/stonehenge/contrib/stocktrader/dotnet/StockTrader/OrderProcessorImplementation/stocktrader.snk
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream