Fix components

This commit is contained in:
Stephan
2019-01-03 21:10:13 +01:00
parent 9b756b9ce6
commit 0481c2c736
7 changed files with 71 additions and 27 deletions

View File

@@ -0,0 +1,14 @@
namespace Umbraco.Core.Components
{
/// <summary>
/// Represents a component.
/// </summary>
/// <remarks>
/// <para>All components which are also disposable, will be disposed in reverse
/// order, when Umbraco terminates.</para>
/// <para>The Dispose method may be invoked more than once, and components
/// should ensure they support this.</para>
/// </remarks>
public interface IComponent
{ }
}

View File

@@ -0,0 +1,16 @@
using Umbraco.Core.Composing;
namespace Umbraco.Core.Components
{
/// <summary>
/// Represents a composer.
/// </summary>
public interface IComposer : IDiscoverable
{
/// <summary>
/// Compose.
/// </summary>
/// <param name="composition"></param>
void Compose(Composition composition);
}
}

View File

@@ -0,0 +1,13 @@
namespace Umbraco.Core.Components
{
/// <summary>
/// Represents a core <see cref="IComposer"/>.
/// </summary>
/// <remarks>
/// <para>All core composers are required by (compose before) all user composers,
/// and require (compose after) all runtime composers.</para>
/// </remarks>
[Require(typeof(IRuntimeComposer))]
public interface ICoreComposer : IComposer
{ }
}

View File

@@ -0,0 +1,11 @@
namespace Umbraco.Core.Components
{
/// <summary>
/// Represents a runtime <see cref="IComposer"/>.
/// </summary>
/// <remarks>
/// <para>All runtime composers are required by (compose before) all core composers</para>
/// </remarks>
public interface IRuntimeComposer : IComposer
{ }
}

View File

@@ -1,26 +0,0 @@
using Umbraco.Core.Composing;
namespace Umbraco.Core.Components
{
// FIXME BREAK THIS!
public interface IComposer : IDiscoverable
{
void Compose(Composition composition);
}
public interface IRuntimeComposer : IComposer
{ }
[Require(typeof(IRuntimeComposer))]
public interface ICoreComposer : IComposer
{ }
[Require(typeof(ICoreComposer))]
public interface IUserComposer : IComposer
{ }
// will be disposed if disposable, CANT be disposed multiple times, beware!
public interface IComponent
{ }
}

View File

@@ -0,0 +1,12 @@
namespace Umbraco.Core.Components
{
/// <summary>
/// Represents a user <see cref="IComposer"/>.
/// </summary>
/// <remarks>
/// <para>All user composers require (compose after) all core composers.</para>
/// </remarks>
[Require(typeof(ICoreComposer))]
public interface IUserComposer : IComposer
{ }
}

View File

@@ -160,7 +160,11 @@
<Compile Include="Components\CompositionExtensions.cs" />
<Compile Include="Components\DisableAttribute.cs" />
<Compile Include="Components\EnableAttribute.cs" />
<Compile Include="Components\IUmbracoComponent.cs" />
<Compile Include="Components\IComposer.cs" />
<Compile Include="Components\ICoreComposer.cs" />
<Compile Include="Components\IRuntimeComposer.cs" />
<Compile Include="Components\IComponent.cs" />
<Compile Include="Components\IUserComposer.cs" />
<Compile Include="Components\ManifestWatcherComposer.cs" />
<Compile Include="Components\RelateOnCopyComposer.cs" />
<Compile Include="Components\RelateOnTrashComposer.cs" />