Skip to content

Commit e557542

Browse files
Release version 2.1.4 (#97)
* Fixed the connection bug of getting message from table. #83 * update version to 2.1.4 * remove `TableNamePrefix` option from `MySqlOptions` to `EFOptions`. #84 * fixed entityframework rename table name prefix bug. #84 * fixed sql server scripts bug of create table scheme. #85 * fixed entityframework rename table name prefix bug. #84 * modify error message of logger write * Fixed bug of the FailedRetryCount does not increase when raised SubscriberNotFoundException. #90 * Fixed thread safety issue about KafkaOptions. #89 * upgrade nuget package
1 parent 9b4f3d1 commit e557542

20 files changed

+81
-43
lines changed

build/version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<VersionMajor>2</VersionMajor>
44
<VersionMinor>1</VersionMinor>
5-
<VersionPatch>3</VersionPatch>
5+
<VersionPatch>4</VersionPatch>
66
<VersionQuality></VersionQuality>
77
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
88
</PropertyGroup>

src/DotNetCore.CAP.Kafka/KafkaConsumerClient.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,18 @@ public void Dispose()
6666

6767
private void InitKafkaClient()
6868
{
69-
_kafkaOptions.MainConfig["group.id"] = _groupId;
69+
lock (_kafkaOptions)
70+
{
71+
_kafkaOptions.MainConfig["group.id"] = _groupId;
7072

71-
var config = _kafkaOptions.AsKafkaConfig();
72-
_consumerClient = new Consumer<Null, string>(config, null, StringDeserializer);
73-
_consumerClient.OnConsumeError += ConsumerClient_OnConsumeError;
74-
_consumerClient.OnMessage += ConsumerClient_OnMessage;
75-
_consumerClient.OnError += ConsumerClient_OnError;
73+
var config = _kafkaOptions.AsKafkaConfig();
74+
_consumerClient = new Consumer<Null, string>(config, null, StringDeserializer);
75+
_consumerClient.OnConsumeError += ConsumerClient_OnConsumeError;
76+
_consumerClient.OnMessage += ConsumerClient_OnMessage;
77+
_consumerClient.OnError += ConsumerClient_OnError;
78+
}
7679
}
7780

78-
7981
private void ConsumerClient_OnConsumeError(object sender, Message e)
8082
{
8183
var message = e.Deserialize<Null, string>(null, StringDeserializer);

src/DotNetCore.CAP.MySql/CAP.EFOptions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ namespace DotNetCore.CAP
55
{
66
public class EFOptions
77
{
8+
public const string DefaultSchema = "cap";
9+
10+
/// <summary>
11+
/// Gets or sets the table name prefix to use when creating database objects.
12+
/// </summary>
13+
public string TableNamePrefix { get; set; } = DefaultSchema;
14+
815
/// <summary>
916
/// EF db context type.
1017
/// </summary>

src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,32 @@ public void AddServices(IServiceCollection services)
2525
services.AddScoped<ICallbackPublisher, CapPublisher>();
2626
services.AddTransient<IAdditionalProcessor, DefaultAdditionalProcessor>();
2727

28+
AddSingletionMySqlOptions(services);
29+
}
30+
31+
private void AddSingletionMySqlOptions(IServiceCollection services)
32+
{
2833
var mysqlOptions = new MySqlOptions();
34+
2935
_configure(mysqlOptions);
3036

3137
if (mysqlOptions.DbContextType != null)
38+
{
3239
services.AddSingleton(x =>
3340
{
3441
using (var scope = x.CreateScope())
3542
{
3643
var provider = scope.ServiceProvider;
37-
var dbContext = (DbContext) provider.GetService(mysqlOptions.DbContextType);
44+
var dbContext = (DbContext)provider.GetService(mysqlOptions.DbContextType);
3845
mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString;
3946
return mysqlOptions;
4047
}
4148
});
49+
}
4250
else
51+
{
4352
services.AddSingleton(mysqlOptions);
53+
}
4454
}
4555
}
4656
}
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// ReSharper disable once CheckNamespace
2-
32
namespace DotNetCore.CAP
43
{
54
public class MySqlOptions : EFOptions
@@ -8,7 +7,5 @@ public class MySqlOptions : EFOptions
87
/// Gets or sets the database's connection string that will be used to store database entities.
98
/// </summary>
109
public string ConnectionString { get; set; }
11-
12-
public string TableNamePrefix { get; set; } = "cap";
1310
}
1411
}

src/DotNetCore.CAP.MySql/CAP.Options.Extensions.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public static CapOptions UseMySql(this CapOptions options, Action<MySqlOptions>
1616
{
1717
if (configure == null) throw new ArgumentNullException(nameof(configure));
1818

19+
1920
options.RegisterExtension(new MySqlCapOptionsExtension(configure));
2021

2122
return options;
@@ -24,18 +25,19 @@ public static CapOptions UseMySql(this CapOptions options, Action<MySqlOptions>
2425
public static CapOptions UseEntityFramework<TContext>(this CapOptions options)
2526
where TContext : DbContext
2627
{
27-
return options.UseEntityFramework<TContext>(opt => { opt.DbContextType = typeof(TContext); });
28+
return options.UseEntityFramework<TContext>(opt => { });
2829
}
2930

3031
public static CapOptions UseEntityFramework<TContext>(this CapOptions options, Action<EFOptions> configure)
3132
where TContext : DbContext
3233
{
3334
if (configure == null) throw new ArgumentNullException(nameof(configure));
3435

35-
var efOptions = new EFOptions {DbContextType = typeof(TContext)};
36-
configure(efOptions);
37-
38-
options.RegisterExtension(new MySqlCapOptionsExtension(configure));
36+
options.RegisterExtension(new MySqlCapOptionsExtension(x =>
37+
{
38+
configure(x);
39+
x.DbContextType = typeof(TContext);
40+
}));
3941

4042
return options;
4143
}

src/DotNetCore.CAP.MySql/DotNetCore.CAP.MySql.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<PackageReference Include="Dapper" Version="1.50.4" />
1818
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.1" />
1919
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.0.1" />
20-
<PackageReference Include="MySqlConnector" Version="0.34.2" />
20+
<PackageReference Include="MySqlConnector" Version="0.36.0" />
2121
</ItemGroup>
2222

2323
<ItemGroup>

src/DotNetCore.CAP.MySql/MySqlStorageConnection.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public async Task<CapPublishedMessage> GetNextPublishedMessageToBeEnqueuedAsync(
5757

5858
using (var connection = new MySqlConnection(Options.ConnectionString))
5959
{
60+
connection.Open();
6061
connection.Execute("SELECT LAST_INSERT_ID(0)");
6162
return await connection.QueryFirstOrDefaultAsync<CapPublishedMessage>(sql);
6263
}
@@ -103,6 +104,7 @@ public async Task<CapReceivedMessage> GetNextReceivedMessageToBeEnqueuedAsync()
103104

104105
using (var connection = new MySqlConnection(Options.ConnectionString))
105106
{
107+
connection.Open();
106108
connection.Execute("SELECT LAST_INSERT_ID(0)");
107109
return await connection.QueryFirstOrDefaultAsync<CapReceivedMessage>(sql);
108110
}

src/DotNetCore.CAP.PostgreSql/CAP.Options.Extensions.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,19 @@ public static CapOptions UsePostgreSql(this CapOptions options, Action<PostgreSq
2424
public static CapOptions UseEntityFramework<TContext>(this CapOptions options)
2525
where TContext : DbContext
2626
{
27-
return options.UseEntityFramework<TContext>(opt => { opt.DbContextType = typeof(TContext); });
27+
return options.UseEntityFramework<TContext>(opt => { });
2828
}
2929

3030
public static CapOptions UseEntityFramework<TContext>(this CapOptions options, Action<EFOptions> configure)
3131
where TContext : DbContext
3232
{
3333
if (configure == null) throw new ArgumentNullException(nameof(configure));
3434

35-
var efOptions = new EFOptions {DbContextType = typeof(TContext)};
36-
configure(efOptions);
37-
38-
options.RegisterExtension(new PostgreSqlCapOptionsExtension(configure));
35+
options.RegisterExtension(new PostgreSqlCapOptionsExtension(x =>
36+
{
37+
configure(x);
38+
x.DbContextType = typeof(TContext);
39+
}));
3940

4041
return options;
4142
}

src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,16 @@ public void AddServices(IServiceCollection services)
2525
services.AddScoped<ICallbackPublisher, CapPublisher>();
2626
services.AddTransient<IAdditionalProcessor, DefaultAdditionalProcessor>();
2727

28+
AddSingletonPostgreSqlOptions(services);
29+
}
30+
31+
private void AddSingletonPostgreSqlOptions(IServiceCollection services)
32+
{
2833
var postgreSqlOptions = new PostgreSqlOptions();
2934
_configure(postgreSqlOptions);
3035

3136
if (postgreSqlOptions.DbContextType != null)
37+
{
3238
services.AddSingleton(x =>
3339
{
3440
using (var scope = x.CreateScope())
@@ -39,8 +45,11 @@ public void AddServices(IServiceCollection services)
3945
return postgreSqlOptions;
4046
}
4147
});
48+
}
4249
else
50+
{
4351
services.AddSingleton(postgreSqlOptions);
52+
}
4453
}
4554
}
4655
}

0 commit comments

Comments
 (0)