Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Castle.Core and Autofac #19

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ _ReSharper*
*.suo
*.cache
http%3a%2f%2fmirrors.dotsrc.org%2fcygwin%2f
nugetpackages/**.nupkg
nugetpackages/**.nupkg
build/
5 changes: 5 additions & 0 deletions PageTypeBuilder.Specs/PageTypeBuilder.Specs.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@
<HintPath>c:\Program Files (x86)\EPiServer\CMS\6.0.530.0\bin\EPiServer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="EPiServer.Events, Version=6.1.79.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\Program Files (x86)\EPiServer\Framework\6.0.318.113\bin\EPiServer.Events.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="EPiServer.BaseLibrary, Version=6.0.530.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\Program Files (x86)\EPiServer\CMS\6.0.530.0\bin\EPiServer.BaseLibrary.dll</HintPath>
Expand Down
15 changes: 6 additions & 9 deletions PageTypeBuilder.Tests/PageTypeBuilder.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,14 @@
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Autofac, Version=2.5.2.830, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Autofac.2.5.2.830\lib\NET35\Autofac.dll</HintPath>
<Reference Include="Autofac">
<HintPath>..\packages\Autofac.2.6.3.862\lib\NET35\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Configuration, Version=2.5.2.830, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Autofac.2.5.2.830\lib\NET35\Autofac.Configuration.dll</HintPath>
<Reference Include="Autofac.Configuration">
<HintPath>..\packages\Autofac.2.6.3.862\lib\NET35\Autofac.Configuration.dll</HintPath>
</Reference>
<Reference Include="Castle.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Castle.Core.3.0.0.4001\lib\net35\Castle.Core.dll</HintPath>
<Reference Include="Castle.Core">
<HintPath>..\packages\Castle.Core.3.3.1\lib\net35\Castle.Core.dll</HintPath>
</Reference>
<Reference Include="EPiServer, Version=6.0.530.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
Expand Down
4 changes: 2 additions & 2 deletions PageTypeBuilder.Tests/packages.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="2.5.2.830" />
<package id="Castle.Core" version="3.0.0.4001" />
<package id="Autofac" version="2.6.3.862" targetFramework="net35" />
<package id="Castle.Core" version="3.3.1" targetFramework="net35" />
<package id="Moq" version="3.1.416.3" />
</packages>
30 changes: 24 additions & 6 deletions PageTypeBuilder/Initializer.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
using Autofac;
using System.Web.Caching;

using Autofac;
using EPiServer;
using EPiServer.Core.PropertySettings;
using EPiServer.Events;
using EPiServer.Events.Clients;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using PageTypeBuilder.Abstractions;
Expand All @@ -9,26 +13,29 @@
using PageTypeBuilder.Reflection;
using PageTypeBuilder.Synchronization;
using PageTypeBuilder.Synchronization.Validation;
using InitializationModule=EPiServer.Web.InitializationModule;
using InitializationModule = EPiServer.Web.InitializationModule;

namespace PageTypeBuilder
{
[ModuleDependency(typeof(InitializationModule))]
public class Initializer : IInitializableModule
public class Initializer : IInitializableModule
{
private IContainer container;

public void Initialize(InitializationEngine context)
{
var containerBuilder = new ContainerBuilder();
var defaultBootstrapper = new DefaultBootstrapper();
defaultBootstrapper.Configure(containerBuilder);
var container = containerBuilder.Build();
container = containerBuilder.Build();

PageTypeSynchronizer synchronizer = container.Resolve<PageTypeSynchronizer>();
synchronizer.SynchronizePageTypes();

DataFactory.Instance.LoadedPage += DataFactory_LoadedPage;
DataFactory.Instance.LoadedChildren += DataFactory_LoadedChildren;
DataFactory.Instance.LoadedDefaultPageData += DataFactory_LoadedPage;
Event.Get(CacheManager.RemoveFromCacheEventId).Raised += CacheManager_ItemRemoved;
}

public void Preload(string[] parameters)
Expand All @@ -41,11 +48,12 @@ public void Uninitialize(InitializationEngine context)
DataFactory.Instance.LoadedPage -= DataFactory_LoadedPage;
DataFactory.Instance.LoadedChildren -= DataFactory_LoadedChildren;
DataFactory.Instance.LoadedDefaultPageData -= DataFactory_LoadedPage;
Event.Get(CacheManager.RemoveFromCacheEventId).Raised -= CacheManager_ItemRemoved;
}

static void DataFactory_LoadedPage(object sender, PageEventArgs e)
{
if(e.Page == null)
if (e.Page == null)
return;

e.Page = PageTypeResolver.Instance.ConvertToTyped(e.Page);
Expand All @@ -59,6 +67,16 @@ static void DataFactory_LoadedChildren(object sender, ChildrenEventArgs e)
}
}

void CacheManager_ItemRemoved(object sender, EventNotificationEventArgs e)
{
var key = e.Param as string;
if (key == "EP:PageType" && e.RaiserId != CacheManager.LocalCacheManagerRaiserId && container != null)
{
var synchronizer = container.Resolve<PageTypeSynchronizer>();
synchronizer.SynchronizePageTypes(true);
}
}

private PageTypeBuilderConfiguration Configuration
{
get
Expand Down
17 changes: 10 additions & 7 deletions PageTypeBuilder/PageTypeBuilder.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,16 @@
<CodeAnalysisRuleSet>BasicCorrectnessRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Autofac, Version=2.5.2.830, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<Reference Include="Autofac, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Autofac.2.5.2.830\lib\NET35\Autofac.dll</HintPath>
<HintPath>..\packages\Autofac.2.6.3.862\lib\NET35\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Configuration, Version=2.5.2.830, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<Reference Include="Autofac.Configuration, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Autofac.2.5.2.830\lib\NET35\Autofac.Configuration.dll</HintPath>
<HintPath>..\packages\Autofac.2.6.3.862\lib\NET35\Autofac.Configuration.dll</HintPath>
</Reference>
<Reference Include="Castle.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Castle.Core.3.0.0.4001\lib\net35\Castle.Core.dll</HintPath>
<Reference Include="Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<HintPath>..\packages\Castle.Core.3.3.1\lib\net35\Castle.Core.dll</HintPath>
</Reference>
<Reference Include="EPiServer, Version=6.0.530.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
Expand All @@ -75,6 +74,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\Program Files (x86)\EPiServer\CMS\6.0.530.0\bin\EPiServer.BaseLibrary.dll</HintPath>
</Reference>
<Reference Include="EPiServer.Events, Version=6.1.79.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\Program Files (x86)\EPiServer\Framework\6.0.318.113\bin\EPiServer.Events.dll</HintPath>
</Reference>
<Reference Include="EPiServer.Framework, Version=6.0.318.113, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\Program Files (x86)\EPiServer\Framework\6.0.318.113\bin\EPiServer.Framework.dll</HintPath>
Expand Down
12 changes: 6 additions & 6 deletions PageTypeBuilder/Synchronization/PageTypeSynchronizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ public class PageTypeSynchronizer
private GlobalPropertySettingsSynchronizer globalPropertySettingsSynchronizer;
private IHooksHandler hooksHandler;

public PageTypeSynchronizer(IPageTypeDefinitionLocator pageTypeDefinitionLocator,
PageTypeBuilderConfiguration configuration,
public PageTypeSynchronizer(IPageTypeDefinitionLocator pageTypeDefinitionLocator,
PageTypeBuilderConfiguration configuration,
PageDefinitionSynchronizationEngine pageDefinitionSynchronizationEngine,
PageTypeDefinitionValidator pageTypeDefinitionValidator,
PageTypeResolver pageTypeResolver,
Expand All @@ -42,11 +42,11 @@ public PageTypeSynchronizer(IPageTypeDefinitionLocator pageTypeDefinitionLocator
this.hooksHandler = hooksHandler;
}

internal void SynchronizePageTypes()
internal void SynchronizePageTypes(bool forceDisablePageTypeUpdates = false)
{
hooksHandler.InvokePreSynchronizationHooks();

if (!_configuration.DisablePageTypeUpdation)
if (!forceDisablePageTypeUpdates && !_configuration.DisablePageTypeUpdation)
{
UpdateTabDefinitions();
globalPropertySettingsSynchronizer.Synchronize();
Expand All @@ -56,10 +56,10 @@ internal void SynchronizePageTypes()

ValidatePageTypeDefinitions(pageTypeDefinitions);

if (!_configuration.DisablePageTypeUpdation)
if (!forceDisablePageTypeUpdates && !_configuration.DisablePageTypeUpdation)
CreateNonExistingPageTypes(pageTypeDefinitions);

if (_configuration.DisablePageTypeUpdation)
if (forceDisablePageTypeUpdates || _configuration.DisablePageTypeUpdation)
{
IEnumerable<PageTypeDefinition> nonExistingPageTypes = GetNonExistingPageTypes(pageTypeDefinitions);
pageTypeDefinitions = pageTypeDefinitions.Except(nonExistingPageTypes).ToList();
Expand Down
4 changes: 2 additions & 2 deletions PageTypeBuilder/packages.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="2.5.2.830" />
<package id="Castle.Core" version="3.0.0.4001" />
<package id="Autofac" version="2.6.3.862" targetFramework="net35" />
<package id="Castle.Core" version="3.3.1" targetFramework="net35" />
</packages>
4 changes: 2 additions & 2 deletions SolutionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
#endif


[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]
[assembly: AssemblyVersion("2.0.0.2")]
[assembly: AssemblyFileVersion("2.0.0.2")]
Binary file removed packages/Autofac.2.5.2.830/Autofac.2.5.2.830.nupkg
Binary file not shown.
Binary file not shown.
Binary file removed packages/Autofac.2.5.2.830/lib/NET35/Autofac.dll
Binary file not shown.
Binary file not shown.
Binary file removed packages/Autofac.2.5.2.830/lib/NET40/Autofac.dll
Binary file not shown.
Binary file removed packages/Autofac.2.5.2.830/lib/SL3-WP/Autofac.dll
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed packages/Autofac.2.5.2.830/lib/SL4/Autofac.dll
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added packages/Autofac.2.6.3.862/lib/NET35/Autofac.dll
Binary file not shown.
Loading