From 0481c2c7366ccfa779da58af6ccc69be3b5cabc0 Mon Sep 17 00:00:00 2001 From: Stephan Date: Thu, 3 Jan 2019 21:10:13 +0100 Subject: [PATCH] Fix components --- src/Umbraco.Core/Components/IComponent.cs | 14 ++++++++++ src/Umbraco.Core/Components/IComposer.cs | 16 ++++++++++++ src/Umbraco.Core/Components/ICoreComposer.cs | 13 ++++++++++ .../Components/IRuntimeComposer.cs | 11 ++++++++ .../Components/IUmbracoComponent.cs | 26 ------------------- src/Umbraco.Core/Components/IUserComposer.cs | 12 +++++++++ src/Umbraco.Core/Umbraco.Core.csproj | 6 ++++- 7 files changed, 71 insertions(+), 27 deletions(-) create mode 100644 src/Umbraco.Core/Components/IComponent.cs create mode 100644 src/Umbraco.Core/Components/IComposer.cs create mode 100644 src/Umbraco.Core/Components/ICoreComposer.cs create mode 100644 src/Umbraco.Core/Components/IRuntimeComposer.cs delete mode 100644 src/Umbraco.Core/Components/IUmbracoComponent.cs create mode 100644 src/Umbraco.Core/Components/IUserComposer.cs diff --git a/src/Umbraco.Core/Components/IComponent.cs b/src/Umbraco.Core/Components/IComponent.cs new file mode 100644 index 0000000000..5ce9c02060 --- /dev/null +++ b/src/Umbraco.Core/Components/IComponent.cs @@ -0,0 +1,14 @@ +namespace Umbraco.Core.Components +{ + /// + /// Represents a component. + /// + /// + /// All components which are also disposable, will be disposed in reverse + /// order, when Umbraco terminates. + /// The Dispose method may be invoked more than once, and components + /// should ensure they support this. + /// + public interface IComponent + { } +} diff --git a/src/Umbraco.Core/Components/IComposer.cs b/src/Umbraco.Core/Components/IComposer.cs new file mode 100644 index 0000000000..ce02aa4f13 --- /dev/null +++ b/src/Umbraco.Core/Components/IComposer.cs @@ -0,0 +1,16 @@ +using Umbraco.Core.Composing; + +namespace Umbraco.Core.Components +{ + /// + /// Represents a composer. + /// + public interface IComposer : IDiscoverable + { + /// + /// Compose. + /// + /// + void Compose(Composition composition); + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Components/ICoreComposer.cs b/src/Umbraco.Core/Components/ICoreComposer.cs new file mode 100644 index 0000000000..810d9641be --- /dev/null +++ b/src/Umbraco.Core/Components/ICoreComposer.cs @@ -0,0 +1,13 @@ +namespace Umbraco.Core.Components +{ + /// + /// Represents a core . + /// + /// + /// All core composers are required by (compose before) all user composers, + /// and require (compose after) all runtime composers. + /// + [Require(typeof(IRuntimeComposer))] + public interface ICoreComposer : IComposer + { } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Components/IRuntimeComposer.cs b/src/Umbraco.Core/Components/IRuntimeComposer.cs new file mode 100644 index 0000000000..4b8253ee6c --- /dev/null +++ b/src/Umbraco.Core/Components/IRuntimeComposer.cs @@ -0,0 +1,11 @@ +namespace Umbraco.Core.Components +{ + /// + /// Represents a runtime . + /// + /// + /// All runtime composers are required by (compose before) all core composers + /// + public interface IRuntimeComposer : IComposer + { } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Components/IUmbracoComponent.cs b/src/Umbraco.Core/Components/IUmbracoComponent.cs deleted file mode 100644 index 149f41df83..0000000000 --- a/src/Umbraco.Core/Components/IUmbracoComponent.cs +++ /dev/null @@ -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 - { } -} diff --git a/src/Umbraco.Core/Components/IUserComposer.cs b/src/Umbraco.Core/Components/IUserComposer.cs new file mode 100644 index 0000000000..ca8cfcaefb --- /dev/null +++ b/src/Umbraco.Core/Components/IUserComposer.cs @@ -0,0 +1,12 @@ +namespace Umbraco.Core.Components +{ + /// + /// Represents a user . + /// + /// + /// All user composers require (compose after) all core composers. + /// + [Require(typeof(ICoreComposer))] + public interface IUserComposer : IComposer + { } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index a5a57df80e..425adc0b44 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -160,7 +160,11 @@ - + + + + +