Resvolution - Components, Runtime & Booting

This commit is contained in:
Stephan
2016-09-01 19:06:08 +02:00
parent 18f3a7fbab
commit 0597eea72b
405 changed files with 5114 additions and 6261 deletions

View File

@@ -37,8 +37,9 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
ICacheProvider requestCache,
IEnumerable<IUrlSegmentProvider> segmentProviders,
IFacadeAccessor facadeAccessor,
MainDom mainDom,
bool testing = false, bool enableRepositoryEvents = true)
: this(serviceContext, uowProvider, requestCache, segmentProviders, facadeAccessor, null, testing, enableRepositoryEvents)
: this(serviceContext, uowProvider, requestCache, segmentProviders, facadeAccessor, null, mainDom, testing, enableRepositoryEvents)
{ }
// used in some tests
@@ -47,8 +48,9 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
ICacheProvider requestCache,
IFacadeAccessor facadeAccessor,
PublishedContentTypeCache contentTypeCache,
MainDom mainDom,
bool testing, bool enableRepositoryEvents)
: this(serviceContext, uowProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(), facadeAccessor, contentTypeCache, testing, enableRepositoryEvents)
: this(serviceContext, uowProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(), facadeAccessor, contentTypeCache, mainDom, testing, enableRepositoryEvents)
{ }
private FacadeService(ServiceContext serviceContext,
@@ -57,6 +59,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
IEnumerable<IUrlSegmentProvider> segmentProviders,
IFacadeAccessor facadeAccessor,
PublishedContentTypeCache contentTypeCache,
MainDom mainDom,
bool testing, bool enableRepositoryEvents)
: base(facadeAccessor)
{
@@ -64,7 +67,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
_contentTypeCache = contentTypeCache
?? new PublishedContentTypeCache(serviceContext.ContentTypeService, serviceContext.MediaTypeService, serviceContext.MemberTypeService);
_xmlStore = new XmlStore(serviceContext, uowProvider, _routesCache, _contentTypeCache, segmentProviders, facadeAccessor, testing, enableRepositoryEvents);
_xmlStore = new XmlStore(serviceContext, uowProvider, _routesCache, _contentTypeCache, segmentProviders, facadeAccessor, mainDom, testing, enableRepositoryEvents);
_domainService = serviceContext.DomainService;
_memberService = serviceContext.MemberService;

View File

@@ -877,14 +877,14 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
if (_publishedMediaCacheEnabled == false)
return func(id);
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
var cache = Current.ApplicationCache.RuntimeCache;
var key = PublishedMediaCacheKey + id;
return (CacheValues) cache.GetCacheItem(key, () => func(id), _publishedMediaCacheTimespan);
}
internal static void ClearCache(int id)
{
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
var cache = Current.ApplicationCache.RuntimeCache;
var sid = id.ToString();
var key = PublishedMediaCacheKey + sid;

View File

@@ -1,4 +1,5 @@
using LightInject;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Components;
using Umbraco.Core.Persistence.UnitOfWork;
@@ -21,7 +22,8 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
factory.GetInstance<IDatabaseUnitOfWorkProvider>(),
factory.GetInstance<CacheHelper>().RequestCache,
factory.GetAllInstances<IUrlSegmentProvider>(),
factory.GetInstance<IFacadeAccessor>()));
factory.GetInstance<IFacadeAccessor>(),
factory.GetInstance<MainDom>()));
}
public void Initialize(IFacadeService service)

View File

@@ -423,7 +423,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
public static void ClearRequest()
{
ApplicationContext.Current.ApplicationCache.RequestCache.ClearCacheByKeySearch(CacheKeyPrefix);
Current.ApplicationCache.RequestCache.ClearCacheByKeySearch(CacheKeyPrefix);
}
private const string CacheKeyPrefix = "CONTENTCACHE_XMLPUBLISHEDCONTENT_";

View File

@@ -59,17 +59,18 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
/// <summary>
/// Initializes a new instance of the <see cref="XmlStore"/> class.
/// </summary>
/// <remarks>The default constructor will boot the cache, load data from file or database,
/// wire events in order to manage changes, etc.</remarks>
public XmlStore(ServiceContext serviceContext, IDatabaseUnitOfWorkProvider uowProvider, RoutesCache routesCache, PublishedContentTypeCache contentTypeCache, IEnumerable<IUrlSegmentProvider> segmentProviders, IFacadeAccessor facadeAccessor)
: this(serviceContext, uowProvider, routesCache, contentTypeCache, segmentProviders, facadeAccessor, false, false)
/// <remarks>The default constructor will boot the cache, load data from file or database, /// wire events in order to manage changes, etc.</remarks>
public XmlStore(ServiceContext serviceContext, IDatabaseUnitOfWorkProvider uowProvider, RoutesCache routesCache, PublishedContentTypeCache contentTypeCache,
IEnumerable<IUrlSegmentProvider> segmentProviders, IFacadeAccessor facadeAccessor, MainDom mainDom)
: this(serviceContext, uowProvider, routesCache, contentTypeCache, segmentProviders, facadeAccessor, mainDom, false, false)
{ }
// internal for unit tests
// no file nor db, no config check
// fixme - er, we DO have a DB?
internal XmlStore(ServiceContext serviceContext, IDatabaseUnitOfWorkProvider uowProvider, RoutesCache routesCache, PublishedContentTypeCache contentTypeCache,
IEnumerable<IUrlSegmentProvider> segmentProviders, IFacadeAccessor facadeAccessor, bool testing, bool enableRepositoryEvents)
IEnumerable<IUrlSegmentProvider> segmentProviders, IFacadeAccessor facadeAccessor, MainDom mainDom,
bool testing, bool enableRepositoryEvents)
{
if (testing == false)
EnsureConfigurationIsValid();
@@ -88,7 +89,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
}
else
{
InitializeFilePersister();
InitializeFilePersister(mainDom);
}
Initialize(testing, enableRepositoryEvents);
@@ -126,7 +127,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
_xmlMediaSerializer = m => exs.Serialize(_serviceContext.MediaService, _serviceContext.DataTypeService, _serviceContext.UserService, segmentProviders, m);
}
private void InitializeFilePersister()
private void InitializeFilePersister(MainDom mainDom)
{
if (SyncToXmlFile == false) return;
@@ -144,7 +145,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
// create (and add to runner)
_persisterTask = new XmlStoreFilePersister(runner, this, logger);
var registered = ApplicationContext.Current.MainDom.Register(
var registered = mainDom.Register(
null,
() =>
{