Skip to content

Commit 174a00a

Browse files
authored
Merge pull request #411 from dotnetcore/dev
release v1.7.0
2 parents 769ef24 + 69c032d commit 174a00a

File tree

61 files changed

+2456
-550
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+2456
-550
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,5 @@ jobs:
4444
run: |
4545
for file in nugetpkgs/*.nupkg
4646
do
47-
dotnet nuget push $file -k ${{ secrets.MYGET_API_KEY }} --skip-duplicate -s https://www.myget.org/F/ncc/api/v2/package
47+
dotnet nuget push $file -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate -s https://www.nuget.org/api/v2/package
4848
done

EasyCaching.sln

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Microsoft Visual Studio Solution File, Format Version 12.00
2-
# Visual Studio Version 16
3-
VisualStudioVersion = 16.0.29324.140
2+
# Visual Studio Version 17
3+
VisualStudioVersion = 17.2.32616.157
44
MinimumVisualStudioVersion = 10.0.40219.1
55
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A0F5CC7E-155F-4726-8DEB-E966950B3FE9}"
66
EndProject
@@ -70,6 +70,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyCaching.LiteDB", "src\E
7070
EndProject
7171
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyCaching.Serialization.SystemTextJson", "serialization\EasyCaching.Serialization.SystemTextJson\EasyCaching.Serialization.SystemTextJson.csproj", "{4FCF16BF-5E21-4B74-AB45-3C121ADF1485}"
7272
EndProject
73+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyCaching.Bus.ConfluentKafka", "bus\EasyCaching.Bus.ConfluentKafka\EasyCaching.Bus.ConfluentKafka.csproj", "{F7FBADEB-D766-4595-949A-07104B52692C}"
74+
EndProject
75+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyCaching.Bus.Zookeeper", "bus\EasyCaching.Bus.Zookeeper\EasyCaching.Bus.Zookeeper.csproj", "{5E488583-391E-4E15-83C1-7301B4FE79AE}"
76+
EndProject
7377
Global
7478
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7579
Debug|Any CPU = Debug|Any CPU
@@ -184,6 +188,14 @@ Global
184188
{4FCF16BF-5E21-4B74-AB45-3C121ADF1485}.Debug|Any CPU.Build.0 = Debug|Any CPU
185189
{4FCF16BF-5E21-4B74-AB45-3C121ADF1485}.Release|Any CPU.ActiveCfg = Release|Any CPU
186190
{4FCF16BF-5E21-4B74-AB45-3C121ADF1485}.Release|Any CPU.Build.0 = Release|Any CPU
191+
{F7FBADEB-D766-4595-949A-07104B52692C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
192+
{F7FBADEB-D766-4595-949A-07104B52692C}.Debug|Any CPU.Build.0 = Debug|Any CPU
193+
{F7FBADEB-D766-4595-949A-07104B52692C}.Release|Any CPU.ActiveCfg = Release|Any CPU
194+
{F7FBADEB-D766-4595-949A-07104B52692C}.Release|Any CPU.Build.0 = Release|Any CPU
195+
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
196+
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
197+
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
198+
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Release|Any CPU.Build.0 = Release|Any CPU
187199
EndGlobalSection
188200
GlobalSection(SolutionProperties) = preSolution
189201
HideSolutionNode = FALSE
@@ -216,6 +228,8 @@ Global
216228
{711603E1-8363-4F8D-9AA9-8C03EC8BD35F} = {B4241D34-A973-4A13-BD89-9BAE3F2BDDF6}
217229
{BA850294-3103-4540-8A27-FC768E1DC8FC} = {A0F5CC7E-155F-4726-8DEB-E966950B3FE9}
218230
{4FCF16BF-5E21-4B74-AB45-3C121ADF1485} = {15070C49-A507-4844-BCFE-D319CFBC9A63}
231+
{F7FBADEB-D766-4595-949A-07104B52692C} = {B337509B-75F9-4851-821F-9BBE87C4E4BC}
232+
{5E488583-391E-4E15-83C1-7301B4FE79AE} = {B337509B-75F9-4851-821F-9BBE87C4E4BC}
219233
EndGlobalSection
220234
GlobalSection(ExtensibilityGlobals) = postSolution
221235
SolutionGuid = {63A57886-054B-476C-AAE1-8D7C8917682E}

build/releasenotes.props

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
<Project>
22
<PropertyGroup>
33
<EasyCachingCorePackageNotes>
4-
1. Add CancellationToken for async methods.
4+
1. Remove BinaryFormatter.
5+
2. Support removing cache keys by pattern.
56
</EasyCachingCorePackageNotes>
67
<EasyCachingMemcachedPackageNotes>
7-
1. Add CancellationToken for async methods.
8+
1. Upgrading dependencies.
89
</EasyCachingMemcachedPackageNotes>
910
<EasyCachingRedisPackageNotes>
10-
1. Add CancellationToken for async methods.
11-
2. Add persist key method to redis providers.
11+
1. Upgrading dependencies.
12+
2. Support removing cache keys by pattern.
1213
</EasyCachingRedisPackageNotes>
1314
<EasyCachingSQLitePackageNotes>
14-
1. Add CancellationToken for async methods.
15+
1. Upgrading dependencies.
16+
2. Support removing cache keys by pattern.
1517
</EasyCachingSQLitePackageNotes>
1618
<EasyCachingInMemoryPackageNotes>
17-
1. Add CancellationToken for async methods.
19+
1. Upgrading dependencies.
20+
2. Support removing cache keys by pattern.
1821
</EasyCachingInMemoryPackageNotes>
1922
<EasyCachingHybridPackageNotes>
20-
1. Add CancellationToken for async methods.
23+
1. Upgrading dependencies.
24+
2. Support removing cache keys by pattern.
2125
</EasyCachingHybridPackageNotes>
2226
<EasyCachingAspectCorePackageNotes>
2327
1. Upgrading dependencies.
@@ -38,23 +42,32 @@
3842
1. Upgrading dependencies.
3943
</EasyCachingProtobufPackageNotes>
4044
<EasyCachingCSRedisPackageNotes>
41-
1. Add CancellationToken for async methods.
42-
2. Add persist key method to redis providers.
45+
1. Upgrading dependencies.
46+
2. Support removing cache keys by pattern.
4347
</EasyCachingCSRedisPackageNotes>
4448
<EasyCachingCSRedisBusPackageNotes>
4549
1. Upgrading dependencies.
50+
2. Support removing cache keys by pattern.
4651
</EasyCachingCSRedisBusPackageNotes>
4752
<EasyCachingRedisBusPackageNotes>
4853
1. Upgrading dependencies.
4954
</EasyCachingRedisBusPackageNotes>
5055
<EasyCachingRabbitBusPackageNotes>
5156
1. Upgrading dependencies.
5257
</EasyCachingRabbitBusPackageNotes>
58+
<EasyCachingKafkaBusPackageNotes>
59+
1. Add EasyCachingKafkaBus.
60+
</EasyCachingKafkaBusPackageNotes>
61+
<EasyCachingZookeeperBusPackageNotes>
62+
1. Add EasyCachingZookeeperBus.
63+
</EasyCachingZookeeperBusPackageNotes>
5364
<EasyCachingDiskPackageNotes>
54-
1. Add CancellationToken for async methods.
65+
1. Upgrading dependencies.
66+
2. Support removing cache keys by pattern.
5567
</EasyCachingDiskPackageNotes>
5668
<EasyCachingLiteDBPackageNotes>
57-
1. Add CancellationToken for async methods.
69+
1. Upgrading dependencies.
70+
2. Support removing cache keys by pattern.
5871
</EasyCachingLiteDBPackageNotes>
5972
<EasyCachingSTJsonPackageNotes>
6073
1. Upgrading dependencies.

build/version.props

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
<Project>
22
<PropertyGroup>
3-
<EasyCachingCorePackageVersion>1.6.1</EasyCachingCorePackageVersion>
4-
<EasyCachingMemcachedPackageVersion>1.6.1</EasyCachingMemcachedPackageVersion>
5-
<EasyCachingRedisPackageVersion>1.6.1</EasyCachingRedisPackageVersion>
6-
<EasyCachingSQLitePackageVersion>1.6.1</EasyCachingSQLitePackageVersion>
7-
<EasyCachingInMemoryPackageVersion>1.6.1</EasyCachingInMemoryPackageVersion>
8-
<EasyCachingHybridPackageVersion>1.6.1</EasyCachingHybridPackageVersion>
9-
<EasyCachingAspectCorePackageVersion>1.6.1</EasyCachingAspectCorePackageVersion>
10-
<EasyCachingCastlePackageVersion>1.6.1</EasyCachingCastlePackageVersion>
11-
<EasyCachingResponseCachingPackageVersion>1.6.1</EasyCachingResponseCachingPackageVersion>
12-
<EasyCachingJsonPackageVersion>1.6.1</EasyCachingJsonPackageVersion>
13-
<EasyCachingMessagePackPackageVersion>1.6.1</EasyCachingMessagePackPackageVersion>
14-
<EasyCachingProtobufPackageVersion>1.6.1</EasyCachingProtobufPackageVersion>
15-
<EasyCachingCSRedisPackageVersion>1.6.1</EasyCachingCSRedisPackageVersion>
16-
<EasyCachingRedisBusPackageVersion>1.6.1</EasyCachingRedisBusPackageVersion>
17-
<EasyCachingCSRedisBusPackageVersion>1.6.1</EasyCachingCSRedisBusPackageVersion>
18-
<EasyCachingRabbitBusPackageVersion>1.6.1</EasyCachingRabbitBusPackageVersion>
19-
<EasyCachingDiskPackageVersion>1.6.1</EasyCachingDiskPackageVersion>
20-
<EasyCachingMsExtPackageVersion>1.6.1</EasyCachingMsExtPackageVersion>
21-
<EasyCachingLiteDBPackageVersion>1.6.1</EasyCachingLiteDBPackageVersion>
22-
<EasyCachingSTJsonPackageVersion>1.6.1</EasyCachingSTJsonPackageVersion>
3+
<EasyCachingCorePackageVersion>1.7.0</EasyCachingCorePackageVersion>
4+
<EasyCachingMemcachedPackageVersion>1.7.0</EasyCachingMemcachedPackageVersion>
5+
<EasyCachingRedisPackageVersion>1.7.0</EasyCachingRedisPackageVersion>
6+
<EasyCachingSQLitePackageVersion>1.7.0</EasyCachingSQLitePackageVersion>
7+
<EasyCachingInMemoryPackageVersion>1.7.0</EasyCachingInMemoryPackageVersion>
8+
<EasyCachingHybridPackageVersion>1.7.0</EasyCachingHybridPackageVersion>
9+
<EasyCachingAspectCorePackageVersion>1.7.0</EasyCachingAspectCorePackageVersion>
10+
<EasyCachingCastlePackageVersion>1.7.0</EasyCachingCastlePackageVersion>
11+
<EasyCachingResponseCachingPackageVersion>1.7.0</EasyCachingResponseCachingPackageVersion>
12+
<EasyCachingJsonPackageVersion>1.7.0</EasyCachingJsonPackageVersion>
13+
<EasyCachingMessagePackPackageVersion>1.7.0</EasyCachingMessagePackPackageVersion>
14+
<EasyCachingProtobufPackageVersion>1.7.0</EasyCachingProtobufPackageVersion>
15+
<EasyCachingCSRedisPackageVersion>1.7.0</EasyCachingCSRedisPackageVersion>
16+
<EasyCachingRedisBusPackageVersion>1.7.0</EasyCachingRedisBusPackageVersion>
17+
<EasyCachingCSRedisBusPackageVersion>1.7.0</EasyCachingCSRedisBusPackageVersion>
18+
<EasyCachingRabbitBusPackageVersion>1.7.0</EasyCachingRabbitBusPackageVersion>
19+
<EasyCachingKafkaBusPackageVersion>1.7.0</EasyCachingKafkaBusPackageVersion>
20+
<EasyCachingZookeeperBusPackageVersion>1.7.0</EasyCachingZookeeperBusPackageVersion>
21+
<EasyCachingDiskPackageVersion>1.7.0</EasyCachingDiskPackageVersion>
22+
<EasyCachingMsExtPackageVersion>1.7.0</EasyCachingMsExtPackageVersion>
23+
<EasyCachingLiteDBPackageVersion>1.7.0</EasyCachingLiteDBPackageVersion>
24+
<EasyCachingSTJsonPackageVersion>1.7.0</EasyCachingSTJsonPackageVersion>
2325
</PropertyGroup>
2426
</Project>

bus/EasyCaching.Bus.CSRedis/Configurations/CSRedisOptionsExtension.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ public void AddServices(IServiceCollection services)
4141
{
4242
services.AddOptions();
4343

44-
services.TryAddSingleton<IEasyCachingSerializer, DefaultBinaryFormatterSerializer>();
45-
4644
services.Configure(_name, _configure);
4745

4846
services.AddSingleton<EasyCachingCSRedisClient>(x =>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using Confluent.Kafka;
2+
3+
namespace EasyCaching.Bus.ConfluentKafka
4+
{
5+
/// <summary>
6+
/// kafka bus options
7+
/// </summary>
8+
public class ConfluentKafkaBusOptions
9+
{
10+
/// <summary>
11+
/// kafka address(BootstrapServers must)
12+
/// </summary>
13+
public string BootstrapServers { get; set; }
14+
15+
16+
/// <summary>
17+
/// kafka bus producer options.
18+
/// </summary>
19+
public ProducerConfig ProducerConfig { get; set; }
20+
21+
/// <summary>
22+
/// kafka bus consumer options.(if GroupId value below is empty,then ConsumerConfig.GroupId must )
23+
/// </summary>
24+
public ConsumerConfig ConsumerConfig { get; set; }
25+
26+
/// <summary>
27+
/// kafka bus consumer options with consumer groupId
28+
/// (if ConsumerConfig below has give GroupId value , this options can ignore)
29+
/// import:if application is cluster,you should set this different value in application,this will make consumer can consumerdata
30+
/// </summary>
31+
public string GroupId { get; set; }
32+
33+
/// <summary>
34+
/// kafka bus consumer consume count
35+
/// </summary>
36+
public int ConsumerCount { get; set; } = 1;
37+
}
38+
39+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
namespace EasyCaching.Bus.ConfluentKafka
2+
{
3+
using System;
4+
using EasyCaching.Core.Bus;
5+
using EasyCaching.Core.Configurations;
6+
using EasyCaching.Core.Serialization;
7+
using Microsoft.Extensions.DependencyInjection;
8+
using Microsoft.Extensions.DependencyInjection.Extensions;
9+
10+
/// <summary>
11+
/// Kafka options extension.
12+
/// </summary>
13+
internal sealed class ConfluentKafkaOptionsExtension : IEasyCachingOptionsExtension
14+
{
15+
16+
private readonly Action<ConfluentKafkaBusOptions> _confluentKafkaBusOptions;
17+
18+
public ConfluentKafkaOptionsExtension(Action<ConfluentKafkaBusOptions> confluentKafkaBusOptions)
19+
{
20+
this._confluentKafkaBusOptions = confluentKafkaBusOptions;
21+
}
22+
23+
/// <summary>
24+
/// Adds the services.
25+
/// </summary>
26+
/// <param name="services">Services.</param>
27+
public void AddServices(IServiceCollection services)
28+
{
29+
services.AddOptions();
30+
31+
services.AddOptions<ConfluentKafkaBusOptions>()
32+
.Configure(_confluentKafkaBusOptions);
33+
34+
35+
//var options = services.BuildServiceProvider()
36+
// .GetRequiredService<IOptions<ConfluentKafkaBusOptions>>()
37+
// .Value;
38+
39+
services.AddSingleton<IEasyCachingBus, DefaultConfluentKafkaBus>();
40+
41+
}
42+
}
43+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
namespace Microsoft.Extensions.DependencyInjection
2+
{
3+
using Confluent.Kafka;
4+
using EasyCaching.Bus.ConfluentKafka;
5+
using EasyCaching.Core;
6+
using EasyCaching.Core.Configurations;
7+
using Microsoft.Extensions.Configuration;
8+
using System;
9+
10+
/// <summary>
11+
/// EasyCaching options extensions.
12+
/// </summary>
13+
public static class EasyCachingOptionsExtensions
14+
{
15+
/// <summary>
16+
/// Withs the ConfluentKafka bus (specify the config via hard code).
17+
/// </summary>
18+
/// <param name="options"></param>
19+
/// <param name="configure"></param>
20+
/// <returns></returns>
21+
public static EasyCachingOptions WithConfluentKafkaBus(
22+
this EasyCachingOptions options
23+
, Action<ConfluentKafkaBusOptions> configure
24+
)
25+
{
26+
ArgumentCheck.NotNull(configure, nameof(configure));
27+
//option convert
28+
ConfluentKafkaBusOptions kafkaOptions = new ConfluentKafkaBusOptions();
29+
configure.Invoke(kafkaOptions);
30+
void kafkaBusConfigure(ConfluentKafkaBusOptions x)
31+
{
32+
x.BootstrapServers = kafkaOptions.BootstrapServers;
33+
x.ProducerConfig = kafkaOptions.ProducerConfig ?? new ProducerConfig();
34+
x.ConsumerConfig = kafkaOptions.ConsumerConfig ?? new ConsumerConfig();
35+
//address
36+
x.ProducerConfig.BootstrapServers = x.ProducerConfig.BootstrapServers ?? kafkaOptions.BootstrapServers;
37+
x.ConsumerConfig.BootstrapServers = x.ConsumerConfig.BootstrapServers ?? kafkaOptions.BootstrapServers;
38+
//consumer groupId
39+
x.ConsumerConfig.GroupId = x.ConsumerConfig.GroupId ?? kafkaOptions.GroupId;
40+
x.ConsumerConfig.AutoOffsetReset = kafkaOptions.ConsumerConfig.AutoOffsetReset ?? AutoOffsetReset.Latest;
41+
}
42+
43+
options.RegisterExtension(new ConfluentKafkaOptionsExtension(kafkaBusConfigure));
44+
return options;
45+
}
46+
47+
/// <summary>
48+
/// Withs the ConfluentKafka bus (read config from configuration file).
49+
/// </summary>
50+
/// <param name="options"></param>
51+
/// <param name="configuration"></param>
52+
/// <param name="sectionName">The section name in the configuration file.</param>
53+
/// <returns></returns>
54+
public static EasyCachingOptions WithConfluentKafkaBus(
55+
this EasyCachingOptions options
56+
, IConfiguration configuration
57+
, string sectionName = EasyCachingConstValue.KafkaBusSection
58+
)
59+
{
60+
var dbConfig = configuration.GetSection(sectionName);
61+
var kafkaOptions = new ConfluentKafkaBusOptions();
62+
dbConfig.Bind(kafkaOptions);
63+
64+
void configure(ConfluentKafkaBusOptions x)
65+
{
66+
x.BootstrapServers = kafkaOptions.BootstrapServers;
67+
x.ProducerConfig = kafkaOptions.ProducerConfig ?? new ProducerConfig();
68+
x.ConsumerConfig = kafkaOptions.ConsumerConfig ?? new ConsumerConfig();
69+
//address
70+
x.ProducerConfig.BootstrapServers = x.ProducerConfig.BootstrapServers ?? kafkaOptions.BootstrapServers;
71+
x.ConsumerConfig.BootstrapServers = x.ConsumerConfig.BootstrapServers ?? kafkaOptions.BootstrapServers;
72+
//consumer groupId
73+
x.ConsumerConfig.GroupId = x.ConsumerConfig.GroupId ?? kafkaOptions.GroupId;
74+
x.ConsumerConfig.AutoOffsetReset = kafkaOptions.ConsumerConfig.AutoOffsetReset ?? AutoOffsetReset.Latest;
75+
}
76+
77+
options.RegisterExtension(new ConfluentKafkaOptionsExtension(configure));
78+
return options;
79+
}
80+
}
81+
}

0 commit comments

Comments
 (0)