diff --git a/src/Umbraco.Examine/IUmbracoIndexConfig.cs b/src/Umbraco.Examine/IUmbracoIndexConfig.cs
new file mode 100644
index 0000000000..02c6c51d0c
--- /dev/null
+++ b/src/Umbraco.Examine/IUmbracoIndexConfig.cs
@@ -0,0 +1,12 @@
+using Examine;
+
+namespace Umbraco.Examine
+{
+ public interface IUmbracoIndexConfig
+ {
+ IContentValueSetValidator GetContentValueSetValidator();
+ IContentValueSetValidator GetPublishedContentValueSetValidator();
+ IValueSetValidator GetMemberValueSetValidator();
+
+ }
+}
diff --git a/src/Umbraco.Examine/Umbraco.Examine.csproj b/src/Umbraco.Examine/Umbraco.Examine.csproj
index e28a8e674e..e30d355dfe 100644
--- a/src/Umbraco.Examine/Umbraco.Examine.csproj
+++ b/src/Umbraco.Examine/Umbraco.Examine.csproj
@@ -64,9 +64,11 @@
+
+
diff --git a/src/Umbraco.Examine/UmbracoIndexConfig.cs b/src/Umbraco.Examine/UmbracoIndexConfig.cs
new file mode 100644
index 0000000000..7ad9c638d3
--- /dev/null
+++ b/src/Umbraco.Examine/UmbracoIndexConfig.cs
@@ -0,0 +1,34 @@
+using Examine;
+using Umbraco.Core.Services;
+using Umbraco.Core.Services.Implement;
+
+namespace Umbraco.Examine
+{
+ public class UmbracoIndexConfig : IUmbracoIndexConfig
+ {
+ public UmbracoIndexConfig(IPublicAccessService publicAccessService)
+ {
+ PublicAccessService = publicAccessService;
+ }
+
+ protected IPublicAccessService PublicAccessService { get; }
+ public IContentValueSetValidator GetContentValueSetValidator()
+ {
+ return new ContentValueSetValidator(false, true, PublicAccessService);
+ }
+
+ public IContentValueSetValidator GetPublishedContentValueSetValidator()
+ {
+ return new ContentValueSetValidator(true, false, PublicAccessService);
+ }
+
+ ///
+ /// Returns the for the member indexer
+ ///
+ ///
+ public IValueSetValidator GetMemberValueSetValidator()
+ {
+ return new MemberValueSetValidator();
+ }
+ }
+}
diff --git a/src/Umbraco.Web/Search/ExamineComposer.cs b/src/Umbraco.Web/Search/ExamineComposer.cs
index 0ade432d70..b30f0cbe03 100644
--- a/src/Umbraco.Web/Search/ExamineComposer.cs
+++ b/src/Umbraco.Web/Search/ExamineComposer.cs
@@ -29,6 +29,7 @@ namespace Umbraco.Web.Search
composition.Register(Lifetime.Singleton);
composition.Register(Lifetime.Singleton);
+ composition.RegisterUnique();
composition.RegisterUnique();
composition.RegisterUnique(factory =>
new ContentValueSetBuilder(
diff --git a/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs b/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs
index 5ac5529be5..ec536b9d75 100644
--- a/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs
+++ b/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using Umbraco.Core.Logging;
using Umbraco.Core.Services;
using Umbraco.Examine;
@@ -19,18 +20,20 @@ namespace Umbraco.Web.Search
public UmbracoIndexesCreator(IProfilingLogger profilingLogger,
ILocalizationService languageService,
IPublicAccessService publicAccessService,
- IMemberService memberService)
+ IMemberService memberService, IUmbracoIndexConfig umbracoIndexConfig)
{
ProfilingLogger = profilingLogger ?? throw new System.ArgumentNullException(nameof(profilingLogger));
LanguageService = languageService ?? throw new System.ArgumentNullException(nameof(languageService));
PublicAccessService = publicAccessService ?? throw new System.ArgumentNullException(nameof(publicAccessService));
MemberService = memberService ?? throw new System.ArgumentNullException(nameof(memberService));
+ UmbracoIndexConfig = umbracoIndexConfig;
}
protected IProfilingLogger ProfilingLogger { get; }
protected ILocalizationService LanguageService { get; }
protected IPublicAccessService PublicAccessService { get; }
protected IMemberService MemberService { get; }
+ protected IUmbracoIndexConfig UmbracoIndexConfig { get; }
///
/// Creates the Umbraco indexes
@@ -55,7 +58,8 @@ namespace Umbraco.Web.Search
new CultureInvariantWhitespaceAnalyzer(),
ProfilingLogger,
LanguageService,
- GetContentValueSetValidator());
+ GetContentValueSetValidator()
+ );
return index;
}
@@ -80,28 +84,31 @@ namespace Umbraco.Web.Search
CreateFileSystemLuceneDirectory(Constants.UmbracoIndexes.MembersIndexPath),
new CultureInvariantWhitespaceAnalyzer(),
ProfilingLogger,
- GetMemberValueSetValidator());
+ GetMemberValueSetValidator()
+ );
return index;
}
-
+ [Obsolete("This method should not be used and will be removed in future versions. GetContentValueSetValidator was moved to IUmbracoIndexConfig")]
public virtual IContentValueSetValidator GetContentValueSetValidator()
{
- return new ContentValueSetValidator(false, true, PublicAccessService);
+ return UmbracoIndexConfig.GetContentValueSetValidator();
}
-
+ [Obsolete("This method should not be used and will be removed in future versions. GetPublishedContentValueSetValidator was moved to IUmbracoIndexConfig")]
public virtual IContentValueSetValidator GetPublishedContentValueSetValidator()
{
- return new ContentValueSetValidator(true, false, PublicAccessService);
+ return UmbracoIndexConfig.GetPublishedContentValueSetValidator();
}
///
/// Returns the for the member indexer
///
///
+ [Obsolete("This method should not be used and will be removed in future versions. GetMemberValueSetValidator was moved to IUmbracoIndexConfig")]
public virtual IValueSetValidator GetMemberValueSetValidator()
{
- return new MemberValueSetValidator();
+ return UmbracoIndexConfig.GetMemberValueSetValidator();
}
+
}
}