From 50ae48b0a29d9ae3fb5faeb13d4c9e8b4b7c8d11 Mon Sep 17 00:00:00 2001 From: Nicklas Kramer Date: Fri, 22 Aug 2025 14:38:27 +0200 Subject: [PATCH] V17 - Removed obsoleted code from Umbraco.Infrastructure (#19977) * Removing obsoleted code from MigrationPlanExecutor.cs & Interface * Removing obsoleted code from EmailAddressPropertyEditor.cs * Removing obsoleted class CacheRebuilder.cs * Removing obsoleted code from TextBuilder.cs * Removing obsoleted class ICacheRebuilder.cs * Removing obsoleted code from SerilogLogger.cs * Removing the use of Infrastructure IBackgroundTaskQueue.cs and replacing usage with the Core replacement * Removing obsoleted code from the FileUploadPropertyEditor.cs * Removing obsoleted code from BlockValuePropertyValueEditorBase.cs * Removing obsoleted constructors and methods from MultiNodeTreePickerPropertyEditor.cs and TextHeaderWriter.cs * Removing obsoleted code from CacheInstructionService.cs * Bumping obsoleted code from MigrationBase.cs to V18 * Removing obsoleted code from EmailSender.cs * Removing obsoleted code from BlockEditorVarianceHandler.cs * Removing obsoleted code from IBackOfficeApplicationManager.cs * Removing obsoleted code from RedirectTracker.cs & RichTextEditorPastedImages.cs --- .../PublishedCache/IDatabaseCacheRebuilder.cs | 10 +--- .../Services/ICacheInstructionService.cs | 26 -------- .../UmbracoBuilder.CoreServices.cs | 3 - .../HostedServices/BackgroundTaskQueue.cs | 3 +- .../HostedServices/IBackgroundTaskQueue.cs | 21 ------- .../HostedServices/QueuedHostedService.cs | 1 + .../Logging/Serilog/SerilogLogger.cs | 25 -------- .../Mail/EmailSender.cs | 28 --------- .../Migrations/IMigrationPlanExecutor.cs | 12 +--- .../Migrations/MigrationBase.cs | 2 +- .../Migrations/MigrationPlanExecutor.cs | 32 ---------- .../PostMigrations/CacheRebuilder.cs | 33 ----------- .../PostMigrations/ICacheRebuilder.cs | 20 ------- .../ModelsBuilder/Building/TextBuilder.cs | 7 --- .../Building/TextHeaderWriter.cs | 7 --- .../BlockValuePropertyValueEditorBase.cs | 3 - .../EmailAddressPropertyEditor.cs | 13 ---- .../FileUploadPropertyEditor.cs | 59 +------------------ .../MultiNodeTreePickerPropertyEditor.cs | 23 -------- .../RichTextEditorPastedImages.cs | 48 --------------- .../BlockEditorVarianceHandler.cs | 12 ---- .../Routing/RedirectTracker.cs | 43 -------------- .../Security/IBackOfficeApplicationManager.cs | 3 - .../Services/CacheInstructionService.cs | 11 ---- .../DatabaseCacheRebuilder.cs | 4 -- .../Services/EntityXmlSerializerTests.cs | 4 -- 26 files changed, 6 insertions(+), 447 deletions(-) delete mode 100644 src/Umbraco.Infrastructure/HostedServices/IBackgroundTaskQueue.cs delete mode 100644 src/Umbraco.Infrastructure/Migrations/PostMigrations/CacheRebuilder.cs delete mode 100644 src/Umbraco.Infrastructure/Migrations/PostMigrations/ICacheRebuilder.cs diff --git a/src/Umbraco.Core/PublishedCache/IDatabaseCacheRebuilder.cs b/src/Umbraco.Core/PublishedCache/IDatabaseCacheRebuilder.cs index ce46f1152c..cea7cc1fde 100644 --- a/src/Umbraco.Core/PublishedCache/IDatabaseCacheRebuilder.cs +++ b/src/Umbraco.Core/PublishedCache/IDatabaseCacheRebuilder.cs @@ -19,21 +19,13 @@ public interface IDatabaseCacheRebuilder /// Task IsRebuildingAsync() => Task.FromResult(IsRebuilding()); - /// - /// Rebuilds the database cache. - /// - [Obsolete("Use the overload with the useBackgroundThread parameter. Scheduled for removal in Umbraco 17.")] - void Rebuild(); - /// /// Rebuilds the database cache, optionally using a background thread. /// /// Flag indicating whether to use a background thread for the operation and immediately return to the caller. [Obsolete("Use RebuildAsync instead. Scheduled for removal in Umbraco 18.")] void Rebuild(bool useBackgroundThread) -#pragma warning disable CS0618 // Type or member is obsolete - => Rebuild(); -#pragma warning restore CS0618 // Type or member is obsolete + => RebuildAsync(useBackgroundThread); /// /// Rebuilds the database cache, optionally using a background thread. diff --git a/src/Umbraco.Core/Services/ICacheInstructionService.cs b/src/Umbraco.Core/Services/ICacheInstructionService.cs index 94ccea42b4..eb13863324 100644 --- a/src/Umbraco.Core/Services/ICacheInstructionService.cs +++ b/src/Umbraco.Core/Services/ICacheInstructionService.cs @@ -45,31 +45,5 @@ public interface ICacheInstructionService CacheRefresherCollection cacheRefreshers, CancellationToken cancellationToken, string localIdentity, - int lastId) => - ProcessInstructions( - cacheRefreshers, - ServerRole.Unknown, - cancellationToken, - localIdentity, - lastPruned: DateTime.UtcNow, - lastId); - - /// - /// Processes pending database cache instructions. - /// - /// Cache refreshers. - /// Server role. - /// Cancellation token. - /// Local identity of the executing AppDomain. - /// Date of last prune operation. - /// Id of the latest processed instruction. - /// The processing result. - [Obsolete("Use the non-obsolete overload. Scheduled for removal in V17.")] - ProcessInstructionsResult ProcessInstructions( - CacheRefresherCollection cacheRefreshers, - ServerRole serverRole, - CancellationToken cancellationToken, - string localIdentity, - DateTime lastPruned, int lastId); } diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs index 6b48a5a13c..31212f6e1e 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs @@ -234,9 +234,6 @@ public static partial class UmbracoBuilderExtensions // We can simplify this registration once the obsolete IBackgroundTaskQueue is removed. builder.Services.AddSingleton(); builder.Services.AddSingleton(s => s.GetRequiredService()); -#pragma warning disable CS0618 // Type or member is obsolete - builder.Services.AddSingleton(s => s.GetRequiredService()); -#pragma warning restore CS0618 // Type or member is obsolete builder.Services.AddTransient(); diff --git a/src/Umbraco.Infrastructure/HostedServices/BackgroundTaskQueue.cs b/src/Umbraco.Infrastructure/HostedServices/BackgroundTaskQueue.cs index 55b28f984e..d99cb404be 100644 --- a/src/Umbraco.Infrastructure/HostedServices/BackgroundTaskQueue.cs +++ b/src/Umbraco.Infrastructure/HostedServices/BackgroundTaskQueue.cs @@ -1,4 +1,5 @@ using System.Collections.Concurrent; +using Umbraco.Cms.Core.HostedServices; namespace Umbraco.Cms.Infrastructure.HostedServices; @@ -8,9 +9,7 @@ namespace Umbraco.Cms.Infrastructure.HostedServices; /// /// Borrowed from https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-5.0 /// -#pragma warning disable CS0618 // Type or member is obsolete public class BackgroundTaskQueue : IBackgroundTaskQueue -#pragma warning restore CS0618 // Type or member is obsolete { private readonly SemaphoreSlim _signal = new(0); diff --git a/src/Umbraco.Infrastructure/HostedServices/IBackgroundTaskQueue.cs b/src/Umbraco.Infrastructure/HostedServices/IBackgroundTaskQueue.cs deleted file mode 100644 index 8e4a6f6a23..0000000000 --- a/src/Umbraco.Infrastructure/HostedServices/IBackgroundTaskQueue.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Umbraco.Cms.Infrastructure.HostedServices; - -/// -/// A Background Task Queue, to enqueue tasks for executing in the background. -/// -/// -/// Borrowed from https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-5.0 -/// -[Obsolete("This has been relocated into Umbraco.Cms.Core. This definition in Umbraco.Cms.Infrastructure is scheduled for removal in Umbraco 17.")] -public interface IBackgroundTaskQueue : Core.HostedServices.IBackgroundTaskQueue -{ - /// - /// Enqueue a work item to be executed in the background. - /// - void QueueBackgroundWorkItem(Func workItem); - - /// - /// Dequeue the first item on the queue. - /// - Task?> DequeueAsync(CancellationToken cancellationToken); -} diff --git a/src/Umbraco.Infrastructure/HostedServices/QueuedHostedService.cs b/src/Umbraco.Infrastructure/HostedServices/QueuedHostedService.cs index 038691cc99..935cb3a80b 100644 --- a/src/Umbraco.Infrastructure/HostedServices/QueuedHostedService.cs +++ b/src/Umbraco.Infrastructure/HostedServices/QueuedHostedService.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using Umbraco.Cms.Core.HostedServices; namespace Umbraco.Cms.Infrastructure.HostedServices; diff --git a/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs index 8d1f8fecf4..4d78681f19 100644 --- a/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs +++ b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs @@ -19,33 +19,8 @@ public class SerilogLogger : IDisposable public ILogger SerilogLog { get; } - [Obsolete("Scheduled for removal in Umbraco 17.")] - public static SerilogLogger CreateWithDefaultConfiguration( - IHostingEnvironment hostingEnvironment, - ILoggingConfiguration loggingConfiguration, - IConfiguration configuration) => - CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, configuration, out _); - public void Dispose() => (SerilogLog as IDisposable)?.Dispose(); - /// - /// Creates a logger with some pre-defined configuration and remainder from config file - /// - /// Used by UmbracoApplicationBase to get its logger. - [Obsolete("Scheduled for removal in Umbraco 17.")] - public static SerilogLogger CreateWithDefaultConfiguration( - IHostingEnvironment hostingEnvironment, - ILoggingConfiguration loggingConfiguration, - IConfiguration configuration, - out UmbracoFileConfiguration umbracoFileConfig) - { - LoggerConfiguration? serilogConfig = new LoggerConfiguration() - .MinimalConfiguration(hostingEnvironment, loggingConfiguration, configuration, out umbracoFileConfig) - .ReadFrom.Configuration(configuration); - - return new SerilogLogger(serilogConfig); - } - public bool IsEnabled(Type reporting, LogLevel level) => LoggerFor(reporting).IsEnabled(MapLevel(level)); diff --git a/src/Umbraco.Infrastructure/Mail/EmailSender.cs b/src/Umbraco.Infrastructure/Mail/EmailSender.cs index feb00735f2..618323bcd1 100644 --- a/src/Umbraco.Infrastructure/Mail/EmailSender.cs +++ b/src/Umbraco.Infrastructure/Mail/EmailSender.cs @@ -2,13 +2,11 @@ // See LICENSE for more details. using MailKit.Net.Smtp; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MimeKit; using MimeKit.IO; using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Events; using Umbraco.Cms.Core.Mail; using Umbraco.Cms.Core.Models.Email; @@ -30,32 +28,6 @@ public class EmailSender : IEmailSender private GlobalSettings _globalSettings; private readonly IEmailSenderClient _emailSenderClient; - [Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")] - public EmailSender( - ILogger logger, - IOptionsMonitor globalSettings, - IEventAggregator eventAggregator) - : this(logger, globalSettings, eventAggregator,null, null) - { - } - - [Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")] - public EmailSender( - ILogger logger, - IOptionsMonitor globalSettings, - IEventAggregator eventAggregator, - INotificationHandler? handler1, - INotificationAsyncHandler? handler2) - { - _logger = logger; - _eventAggregator = eventAggregator; - _globalSettings = globalSettings.CurrentValue; - _notificationHandlerRegistered = handler1 is not null || handler2 is not null; - _emailSenderClient = StaticServiceProvider.Instance.GetRequiredService(); - globalSettings.OnChange(x => _globalSettings = x); - } - - [ActivatorUtilitiesConstructor] public EmailSender( ILogger logger, IOptionsMonitor globalSettings, diff --git a/src/Umbraco.Infrastructure/Migrations/IMigrationPlanExecutor.cs b/src/Umbraco.Infrastructure/Migrations/IMigrationPlanExecutor.cs index 70350f5e93..d8d0e24081 100644 --- a/src/Umbraco.Infrastructure/Migrations/IMigrationPlanExecutor.cs +++ b/src/Umbraco.Infrastructure/Migrations/IMigrationPlanExecutor.cs @@ -1,13 +1,9 @@ using Umbraco.Cms.Infrastructure.Migrations; -using Umbraco.Extensions; namespace Umbraco.Cms.Core.Migrations; public interface IMigrationPlanExecutor { - [Obsolete("Use ExecutePlan instead. Scheduled for removal in Umbraco 17.")] - string Execute(MigrationPlan plan, string fromState); - /// /// Executes the migration plan. /// @@ -19,13 +15,7 @@ public interface IMigrationPlanExecutor /// A plan can complete partially, the changes of each completed migration will be saved. /// [Obsolete("Use ExecutePlanAsync instead. Scheduled for removal in Umbraco 18.")] - ExecutedMigrationPlan ExecutePlan(MigrationPlan plan, string fromState) - { - var state = Execute(plan, fromState); - - // We have no real way of knowing whether it was successfull or not here, assume true. - return new ExecutedMigrationPlan(plan, fromState, state, true, plan.Transitions.Select(x => x.Value).WhereNotNull().ToList()); - } + ExecutedMigrationPlan ExecutePlan(MigrationPlan plan, string fromState); /// /// Executes the migration plan asynchronously. diff --git a/src/Umbraco.Infrastructure/Migrations/MigrationBase.cs b/src/Umbraco.Infrastructure/Migrations/MigrationBase.cs index 2bfc31231f..b675740936 100644 --- a/src/Umbraco.Infrastructure/Migrations/MigrationBase.cs +++ b/src/Umbraco.Infrastructure/Migrations/MigrationBase.cs @@ -1,7 +1,7 @@ namespace Umbraco.Cms.Infrastructure.Migrations; /// -[Obsolete("Use AsyncMigrationBase instead. Scheduled for removal in Umbraco 17.")] +[Obsolete("Use AsyncMigrationBase instead. Scheduled for removal in Umbraco 18.")] public abstract class MigrationBase : AsyncMigrationBase { /// diff --git a/src/Umbraco.Infrastructure/Migrations/MigrationPlanExecutor.cs b/src/Umbraco.Infrastructure/Migrations/MigrationPlanExecutor.cs index 878d0e4d3b..8ac9fa3e74 100644 --- a/src/Umbraco.Infrastructure/Migrations/MigrationPlanExecutor.cs +++ b/src/Umbraco.Infrastructure/Migrations/MigrationPlanExecutor.cs @@ -1,15 +1,11 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using OpenIddict.Abstractions; -using Org.BouncyCastle.Utilities; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Migrations; -using Umbraco.Cms.Core.Models.Membership; using Umbraco.Cms.Core.PublishedCache; using Umbraco.Cms.Core.Scoping; -using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Infrastructure.Persistence; using Umbraco.Cms.Infrastructure.Scoping; @@ -79,34 +75,6 @@ public class MigrationPlanExecutor : IMigrationPlanExecutor _logger = _loggerFactory.CreateLogger(); } - [Obsolete("Use the non obsoleted constructor instead. Scheduled for removal in v17")] - public MigrationPlanExecutor( - ICoreScopeProvider scopeProvider, - IScopeAccessor scopeAccessor, - ILoggerFactory loggerFactory, - IMigrationBuilder migrationBuilder, - IUmbracoDatabaseFactory databaseFactory, - IDatabaseCacheRebuilder databaseCacheRebuilder, - DistributedCache distributedCache, - IKeyValueService keyValueService, - IServiceScopeFactory serviceScopeFactory) - : this( - scopeProvider, - scopeAccessor, - loggerFactory, - migrationBuilder, - databaseFactory, - databaseCacheRebuilder, - distributedCache, - keyValueService, - serviceScopeFactory, - StaticServiceProvider.Instance.GetRequiredService()) - { - } - - [Obsolete("Use ExecutePlan instead. Scheduled for removal in Umbraco 17.")] - public string Execute(MigrationPlan plan, string fromState) => ExecutePlan(plan, fromState).FinalState; - /// [Obsolete("Use ExecutePlanAsync instead. Scheduled for removal in Umbraco 18.")] public ExecutedMigrationPlan ExecutePlan(MigrationPlan plan, string fromState) => ExecutePlanAsync(plan, fromState).GetAwaiter().GetResult(); diff --git a/src/Umbraco.Infrastructure/Migrations/PostMigrations/CacheRebuilder.cs b/src/Umbraco.Infrastructure/Migrations/PostMigrations/CacheRebuilder.cs deleted file mode 100644 index 76ce8af339..0000000000 --- a/src/Umbraco.Infrastructure/Migrations/PostMigrations/CacheRebuilder.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.PublishedCache; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Infrastructure.Migrations.PostMigrations; - -/// -/// Implements in Umbraco.Web (rebuilding). -/// -[Obsolete("This is no longer used. Scheduled for removal in Umbraco 17.")] -public class CacheRebuilder : ICacheRebuilder -{ - private readonly DistributedCache _distributedCache; - private readonly IDatabaseCacheRebuilder _databaseCacheRebuilder; - - /// - /// Initializes a new instance of the class. - /// - public CacheRebuilder( - DistributedCache distributedCache, - IDatabaseCacheRebuilder databaseCacheRebuilder) - { - _distributedCache = distributedCache; - _databaseCacheRebuilder = databaseCacheRebuilder; - } - - /// - public void Rebuild() - { - _databaseCacheRebuilder.Rebuild(false); - _distributedCache.RefreshAllPublishedSnapshot(); - } -} diff --git a/src/Umbraco.Infrastructure/Migrations/PostMigrations/ICacheRebuilder.cs b/src/Umbraco.Infrastructure/Migrations/PostMigrations/ICacheRebuilder.cs deleted file mode 100644 index 5e53a11a53..0000000000 --- a/src/Umbraco.Infrastructure/Migrations/PostMigrations/ICacheRebuilder.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Umbraco.Cms.Infrastructure.Migrations.PostMigrations; - -/// -/// Rebuilds the published snapshot. -/// -/// -/// -/// This interface exists because the entire published snapshot lives in Umbraco.Web -/// but we may want to trigger rebuilds from Umbraco.Core. These two assemblies should -/// be refactored, really. -/// -/// -[Obsolete("This is no longer used. Scheduled for removal in Umbraco 17.")] -public interface ICacheRebuilder -{ - /// - /// Rebuilds. - /// - void Rebuild(); -} diff --git a/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs index f46e0d66ff..67c263818c 100644 --- a/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs @@ -47,13 +47,6 @@ public class TextBuilder : Builder { } - /// - /// Outputs an "auto-generated" header to a string builder. - /// - /// The string builder. - [Obsolete("Please use the overload taking all parameters. Scheduled for removal in Umbraco 17.")] - public static void WriteHeader(StringBuilder sb) => WriteHeader(sb, true); - /// /// Outputs an "auto-generated" header to a string builder. /// diff --git a/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs index 9ab59516d7..d5e8de20c6 100644 --- a/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs @@ -4,13 +4,6 @@ namespace Umbraco.Cms.Infrastructure.ModelsBuilder.Building; internal static class TextHeaderWriter { - /// - /// Outputs an "auto-generated" header to a string builder. - /// - /// The string builder. - [Obsolete("Please use the overload taking all parameters. Scheduled for removal in Umbraco 17.")] - public static void WriteHeader(StringBuilder sb) => WriteHeader(sb, true); - /// /// Outputs an "auto-generated" header to a string builder. /// diff --git a/src/Umbraco.Infrastructure/PropertyEditors/BlockValuePropertyValueEditorBase.cs b/src/Umbraco.Infrastructure/PropertyEditors/BlockValuePropertyValueEditorBase.cs index 18578d495f..8128643d9a 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/BlockValuePropertyValueEditorBase.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/BlockValuePropertyValueEditorBase.cs @@ -129,9 +129,6 @@ public abstract class BlockValuePropertyValueEditorBase : DataV return result; } - [Obsolete("This method is no longer used within Umbraco. Please use the overload taking all parameters. Scheduled for removal in Umbraco 17.")] - protected void MapBlockValueFromEditor(TValue blockValue) => MapBlockValueFromEditor(blockValue, null, Guid.Empty); - protected void MapBlockValueFromEditor(TValue? editedBlockValue, TValue? currentBlockValue, Guid contentKey) { MapBlockItemDataFromEditor( diff --git a/src/Umbraco.Infrastructure/PropertyEditors/EmailAddressPropertyEditor.cs b/src/Umbraco.Infrastructure/PropertyEditors/EmailAddressPropertyEditor.cs index 4a2c18b3b5..164bc6fd85 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/EmailAddressPropertyEditor.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/EmailAddressPropertyEditor.cs @@ -1,8 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.PropertyEditors.Validators; using Umbraco.Cms.Core.Services; @@ -19,17 +17,6 @@ public class EmailAddressPropertyEditor : DataEditor { private readonly ILocalizedTextService _localizedTextService; - /// - /// Initializes a new instance of the class. - /// - [Obsolete("Please use the constructor taking all parameters. Scheduled for removal in Umbraco 17.")] - public EmailAddressPropertyEditor(IDataValueEditorFactory dataValueEditorFactory) - : this( - dataValueEditorFactory, - StaticServiceProvider.Instance.GetRequiredService()) - { - } - /// /// Initializes a new instance of the class. /// diff --git a/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs b/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs index 32df946ed5..6dd536f32f 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs @@ -2,31 +2,18 @@ // See LICENSE for more details. using System.Diagnostics.CodeAnalysis; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Events; using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Core.Media; using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Notifications; -using Umbraco.Cms.Core.Services; namespace Umbraco.Cms.Core.PropertyEditors; -// TODO (V17): -// - Remove the implementation of INotificationHandler as these have all been refactored out into sepate notification handler classes. -// - Remove the unused parameters from the constructor. - /// /// Defines the file upload property editor. /// [DataEditor( Constants.PropertyEditors.Aliases.UploadField, ValueEditorIsReusable = true)] -public class FileUploadPropertyEditor : DataEditor, IMediaUrlGenerator, - INotificationHandler, INotificationHandler, - INotificationHandler, INotificationHandler, - INotificationHandler +public class FileUploadPropertyEditor : DataEditor, IMediaUrlGenerator { private readonly IIOHelper _ioHelper; @@ -35,10 +22,6 @@ public class FileUploadPropertyEditor : DataEditor, IMediaUrlGenerator, /// public FileUploadPropertyEditor( IDataValueEditorFactory dataValueEditorFactory, - MediaFileManager mediaFileManager, - IOptionsMonitor contentSettings, - UploadAutoFillProperties uploadAutoFillProperties, - IContentService contentService, IIOHelper ioHelper) : base(dataValueEditorFactory) { @@ -71,44 +54,4 @@ public class FileUploadPropertyEditor : DataEditor, IMediaUrlGenerator, /// The corresponding property value editor. protected override IDataValueEditor CreateValueEditor() => DataValueEditorFactory.Create(Attribute!); - - #region Obsolete notification handler notifications - - /// - [Obsolete("This handler is no longer registered. Logic has been migrated to FileUploadContentCopiedNotificationHandler. Scheduled for removal in Umbraco 17.")] - public void Handle(ContentCopiedNotification notification) - { - // This handler is no longer registered. Logic has been migrated to FileUploadContentCopiedNotificationHandler. - } - - /// - [Obsolete("This handler is no longer registered. Logic has been migrated to FileUploadMediaSavingNotificationHandler. Scheduled for removal in Umbraco 17.")] - public void Handle(MediaSavingNotification notification) - { - // This handler is no longer registered. Logic has been migrated to FileUploadMediaSavingNotificationHandler. - } - - /// - [Obsolete("This handler is no longer registered. Logic has been migrated to FileUploadContentDeletedNotificationHandler. Scheduled for removal in Umbraco 17.")] - public void Handle(ContentDeletedNotification notification) - { - // This handler is no longer registered. Logic has been migrated to FileUploadContentDeletedNotificationHandler. - } - - - /// - [Obsolete("This handler is no longer registered. Logic has been migrated to FileUploadMediaDeletedNotificationHandler. Scheduled for removal in Umbraco 17.")] - public void Handle(MediaDeletedNotification notification) - { - // This handler is no longer registered. Logic has been migrated to FileUploadMediaDeletedNotificationHandler. - } - - /// - [Obsolete("This handler is no longer registered. Logic has been migrated to FileUploadMemberDeletedNotificationHandler. Scheduled for removal in Umbraco 17.")] - public void Handle(MemberDeletedNotification notification) - { - // This handler is no longer registered. Logic has been migrated to FileUploadMemberDeletedNotificationHandler. - } - - #endregion } diff --git a/src/Umbraco.Infrastructure/PropertyEditors/MultiNodeTreePickerPropertyEditor.cs b/src/Umbraco.Infrastructure/PropertyEditors/MultiNodeTreePickerPropertyEditor.cs index 75c9b045d8..44ab679e56 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/MultiNodeTreePickerPropertyEditor.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/MultiNodeTreePickerPropertyEditor.cs @@ -85,29 +85,6 @@ public class MultiNodeTreePickerPropertyEditor : DataEditor new ContentTypeValidator(localizedTextService, coreScopeProvider, contentService, mediaService, memberService))); } - /// - /// Initializes a new instance of the class. - /// - [Obsolete("Please use the constructor taking all parameters. Scheduled for removal in Umbraco 17.")] - public MultiNodeTreePickerPropertyValueEditor( - IShortStringHelper shortStringHelper, - IJsonSerializer jsonSerializer, - IIOHelper ioHelper, - DataEditorAttribute attribute) - : this( - shortStringHelper, - jsonSerializer, - ioHelper, - attribute, - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService()) - { - } - /// public IEnumerable GetReferences(object? value) { diff --git a/src/Umbraco.Infrastructure/PropertyEditors/RichTextEditorPastedImages.cs b/src/Umbraco.Infrastructure/PropertyEditors/RichTextEditorPastedImages.cs index 216fe3fdd2..eb0117b1d1 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/RichTextEditorPastedImages.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/RichTextEditorPastedImages.cs @@ -3,14 +3,9 @@ using HtmlAgilityPack; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Exceptions; -using Umbraco.Cms.Core.Hosting; -using Umbraco.Cms.Core.IO; using Umbraco.Cms.Core.Media; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Membership; @@ -18,7 +13,6 @@ using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.Models.TemporaryFile; using Umbraco.Cms.Core.Routing; using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Core.Strings; using Umbraco.Cms.Core.Web; using Umbraco.Cms.Infrastructure.Scoping; using Umbraco.Extensions; @@ -38,48 +32,6 @@ public sealed class RichTextEditorPastedImages private readonly AppCaches _appCaches; private readonly IUserService _userService; - [Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")] - public RichTextEditorPastedImages( - IUmbracoContextAccessor umbracoContextAccessor, - ILogger logger, - IHostingEnvironment hostingEnvironment, - IMediaService mediaService, - IContentTypeBaseServiceProvider contentTypeBaseServiceProvider, - MediaFileManager mediaFileManager, - MediaUrlGeneratorCollection mediaUrlGenerators, - IShortStringHelper shortStringHelper, - IPublishedUrlProvider publishedUrlProvider, - ITemporaryFileService temporaryFileService, - IScopeProvider scopeProvider, - IMediaImportService mediaImportService, - IImageUrlGenerator imageUrlGenerator, - IOptions contentSettings, - IEntityService entityService, - AppCaches appCaches) - : this(umbracoContextAccessor, publishedUrlProvider, temporaryFileService, scopeProvider, mediaImportService, imageUrlGenerator, entityService, appCaches) - { - } - - [Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")] - public RichTextEditorPastedImages( - IUmbracoContextAccessor umbracoContextAccessor, - IPublishedUrlProvider publishedUrlProvider, - ITemporaryFileService temporaryFileService, - IScopeProvider scopeProvider, - IMediaImportService mediaImportService, - IImageUrlGenerator imageUrlGenerator) - : this( - umbracoContextAccessor, - publishedUrlProvider, - temporaryFileService, - scopeProvider, - mediaImportService, - imageUrlGenerator, - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService()) - { - } - public RichTextEditorPastedImages( IUmbracoContextAccessor umbracoContextAccessor, IPublishedUrlProvider publishedUrlProvider, diff --git a/src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/BlockEditorVarianceHandler.cs b/src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/BlockEditorVarianceHandler.cs index 096221e6df..e1272e475b 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/BlockEditorVarianceHandler.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/BlockEditorVarianceHandler.cs @@ -17,18 +17,6 @@ public sealed class BlockEditorVarianceHandler _contentTypeService = contentTypeService; } - [Obsolete("Please use the method that allows alignment for a collection of values. Scheduled for removal in V17.")] - public async Task AlignPropertyVarianceAsync(BlockPropertyValue blockPropertyValue, IPropertyType propertyType, string? culture) - { - culture ??= await _languageService.GetDefaultIsoCodeAsync(); - if (propertyType.VariesByCulture() != VariesByCulture(blockPropertyValue)) - { - blockPropertyValue.Culture = propertyType.VariesByCulture() - ? culture - : null; - } - } - /// /// Aligns a collection of block property values for variance changes. /// diff --git a/src/Umbraco.Infrastructure/Routing/RedirectTracker.cs b/src/Umbraco.Infrastructure/Routing/RedirectTracker.cs index 7cbf91ae8d..18a4d45e67 100644 --- a/src/Umbraco.Infrastructure/Routing/RedirectTracker.cs +++ b/src/Umbraco.Infrastructure/Routing/RedirectTracker.cs @@ -1,8 +1,6 @@ using System.Diagnostics.CodeAnalysis; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Umbraco.Cms.Core; -using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; @@ -41,47 +39,6 @@ namespace Umbraco.Cms.Infrastructure.Routing _publishedContentStatusFilteringService = publishedContentStatusFilteringService; } - [Obsolete("Use the non-obsolete constructor. Scheduled for removal in V17.")] - public RedirectTracker( - IVariationContextAccessor variationContextAccessor, - ILocalizationService localizationService, - IRedirectUrlService redirectUrlService, - IPublishedContentCache contentCache, - IDocumentNavigationQueryService navigationQueryService, - ILogger logger, - IPublishedUrlProvider publishedUrlProvider, - IPublishedContentStatusFilteringService publishedContentStatusFilteringService) - : this( - localizationService, - redirectUrlService, - contentCache, - navigationQueryService, - logger, - publishedUrlProvider, - publishedContentStatusFilteringService) - { - } - - [Obsolete("Use the non-obsolete constructor. Scheduled for removal in V17.")] - public RedirectTracker( - IVariationContextAccessor variationContextAccessor, - ILocalizationService localizationService, - IRedirectUrlService redirectUrlService, - IPublishedContentCache contentCache, - IDocumentNavigationQueryService navigationQueryService, - ILogger logger, - IPublishedUrlProvider publishedUrlProvider) - : this( - localizationService, - redirectUrlService, - contentCache, - navigationQueryService, - logger, - publishedUrlProvider, - StaticServiceProvider.Instance.GetRequiredService()) - { - } - /// public void StoreOldRoute(IContent entity, Dictionary<(int ContentId, string Culture), (Guid ContentKey, string OldRoute)> oldRoutes) { diff --git a/src/Umbraco.Infrastructure/Security/IBackOfficeApplicationManager.cs b/src/Umbraco.Infrastructure/Security/IBackOfficeApplicationManager.cs index 57b7bc06bf..da8b228f33 100644 --- a/src/Umbraco.Infrastructure/Security/IBackOfficeApplicationManager.cs +++ b/src/Umbraco.Infrastructure/Security/IBackOfficeApplicationManager.cs @@ -2,9 +2,6 @@ public interface IBackOfficeApplicationManager { - [Obsolete("Please use the overload that allows for multiple back-office hosts. Will be removed in V17.")] - Task EnsureBackOfficeApplicationAsync(Uri backOfficeUrl, CancellationToken cancellationToken = default); - Task EnsureBackOfficeApplicationAsync(IEnumerable backOfficeHosts, CancellationToken cancellationToken = default) => Task.CompletedTask; diff --git a/src/Umbraco.Infrastructure/Services/CacheInstructionService.cs b/src/Umbraco.Infrastructure/Services/CacheInstructionService.cs index dc697c9a69..29499e3bcb 100644 --- a/src/Umbraco.Infrastructure/Services/CacheInstructionService.cs +++ b/src/Umbraco.Infrastructure/Services/CacheInstructionService.cs @@ -135,17 +135,6 @@ namespace Umbraco.Cms } } - /// - [Obsolete("Use the non-obsolete overload. Scheduled for removal in V17.")] - public ProcessInstructionsResult ProcessInstructions( - CacheRefresherCollection cacheRefreshers, - ServerRole serverRole, - CancellationToken cancellationToken, - string localIdentity, - DateTime lastPruned, - int lastId) => - ProcessInstructions(cacheRefreshers, cancellationToken, localIdentity, lastId); - private CacheInstruction CreateCacheInstruction(IEnumerable instructions, string localIdentity) => new( 0, diff --git a/src/Umbraco.PublishedCache.HybridCache/DatabaseCacheRebuilder.cs b/src/Umbraco.PublishedCache.HybridCache/DatabaseCacheRebuilder.cs index 5b1512ef50..160fdd44f2 100644 --- a/src/Umbraco.PublishedCache.HybridCache/DatabaseCacheRebuilder.cs +++ b/src/Umbraco.PublishedCache.HybridCache/DatabaseCacheRebuilder.cs @@ -56,10 +56,6 @@ internal sealed class DatabaseCacheRebuilder : IDatabaseCacheRebuilder public async Task IsRebuildingAsync() => (await _longRunningOperationService.GetByTypeAsync(RebuildOperationName, 0, 0)).Total != 0; - /// - [Obsolete("Use the overload with the useBackgroundThread parameter. Scheduled for removal in Umbraco 17.")] - public void Rebuild() => Rebuild(false); - /// [Obsolete("Use RebuildAsync instead. Scheduled for removal in Umbraco 18.")] public void Rebuild(bool useBackgroundThread) => diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs index 3661f8abaa..8e6f601f29 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs @@ -164,10 +164,6 @@ internal sealed class EntityXmlSerializerTests : UmbracoIntegrationTest var ignored = new FileUploadPropertyEditor( DataValueEditorFactory, - mediaFileManager, - Mock.Of>(x => x.CurrentValue == contentSettings), - Services.GetRequiredService(), - ContentService, IOHelper); var media = MediaBuilder.CreateMediaImage(mediaType, -1);