Skip to content

Commit dc5d920

Browse files
authored
Merge pull request #488 from dotnetcore/dev
release v1.9.1
2 parents 9776bf4 + c74ad32 commit dc5d920

24 files changed

+132
-3861
lines changed

build/releasenotes.props

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<Project>
22
<PropertyGroup>
33
<EasyCachingCorePackageNotes>
4+
1. Support IServiceProvider in setupActions
45
</EasyCachingCorePackageNotes>
56
<EasyCachingMemcachedPackageNotes>
67
1. Upgrading dependencies.
78
</EasyCachingMemcachedPackageNotes>
89
<EasyCachingRedisPackageNotes>
9-
1. Fixed redis distributed lock for different process.
10-
2. Support code configuration for StackExchange.Redis.
10+
1. Upgrading dependencies.
1111
</EasyCachingRedisPackageNotes>
1212
<EasyCachingSQLitePackageNotes>
1313
1. Upgrading dependencies.
@@ -40,25 +40,22 @@
4040
1. Upgrading dependencies.
4141
</EasyCachingCSRedisPackageNotes>
4242
<EasyCachingCSRedisBusPackageNotes>
43-
1. Support async version of subscribe.
43+
1. Upgrading dependencies.
4444
</EasyCachingCSRedisBusPackageNotes>
4545
<EasyCachingRedisBusPackageNotes>
46-
1. Support code configuration for StackExchange.Redis.
47-
2. Support async version of subscribe.
46+
1. Upgrading dependencies.
4847
</EasyCachingRedisBusPackageNotes>
4948
<EasyCachingRabbitBusPackageNotes>
50-
1. Support async version of subscribe.
49+
1. Upgrading dependencies.
5150
</EasyCachingRabbitBusPackageNotes>
5251
<EasyCachingKafkaBusPackageNotes>
53-
1. Support async version of subscribe.
52+
1. Upgrading dependencies.
5453
</EasyCachingKafkaBusPackageNotes>
5554
<EasyCachingZookeeperBusPackageNotes>
56-
1. Support async version of subscribe.
57-
2. Rename WithConfluentKafkaBus to WithZookeeeperBus.
55+
1. Upgrading dependencies.
5856
</EasyCachingZookeeperBusPackageNotes>
5957
<EasyCachingDiskPackageNotes>
60-
1. Support custom serializer.
61-
2. Fixed DiskCachingProvider async warning.
58+
1. Upgrading dependencies.
6259
</EasyCachingDiskPackageNotes>
6360
<EasyCachingLiteDBPackageNotes>
6461
1. Upgrading dependencies.

build/version.props

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

bus/EasyCaching.Bus.Redis/Configurations/EasyCachingOptionsExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ void configure(RedisBusOptions x)
5858
x.Username = redisOptions.Username;
5959
x.Password = redisOptions.Password;
6060
x.SslHost = redisOptions.SslHost;
61+
x.SerializerName = redisOptions.SerializerName;
6162

6263
foreach (var item in redisOptions.Endpoints) x.Endpoints.Add(item);
6364
}

docs/In-Memory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public class Startup
4646
// below two settings are added in v0.8.0
4747
// enable deep clone when reading object from cache or not, default value is true.
4848
EnableReadDeepClone = true,
49-
// enable deep clone when writing object to cache or not, default valuee is false.
49+
// enable deep clone when writing object to cache or not, default value is false.
5050
EnableWriteDeepClone = false,
5151
};
5252
// the max random second will be added to cache's expiration, default value is 120

interceptor/EasyCaching.Interceptor.AspectCore/EasyCaching.Interceptor.AspectCore.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<ProjectReference Include="..\..\src\EasyCaching.Core\EasyCaching.Core.csproj" />
3636
</ItemGroup>
3737
<ItemGroup>
38-
<PackageReference Include="AspectCore.Core" Version="2.2.0" />
39-
<PackageReference Include="AspectCore.Extensions.DependencyInjection" Version="2.2.0" />
38+
<PackageReference Include="AspectCore.Core" Version="2.3.0" />
39+
<PackageReference Include="AspectCore.Extensions.DependencyInjection" Version="2.3.0" />
4040
</ItemGroup>
4141
</Project>

src/EasyCaching.Core/Configurations/EasyCachingServiceCollectionExtensions.cs

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
namespace Microsoft.Extensions.DependencyInjection
22
{
33
using EasyCaching.Core;
4-
using EasyCaching.Core.Configurations;
5-
using System;
4+
using EasyCaching.Core.Configurations;
5+
using System;
66

77
/// <summary>
88
/// EasyCaching service collection extensions.
99
/// </summary>
1010
public static class EasyCachingServiceCollectionExtensions
1111
{
1212
/// <summary>
13-
/// Adds the easycaching.
13+
/// Adds the EasyCaching.
1414
/// </summary>
1515
/// <returns>The easy caching.</returns>
1616
/// <param name="services">Services.</param>
@@ -30,5 +30,38 @@ public static IServiceCollection AddEasyCaching(this IServiceCollection services
3030

3131
return services;
3232
}
33+
34+
/// <summary>
35+
/// Adds the EasyCaching.
36+
/// </summary>
37+
/// <returns>The easy caching.</returns>
38+
/// <param name="services">Services.</param>
39+
/// <param name="setupAction">Setup action.</param>
40+
public static IServiceCollection AddEasyCaching(this IServiceCollection services, Action<IServiceProvider, EasyCachingOptions> setupAction)
41+
{
42+
ArgumentCheck.NotNull(setupAction, nameof(setupAction));
43+
44+
// Options
45+
services.AddSingleton(sp =>
46+
{
47+
var options = new EasyCachingOptions();
48+
setupAction(sp, options);
49+
return options;
50+
});
51+
52+
// Extension services
53+
services.AddSingleton(sp =>
54+
{
55+
var options = sp.GetRequiredService<EasyCachingOptions>();
56+
foreach (var serviceExtension in options.Extensions)
57+
{
58+
serviceExtension.AddServices(services);
59+
}
60+
61+
return options;
62+
});
63+
64+
return services;
65+
}
3366
}
3467
}

src/EasyCaching.InMemory/DefaultInMemoryCachingProvider.Async.cs

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,12 @@ public override async Task<object> BaseGetAsync(string cacheKey, Type type, Canc
159159
/// <returns>The async.</returns>
160160
/// <param name="cacheKey">Cache key.</param>
161161
/// <param name="cancellationToken">CancellationToken</param>
162-
public override async Task BaseRemoveAsync(string cacheKey, CancellationToken cancellationToken = default)
162+
public override Task BaseRemoveAsync(string cacheKey, CancellationToken cancellationToken = default)
163163
{
164164
ArgumentCheck.NotNullOrWhiteSpace(cacheKey, nameof(cacheKey));
165165

166-
await Task.Run(() => { _cache.Remove(cacheKey); }, cancellationToken);
166+
_cache.Remove(cacheKey);
167+
return Task.CompletedTask;
167168
}
168169

169170
/// <summary>
@@ -175,7 +176,7 @@ public override async Task BaseRemoveAsync(string cacheKey, CancellationToken ca
175176
/// <param name="expiration">Expiration.</param>
176177
/// <param name="cancellationToken">CancellationToken</param>
177178
/// <typeparam name="T">The 1st type parameter.</typeparam>
178-
public override async Task BaseSetAsync<T>(string cacheKey, T cacheValue, TimeSpan expiration, CancellationToken cancellationToken = default)
179+
public override Task BaseSetAsync<T>(string cacheKey, T cacheValue, TimeSpan expiration, CancellationToken cancellationToken = default)
179180
{
180181
ArgumentCheck.NotNullOrWhiteSpace(cacheKey, nameof(cacheKey));
181182
ArgumentCheck.NotNull(cacheValue, nameof(cacheValue), _options.CacheNulls);
@@ -187,12 +188,10 @@ public override async Task BaseSetAsync<T>(string cacheKey, T cacheValue, TimeSp
187188
expiration = expiration.Add(TimeSpan.FromSeconds(addSec));
188189
}
189190

190-
await Task.Run(() =>
191-
{
192-
//var valExpiration = expiration.Seconds <= 1 ? expiration : TimeSpan.FromSeconds(expiration.Seconds / 2);
193-
//var val = new CacheValue<T>(cacheValue, true, valExpiration);
194-
_cache.Set(cacheKey, cacheValue, expiration);
195-
}, cancellationToken);
191+
//var valExpiration = expiration.Seconds <= 1 ? expiration : TimeSpan.FromSeconds(expiration.Seconds / 2);
192+
//var val = new CacheValue<T>(cacheValue, true, valExpiration);
193+
_cache.Set(cacheKey, cacheValue, expiration);
194+
return Task.CompletedTask;
196195
}
197196

198197
/// <summary>
@@ -201,11 +200,11 @@ await Task.Run(() =>
201200
/// <returns>The async.</returns>
202201
/// <param name="cacheKey">Cache key.</param>
203202
/// <param name="cancellationToken">CancellationToken</param>
204-
public override async Task<bool> BaseExistsAsync(string cacheKey, CancellationToken cancellationToken = default)
203+
public override Task<bool> BaseExistsAsync(string cacheKey, CancellationToken cancellationToken = default)
205204
{
206205
ArgumentCheck.NotNullOrWhiteSpace(cacheKey, nameof(cacheKey));
207206

208-
return await Task.FromResult(_cache.Exists(cacheKey));
207+
return Task.FromResult(_cache.Exists(cacheKey));
209208
}
210209

211210
/// <summary>
@@ -214,14 +213,15 @@ public override async Task<bool> BaseExistsAsync(string cacheKey, CancellationTo
214213
/// <returns>The by prefix async.</returns>
215214
/// <param name="prefix">Prefix.</param>
216215
/// <param name="cancellationToken">CancellationToken</param>
217-
public override async Task BaseRemoveByPrefixAsync(string prefix, CancellationToken cancellationToken = default)
216+
public override Task BaseRemoveByPrefixAsync(string prefix, CancellationToken cancellationToken = default)
218217
{
219218
ArgumentCheck.NotNullOrWhiteSpace(prefix, nameof(prefix));
220219

221-
var count = await Task.Run(() => _cache.RemoveByPrefix(prefix), cancellationToken);
220+
var count = _cache.RemoveByPrefix(prefix);
222221

223222
if (_options.EnableLogging)
224223
_logger?.LogInformation($"RemoveByPrefixAsync : prefix = {prefix} , count = {count}");
224+
return Task.CompletedTask;
225225
}
226226

227227
/// <summary>
@@ -230,17 +230,18 @@ public override async Task BaseRemoveByPrefixAsync(string prefix, CancellationTo
230230
/// <returns>The by prefix async.</returns>
231231
/// <param name="pattern">Pattern.</param>
232232
/// <param name="cancellationToken">CancellationToken</param>
233-
public override async Task BaseRemoveByPatternAsync(string pattern, CancellationToken cancellationToken = default)
233+
public override Task BaseRemoveByPatternAsync(string pattern, CancellationToken cancellationToken = default)
234234
{
235235
ArgumentCheck.NotNullOrWhiteSpace(pattern, nameof(pattern));
236236

237237
var searchPattern = this.ProcessSearchKeyPattern(pattern);
238238
var searchKey = this.HandleSearchKeyPattern(pattern);
239-
240-
var count = await Task.Run(() => _cache.RemoveByPattern(searchKey, searchPattern), cancellationToken);
239+
240+
var count = _cache.RemoveByPattern(searchKey, searchPattern);
241241

242242
if (_options.EnableLogging)
243243
_logger?.LogInformation($"BaseRemoveByPatternAsync : pattern = {pattern} , count = {count}");
244+
return Task.CompletedTask;
244245
}
245246

246247
/// <summary>
@@ -251,12 +252,13 @@ public override async Task BaseRemoveByPatternAsync(string pattern, Cancellation
251252
/// <param name="expiration">Expiration.</param>
252253
/// <param name="cancellationToken">CancellationToken</param>
253254
/// <typeparam name="T">The 1st type parameter.</typeparam>
254-
public override async Task BaseSetAllAsync<T>(IDictionary<string, T> values, TimeSpan expiration, CancellationToken cancellationToken = default)
255+
public override Task BaseSetAllAsync<T>(IDictionary<string, T> values, TimeSpan expiration, CancellationToken cancellationToken = default)
255256
{
256257
ArgumentCheck.NotNegativeOrZero(expiration, nameof(expiration));
257258
ArgumentCheck.NotNullAndCountGTZero(values, nameof(values));
258259

259-
await Task.Run(() => _cache.SetAll(values, expiration), cancellationToken);
260+
_cache.SetAll(values, expiration);
261+
return Task.CompletedTask;
260262
}
261263

262264
/// <summary>
@@ -266,16 +268,16 @@ public override async Task BaseSetAllAsync<T>(IDictionary<string, T> values, Tim
266268
/// <param name="cacheKeys">Cache keys.</param>
267269
/// <param name="cancellationToken">CancellationToken</param>
268270
/// <typeparam name="T">The 1st type parameter.</typeparam>
269-
public override async Task<IDictionary<string, CacheValue<T>>> BaseGetAllAsync<T>(IEnumerable<string> cacheKeys, CancellationToken cancellationToken = default)
271+
public override Task<IDictionary<string, CacheValue<T>>> BaseGetAllAsync<T>(IEnumerable<string> cacheKeys, CancellationToken cancellationToken = default)
270272
{
271273
ArgumentCheck.NotNullAndCountGTZero(cacheKeys, nameof(cacheKeys));
272274

273275
if (_options.EnableLogging)
274276
_logger?.LogInformation($"GetAllAsync : cacheKeys = {string.Join(",", cacheKeys)}");
275277

276-
return await Task.FromResult(_cache.GetAll<T>(cacheKeys));
278+
return Task.FromResult(_cache.GetAll<T>(cacheKeys));
277279
}
278-
280+
279281

280282
/// <summary>
281283
/// Get all cacheKey by prefix async.
@@ -298,15 +300,15 @@ public override Task<IEnumerable<string>> BaseGetAllKeysByPrefixAsync(string pre
298300
/// <param name="prefix">Prefix.</param>
299301
/// <param name="cancellationToken">CancellationToken</param>
300302
/// <typeparam name="T">The 1st type parameter.</typeparam>
301-
public override async Task<IDictionary<string, CacheValue<T>>> BaseGetByPrefixAsync<T>(string prefix, CancellationToken cancellationToken = default)
303+
public override Task<IDictionary<string, CacheValue<T>>> BaseGetByPrefixAsync<T>(string prefix, CancellationToken cancellationToken = default)
302304
{
303305
ArgumentCheck.NotNullOrWhiteSpace(prefix, nameof(prefix));
304306
var map = new Dictionary<string, CacheValue<T>>();
305307

306308
if (_options.EnableLogging)
307309
_logger?.LogInformation($"GetByPrefixAsync : prefix = {prefix}");
308310

309-
return await Task.FromResult(_cache.GetByPrefix<T>(prefix));
311+
return Task.FromResult(_cache.GetByPrefix<T>(prefix));
310312
}
311313

312314
/// <summary>
@@ -315,28 +317,29 @@ public override async Task<IDictionary<string, CacheValue<T>>> BaseGetByPrefixAs
315317
/// <returns>The all async.</returns>
316318
/// <param name="cacheKeys">Cache keys.</param>
317319
/// <param name="cancellationToken">CancellationToken</param>
318-
public override async Task BaseRemoveAllAsync(IEnumerable<string> cacheKeys, CancellationToken cancellationToken = default)
320+
public override Task BaseRemoveAllAsync(IEnumerable<string> cacheKeys, CancellationToken cancellationToken = default)
319321
{
320322
ArgumentCheck.NotNullAndCountGTZero(cacheKeys, nameof(cacheKeys));
321323

322324
if (_options.EnableLogging)
323325
_logger?.LogInformation($"RemoveAllAsync : cacheKeys = {string.Join(",", cacheKeys)}");
324326

325-
await Task.Run(() => _cache.RemoveAll(cacheKeys), cancellationToken);
327+
_cache.RemoveAll(cacheKeys);
328+
return Task.CompletedTask;
326329
}
327330

328331
/// <summary>
329332
/// Flush All Cached Item async.
330333
/// </summary>
331334
/// <returns>The async.</returns>
332335
/// <param name="cancellationToken">CancellationToken</param>
333-
public override async Task BaseFlushAsync(CancellationToken cancellationToken = default)
336+
public override Task BaseFlushAsync(CancellationToken cancellationToken = default)
334337
{
335338
if (_options.EnableLogging)
336339
_logger?.LogInformation("FlushAsync");
337340

338341
_cache.Clear();
339-
await Task.CompletedTask;
342+
return Task.CompletedTask;
340343
}
341344

342345
/// <summary>

src/EasyCaching.LiteDB/EasyCaching.LiteDB.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
<ProjectReference Include="..\EasyCaching.Core\EasyCaching.Core.csproj" />
3535
</ItemGroup>
3636
<ItemGroup>
37-
<PackageReference Include="LiteDB" Version="5.0.9" />
37+
<PackageReference Include="LiteDB" Version="5.0.13" />
3838
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
3939
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
4040
</ItemGroup>

0 commit comments

Comments
 (0)