Merge pull request #14541 from abpframework/app-instance-id

Introduce Application Instance Id & Rename IApplicationNameAccessor to IApplicationInfoAccessor
pull/14543/head
Halil İbrahim Kalkan 3 years ago committed by GitHub
commit 8cbf281e0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -43,6 +43,12 @@ public static class ServiceCollectionApplicationExtensions
[CanBeNull]
public static string GetApplicationName(this IServiceCollection services)
{
return services.GetSingletonInstance<IApplicationNameAccessor>().ApplicationName;
return services.GetSingletonInstance<IApplicationInfoAccessor>().ApplicationName;
}
[NotNull]
public static string GetApplicationInstanceId(this IServiceCollection services)
{
return services.GetSingletonInstance<IApplicationInfoAccessor>().InstanceId;
}
}

@ -26,6 +26,8 @@ public abstract class AbpApplicationBase : IAbpApplication
public string ApplicationName { get; }
public string InstanceId { get; } = Guid.NewGuid().ToString();
private bool _configuredServices;
internal AbpApplicationBase(
@ -47,7 +49,7 @@ public abstract class AbpApplicationBase : IAbpApplication
ApplicationName = GetApplicationName(options);
services.AddSingleton<IAbpApplication>(this);
services.AddSingleton<IApplicationNameAccessor>(this);
services.AddSingleton<IApplicationInfoAccessor>(this);
services.AddSingleton<IModuleContainer>(this);
services.AddCoreServices();

@ -7,7 +7,7 @@ namespace Volo.Abp;
public interface IAbpApplication :
IModuleContainer,
IApplicationNameAccessor,
IApplicationInfoAccessor,
IDisposable
{
/// <summary>

@ -2,7 +2,7 @@ using JetBrains.Annotations;
namespace Volo.Abp;
public interface IApplicationNameAccessor
public interface IApplicationInfoAccessor
{
/// <summary>
/// Name of the application.
@ -11,4 +11,11 @@ public interface IApplicationNameAccessor
/// </summary>
[CanBeNull]
string ApplicationName { get; }
/// <summary>
/// A unique identifier for this application instance.
/// This value changes whenever the application is restarted.
/// </summary>
[NotNull]
string InstanceId { get; }
}

@ -151,7 +151,7 @@ public class AbpApplication_Initialize_Tests
}
[Fact]
public void Should_Set_And_Get_ApplicationName()
public void Should_Set_And_Get_ApplicationName_And_InstanceId()
{
var applicationName = "MyApplication";
@ -165,10 +165,9 @@ public class AbpApplication_Initialize_Tests
application.Initialize();
application.ServiceProvider
.GetRequiredService<IApplicationNameAccessor>()
.ApplicationName
.ShouldBe(applicationName);
var appInfo = application.ServiceProvider.GetRequiredService<IApplicationInfoAccessor>();
appInfo.ApplicationName.ShouldBe(applicationName);
appInfo.InstanceId.ShouldNotBeNullOrEmpty();
}
using (var application = AbpApplicationFactory.Create<IndependentEmptyModule>(options =>
@ -185,7 +184,7 @@ public class AbpApplication_Initialize_Tests
application.Initialize();
application.ServiceProvider
.GetRequiredService<IApplicationNameAccessor>()
.GetRequiredService<IApplicationInfoAccessor>()
.ApplicationName
.ShouldBe(applicationName);
}
@ -199,7 +198,7 @@ public class AbpApplication_Initialize_Tests
application.Initialize();
application.ServiceProvider
.GetRequiredService<IApplicationNameAccessor>()
.GetRequiredService<IApplicationInfoAccessor>()
.ApplicationName
.ShouldBe(applicationName);
}

@ -22,7 +22,7 @@ public class StaticFeatureSaver : IStaticFeatureSaver, ITransientDependency
protected IFeatureDefinitionRecordRepository FeatureRepository { get; }
protected IFeatureDefinitionSerializer FeatureSerializer { get; }
protected IDistributedCache Cache { get; }
protected IApplicationNameAccessor ApplicationNameAccessor { get; }
protected IApplicationInfoAccessor ApplicationInfoAccessor { get; }
protected IAbpDistributedLock DistributedLock { get; }
protected AbpFeatureOptions FeatureOptions { get; }
protected ICancellationTokenProvider CancellationTokenProvider { get; }
@ -35,7 +35,7 @@ public class StaticFeatureSaver : IStaticFeatureSaver, ITransientDependency
IFeatureDefinitionSerializer featureSerializer,
IDistributedCache cache,
IOptions<AbpDistributedCacheOptions> cacheOptions,
IApplicationNameAccessor applicationNameAccessor,
IApplicationInfoAccessor applicationInfoAccessor,
IAbpDistributedLock distributedLock,
IOptions<AbpFeatureOptions> featureManagementOptions,
ICancellationTokenProvider cancellationTokenProvider)
@ -45,7 +45,7 @@ public class StaticFeatureSaver : IStaticFeatureSaver, ITransientDependency
FeatureRepository = featureRepository;
FeatureSerializer = featureSerializer;
Cache = cache;
ApplicationNameAccessor = applicationNameAccessor;
ApplicationInfoAccessor = applicationInfoAccessor;
DistributedLock = distributedLock;
CancellationTokenProvider = cancellationTokenProvider;
FeatureOptions = featureManagementOptions.Value;
@ -249,7 +249,7 @@ public class StaticFeatureSaver : IStaticFeatureSaver, ITransientDependency
private string GetApplicationDistributedLockKey()
{
return $"{CacheOptions.KeyPrefix}_{ApplicationNameAccessor.ApplicationName}_AbpFeatureUpdateLock";
return $"{CacheOptions.KeyPrefix}_{ApplicationInfoAccessor.ApplicationName}_AbpFeatureUpdateLock";
}
private string GetCommonDistributedLockKey()
@ -259,7 +259,7 @@ public class StaticFeatureSaver : IStaticFeatureSaver, ITransientDependency
private string GetApplicationHashCacheKey()
{
return $"{CacheOptions.KeyPrefix}_{ApplicationNameAccessor.ApplicationName}_AbpFeaturesHash";
return $"{CacheOptions.KeyPrefix}_{ApplicationInfoAccessor.ApplicationName}_AbpFeaturesHash";
}
private string GetCommonStampCacheKey()

@ -22,7 +22,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
protected IPermissionDefinitionRecordRepository PermissionRepository { get; }
protected IPermissionDefinitionSerializer PermissionSerializer { get; }
protected IDistributedCache Cache { get; }
protected IApplicationNameAccessor ApplicationNameAccessor { get; }
protected IApplicationInfoAccessor ApplicationInfoAccessor { get; }
protected IAbpDistributedLock DistributedLock { get; }
protected AbpPermissionOptions PermissionOptions { get; }
protected ICancellationTokenProvider CancellationTokenProvider { get; }
@ -35,7 +35,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
IPermissionDefinitionSerializer permissionSerializer,
IDistributedCache cache,
IOptions<AbpDistributedCacheOptions> cacheOptions,
IApplicationNameAccessor applicationNameAccessor,
IApplicationInfoAccessor applicationInfoAccessor,
IAbpDistributedLock distributedLock,
IOptions<AbpPermissionOptions> permissionOptions,
ICancellationTokenProvider cancellationTokenProvider)
@ -45,7 +45,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
PermissionRepository = permissionRepository;
PermissionSerializer = permissionSerializer;
Cache = cache;
ApplicationNameAccessor = applicationNameAccessor;
ApplicationInfoAccessor = applicationInfoAccessor;
DistributedLock = distributedLock;
CancellationTokenProvider = cancellationTokenProvider;
PermissionOptions = permissionOptions.Value;
@ -249,7 +249,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
private string GetApplicationDistributedLockKey()
{
return $"{CacheOptions.KeyPrefix}_{ApplicationNameAccessor.ApplicationName}_AbpPermissionUpdateLock";
return $"{CacheOptions.KeyPrefix}_{ApplicationInfoAccessor.ApplicationName}_AbpPermissionUpdateLock";
}
private string GetCommonDistributedLockKey()
@ -259,7 +259,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
private string GetApplicationHashCacheKey()
{
return $"{CacheOptions.KeyPrefix}_{ApplicationNameAccessor.ApplicationName}_AbpPermissionsHash";
return $"{CacheOptions.KeyPrefix}_{ApplicationInfoAccessor.ApplicationName}_AbpPermissionsHash";
}
private string GetCommonStampCacheKey()

Loading…
Cancel
Save