Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

TestHost.cs 2.6 KiB

7 år sedan
Release 2.1 (#55) * add dashboard branch. * add dashboard * add helper methods. * Add data model. * add options. * add empty implement * add dashbaord * add dashboard * Fixed spelling error * rename file. * add dashbaord feature * impl dashboard storage * update nuget reference. * add pages. * deleted unused fiels. * modify resource. * update resource. * rename * update dashboard * rename * impl monitoring api interface. * update solution files. * update samples. * dashboard. * add jsonview resource files. * add json dispatcher. * modify published pages. * add routes. * update pages. * update resources. * update dashboard. * add dashboard of sql server storage impl * nesting files. * fixed query bug. * update resource. * remove some api. * add subscriber page. * update sample * add resource. * remove api. * add SubscriberPage * add resource * generate cshtml. * modify html two table to one table. * update resource. * update css * update subscriber page. * refactor. * cleanup. * cleanup code. * impl history monitoring api. * add home page recevied message real-time * add legend styles. * update js. * modify axis color. * add resource. * update dashboard home page. * update css. * update resource. * modify DefaultSucceedMessageExpirationAfter to 24 hours. * add resx, * add consul discovery. * remove unused file. * add node page. * add node page * node discovery * add kafka sqlserver sample. * update sample. * add okstats. * refactor. * fixed kafka client bugs. * modify node and subscriber pages * refactor. * add Gateway middleware * remove unused files. * update resource. * update gateway. * refactor. * update samples. * remove base middleware * add node switch click event. * add NodeId config to options. * upgrade dependent version. * add PathMatch configuration * update NodePage.cshtml * remove session * remove matchPath * refactor * refactor dashboard middleware * gateway proxy middleware function maturation * remove cookie exp * refactor and remove files. * add CapCache to cache server nodes. * refactor. * renamed message dto. * add extended interface of IContentSerializer and JsonContentSerializer * modify unit test * check the requirement when CAP start. * correct spelling * cleanup code. * add resources. * processing pages will contains Scheduled and Enqueued messages. * processing pages will contains Scheduled and Enqueued messages. * ignore NU1701 Warning. * renamed file. * refactor * implements dashboard interface. * rename reference class. * add mysql monitoring api impl * fix bug of connection driver. * remove cap.UseDashboard. It's will be automatically enabled by registerd services. * fix sql bug * cleanup code and fix spelling * fix postgre sql bug. * fix mysql sql bug. * when storage a received message raising an eception, we will reject the message to queue. * fix spelling mistake * add dashboard instructions to readme * modify error log content. * fix postger sql bug. * fix consul discovery bug. * add dashboard introduction to readme.md * update english resource. * Update README.md * renamed files. * fix postgre sql bug. * cleanup code. * update tests. * rename file. * update samples. * Improved query performance without lock table. (#36) * update sample. * update samples. * fix data reader uncolsed bug. * update add jsonproperty * refactor * revert FetchNextMessageAsync sql * add helper method. * rafactor subscriber handler. * add FailedRetryCount options. * rafactor publisher excutor. * add IPublishExecutor * add failed message processor. * inject failed message processor. * refactor sql storage. * fixed unit tests. * fixed unit test. * fixed postgresql tests. * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * add LAN ip to LocalRequestsOnlyAuthorizationFilter * add and update resource. * add current node name to layout page if user enabled node discovery * modify unit tests. * add callback message sende tests. * add deserlizer by type to IContentSerializer * refactor unit tests * add summary comment. * refactor async method. * add comment and fixed spell error. * refactor. * add custom content serializer extension to CapBuilder * add IMessagePacker * refactor. * add connection pool for kafka producer. * add determines whether the query is null. * add connection pool size config to KafkaOption. * fixed json JObject bug * add custom message wapper interface * remove unused code. * fixed callback topic send error bug. * refactor. * update unit tests. * update samples. * upgrade dependent package. * remove some class from Abstraction namespce to Internal. * optimize consumer related code * add ICallbackMessageSender to DI with singleton. * add and fixed some unit tests. * refactor namespace. * modify class protected level * assemblies internal class are visible to test project * add DeSerialize method to IContentSerializer with type deseralize * refactoring * Fix the phone style dispaly problem * add logs * refactoring * upgrading `Confluent.Kafka` package * Optimize message queue error message prompt. * reorganize error message prompts. * modify error message prompt * add summary comments. * modify dependent * disabled print connection closed log. see: https://github.com/edenhill/librdkafka/issues/516 * Update README.md * Update README.md * Update README.zh-cn.md * Update README.zh-cn.md * fix dashboard not config discovery throw exceptions bug. * Update README.md * update readme * Fixed serialized the message type bug. (#53) * Update README.md * Update README.md * refactoring * refactoring * update readme. * update readme. * add summary comment. * refactoring * optimizing publisher interface * update readme * update readme. * add summary comment. * add summary comment. * add summary comment. * add summary comment. * upgrading package * add summary comment. * optimize the RabbitMQ connection pool * fix the producer connection returned * dispose resource when connection pool is full
7 år sedan
7 år sedan
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using System;
  2. using Microsoft.Extensions.DependencyInjection;
  3. namespace DotNetCore.CAP.SqlServer.Test
  4. {
  5. public abstract class TestHost : IDisposable
  6. {
  7. protected IServiceCollection _services;
  8. protected string _connectionString;
  9. private IServiceProvider _provider;
  10. private IServiceProvider _scopedProvider;
  11. public TestHost()
  12. {
  13. CreateServiceCollection();
  14. PreBuildServices();
  15. BuildServices();
  16. PostBuildServices();
  17. }
  18. protected IServiceProvider Provider => _scopedProvider ?? _provider;
  19. private void CreateServiceCollection()
  20. {
  21. var services = new ServiceCollection();
  22. services.AddOptions();
  23. services.AddLogging();
  24. _connectionString = ConnectionUtil.GetConnectionString();
  25. services.AddSingleton(new SqlServerOptions { ConnectionString = _connectionString });
  26. services.AddSingleton(new CapOptions());
  27. services.AddSingleton<SqlServerStorage>();
  28. _services = services;
  29. }
  30. protected virtual void PreBuildServices()
  31. {
  32. }
  33. private void BuildServices()
  34. {
  35. _provider = _services.BuildServiceProvider();
  36. }
  37. protected virtual void PostBuildServices()
  38. {
  39. }
  40. public IDisposable CreateScope()
  41. {
  42. var scope = CreateScope(_provider);
  43. var loc = scope.ServiceProvider;
  44. _scopedProvider = loc;
  45. return new DelegateDisposable(() =>
  46. {
  47. if (_scopedProvider == loc)
  48. {
  49. _scopedProvider = null;
  50. }
  51. scope.Dispose();
  52. });
  53. }
  54. public IServiceScope CreateScope(IServiceProvider provider)
  55. {
  56. var scope = provider.GetService<IServiceScopeFactory>().CreateScope();
  57. return scope;
  58. }
  59. public T GetService<T>() => Provider.GetService<T>();
  60. public T Ensure<T>(ref T service)
  61. where T : class
  62. => service ?? (service = GetService<T>());
  63. public virtual void Dispose()
  64. {
  65. (_provider as IDisposable)?.Dispose();
  66. }
  67. private class DelegateDisposable : IDisposable
  68. {
  69. private Action _dispose;
  70. public DelegateDisposable(Action dispose)
  71. {
  72. _dispose = dispose;
  73. }
  74. public void Dispose()
  75. {
  76. _dispose();
  77. }
  78. }
  79. }
  80. }