diff --git a/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj b/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj
index 182b871f2..1852e93e0 100644
--- a/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj
+++ b/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj
@@ -89,17 +89,17 @@
{6CB3EB30-F725-45C0-9742-42599BA8E8D2}
Orchard.Tests.Modules
-
+
{ABC826D4-2FA1-4F2F-87DE-E6095F653810}
- Orchard.Tests
+ Orchard.Framework.Tests
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
Orchard.Core
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
index d4e6497dd..d68822ba7 100644
--- a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
+++ b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
@@ -98,9 +98,9 @@
-
+
{ABC826D4-2FA1-4F2F-87DE-E6095F653810}
- Orchard.Tests
+ Orchard.Framework.Tests
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
@@ -122,9 +122,9 @@
{79AED36E-ABD0-4747-93D3-8722B042454B}
Orchard.Users
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Tests/App.config b/src/Orchard.Tests/App.config
index 7757697ed..5a9770697 100644
--- a/src/Orchard.Tests/App.config
+++ b/src/Orchard.Tests/App.config
@@ -4,7 +4,7 @@
-
+
diff --git a/src/Orchard.Tests/Environment/DefaultOrchardHostTests.cs b/src/Orchard.Tests/Environment/DefaultOrchardHostTests.cs
index 3e201b0ec..f3b18cabe 100644
--- a/src/Orchard.Tests/Environment/DefaultOrchardHostTests.cs
+++ b/src/Orchard.Tests/Environment/DefaultOrchardHostTests.cs
@@ -77,6 +77,10 @@ namespace Orchard.Tests.Environment {
return Enumerable.Empty();
}
+ public IEnumerable GetExtensionsTopology() {
+ throw new NotImplementedException();
+ }
+
public void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle) {
throw new NotImplementedException();
}
diff --git a/src/Orchard.Tests/Extensions/ExtensionManagerTests.cs b/src/Orchard.Tests/Extensions/ExtensionManagerTests.cs
index 36de9f64e..b16bf13f1 100644
--- a/src/Orchard.Tests/Extensions/ExtensionManagerTests.cs
+++ b/src/Orchard.Tests/Extensions/ExtensionManagerTests.cs
@@ -16,7 +16,6 @@ namespace Orchard.Tests.Extensions {
public void Init() {
var builder = new ContainerBuilder();
_folders = new StubFolders();
- //builder.RegisterModule(new ImplicitCollectionSupportModule());
builder.RegisterInstance(_folders).As();
builder.RegisterType().As();
_container = builder.Build();
@@ -175,5 +174,21 @@ features:
}
}
+ [Test]
+ public void ExtensionManagerShouldReturnTopology() {
+ var topology = _manager.GetExtensionsTopology();
+
+ Assert.That(topology.Count(), Is.Not.EqualTo(0));
+ }
+
+ [Test]
+ public void ExtensionManagerTopologyShouldContainNonAbstractClasses() {
+ var topology = _manager.GetExtensionsTopology();
+
+ foreach (var type in topology) {
+ Assert.That(type.IsClass);
+ Assert.That(!type.IsAbstract);
+ }
+ }
}
}
diff --git a/src/Orchard.Tests/Mvc/OrchardControllerIdentificationStrategyTests.cs b/src/Orchard.Tests/Mvc/OrchardControllerIdentificationStrategyTests.cs
index f00bf84f1..f92370cbf 100644
--- a/src/Orchard.Tests/Mvc/OrchardControllerIdentificationStrategyTests.cs
+++ b/src/Orchard.Tests/Mvc/OrchardControllerIdentificationStrategyTests.cs
@@ -12,7 +12,7 @@ namespace Orchard.Tests.Mvc {
var strategy = new OrchardControllerIdentificationStrategy(Enumerable.Empty());
var service = strategy.ServiceForControllerType(typeof (StrategyTestingController));
Assert.That(service, Is.TypeOf());
- Assert.That(((NamedService)service).ServiceName, Is.EqualTo("controller.orchard.tests.strategytesting"));
+ Assert.That(((NamedService)service).ServiceName, Is.EqualTo("controller.orchard.framework.tests.strategytesting"));
}
}
diff --git a/src/Orchard.Tests/Mvc/Routes/StandardExtensionRouteProviderTests.cs b/src/Orchard.Tests/Mvc/Routes/StandardExtensionRouteProviderTests.cs
index 0a9083bcf..0ce1436e8 100644
--- a/src/Orchard.Tests/Mvc/Routes/StandardExtensionRouteProviderTests.cs
+++ b/src/Orchard.Tests/Mvc/Routes/StandardExtensionRouteProviderTests.cs
@@ -54,6 +54,10 @@ namespace Orchard.Tests.Mvc.Routes {
};
}
+ public IEnumerable GetExtensionsTopology() {
+ throw new NotImplementedException();
+ }
+
public void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle) {
throw new NotImplementedException();
}
diff --git a/src/Orchard.Tests/Orchard.Tests.csproj b/src/Orchard.Tests/Orchard.Framework.Tests.csproj
similarity index 96%
rename from src/Orchard.Tests/Orchard.Tests.csproj
rename to src/Orchard.Tests/Orchard.Framework.Tests.csproj
index f6d2ae1f6..bdb92ad32 100644
--- a/src/Orchard.Tests/Orchard.Tests.csproj
+++ b/src/Orchard.Tests/Orchard.Framework.Tests.csproj
@@ -9,7 +9,7 @@
Library
Properties
Orchard.Tests
- Orchard.Tests
+ Orchard.Framework.Tests
v3.5
512
@@ -194,9 +194,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Tests/Properties/AssemblyInfo.cs b/src/Orchard.Tests/Properties/AssemblyInfo.cs
index 2e6795c4b..472097fe0 100644
--- a/src/Orchard.Tests/Properties/AssemblyInfo.cs
+++ b/src/Orchard.Tests/Properties/AssemblyInfo.cs
@@ -5,7 +5,7 @@ using System.Runtime.InteropServices;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("Orchard.Tests")]
+[assembly: AssemblyTitle("Orchard.Framework.Tests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Orchard")]
diff --git a/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj b/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj
index b0f946d50..96c8dcc76 100644
--- a/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj
+++ b/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj
@@ -70,9 +70,9 @@
{50B779EA-EC00-4699-84C0-03B395C365D2}
Orchard.Web
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj
index 6ff844442..de8618295 100644
--- a/src/Orchard.Web/Core/Orchard.Core.csproj
+++ b/src/Orchard.Web/Core/Orchard.Core.csproj
@@ -178,9 +178,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Web/Modules/Futures.Widgets/Futures.Widgets.csproj b/src/Orchard.Web/Modules/Futures.Widgets/Futures.Widgets.csproj
index 547e232f9..ae690553d 100644
--- a/src/Orchard.Web/Modules/Futures.Widgets/Futures.Widgets.csproj
+++ b/src/Orchard.Web/Modules/Futures.Widgets/Futures.Widgets.csproj
@@ -76,9 +76,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj
index 55c124d49..17ef187bc 100644
--- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj
@@ -169,9 +169,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj
index 0d1bf2b8c..065c4ae21 100644
--- a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj
@@ -117,9 +117,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.DevTools/Orchard.DevTools.csproj b/src/Orchard.Web/Modules/Orchard.DevTools/Orchard.DevTools.csproj
index 1669241cf..068425dae 100644
--- a/src/Orchard.Web/Modules/Orchard.DevTools/Orchard.DevTools.csproj
+++ b/src/Orchard.Web/Modules/Orchard.DevTools/Orchard.DevTools.csproj
@@ -90,9 +90,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj
index 220e76705..45ab37910 100644
--- a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj
@@ -101,9 +101,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj
index 05dd70c26..ceb8dba5b 100644
--- a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj
@@ -131,9 +131,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj
index b8668dce3..6a8458af7 100644
--- a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj
@@ -94,9 +94,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Web/Modules/Orchard.Sandbox/Orchard.Sandbox.csproj b/src/Orchard.Web/Modules/Orchard.Sandbox/Orchard.Sandbox.csproj
index 99d1f9d7f..a242235e5 100644
--- a/src/Orchard.Web/Modules/Orchard.Sandbox/Orchard.Sandbox.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Sandbox/Orchard.Sandbox.csproj
@@ -89,9 +89,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj
index dfd2fa3dd..8fc6e930e 100644
--- a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj
@@ -73,9 +73,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj
index 308837506..872089915 100644
--- a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj
@@ -97,9 +97,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj
index 1fd7b2750..093f9c70b 100644
--- a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj
@@ -94,9 +94,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
diff --git a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
index d20a7f730..f2648d7c6 100644
--- a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
+++ b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
@@ -129,9 +129,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj
index dff35c978..743a29cca 100644
--- a/src/Orchard.Web/Orchard.Web.csproj
+++ b/src/Orchard.Web/Orchard.Web.csproj
@@ -98,9 +98,9 @@
-
+
{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
+ Orchard.Framework
{9916839C-39FC-4CEB-A5AF-89CA7E87119F}
diff --git a/src/Orchard.sln b/src/Orchard.sln
index 50a95b84b..f84a3e496 100644
--- a/src/Orchard.sln
+++ b/src/Orchard.sln
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Web", "Orchard.Web\Orchard.Web.csproj", "{50B779EA-EC00-4699-84C0-03B395C365D2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard", "Orchard\Orchard.csproj", "{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Framework", "Orchard\Orchard.Framework.csproj", "{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Tests", "Orchard.Tests\Orchard.Tests.csproj", "{ABC826D4-2FA1-4F2F-87DE-E6095F653810}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Framework.Tests", "Orchard.Tests\Orchard.Framework.Tests.csproj", "{ABC826D4-2FA1-4F2F-87DE-E6095F653810}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Web.Tests", "Orchard.Web.Tests\Orchard.Web.Tests.csproj", "{F112851D-B023-4746-B6B1-8D2E5AD8F7AA}"
EndProject
diff --git a/src/Orchard/Environment/DefaultCompositionStrategy.cs b/src/Orchard/Environment/DefaultCompositionStrategy.cs
index bcac9279c..c36de5e0f 100644
--- a/src/Orchard/Environment/DefaultCompositionStrategy.cs
+++ b/src/Orchard/Environment/DefaultCompositionStrategy.cs
@@ -30,19 +30,11 @@ namespace Orchard.Environment {
}
public IEnumerable GetModuleTypes() {
- var types = _extensionManager.ActiveExtensions().SelectMany(x => x.ExportedTypes);
- types = types.Concat(typeof(IOrchardHost).Assembly.GetExportedTypes());
- var nonAbstractClasses = types.Where(t => t.IsClass && !t.IsAbstract);
- var modules = nonAbstractClasses.Where(t => typeof(IModule).IsAssignableFrom(t));
- return modules;
+ return _extensionManager.GetExtensionsTopology().Where(t => typeof(IModule).IsAssignableFrom(t));
}
public IEnumerable GetDependencyTypes() {
- var types = _extensionManager.ActiveExtensions().SelectMany(x => x.ExportedTypes);
- types = types.Concat(typeof(IOrchardHost).Assembly.GetExportedTypes());
- var nonAbstractClasses = types.Where(t => t.IsClass && !t.IsAbstract);
- var modules = nonAbstractClasses.Where(t => typeof(IDependency).IsAssignableFrom(t));
- return modules;
+ return _extensionManager.GetExtensionsTopology().Where(t => typeof(IDependency).IsAssignableFrom(t));
}
public IEnumerable GetRecordDescriptors() {
diff --git a/src/Orchard/Extensions/ExtensionManager.cs b/src/Orchard/Extensions/ExtensionManager.cs
index 16c9f9d55..e6331cb54 100644
--- a/src/Orchard/Extensions/ExtensionManager.cs
+++ b/src/Orchard/Extensions/ExtensionManager.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using ICSharpCode.SharpZipLib.Zip;
+using Orchard.Environment;
using Orchard.Extensions.Helpers;
using Orchard.Extensions.Loaders;
using Orchard.Localization;
@@ -96,6 +97,12 @@ namespace Orchard.Extensions {
return _activeExtensions;
}
+ public IEnumerable GetExtensionsTopology() {
+ var types = ActiveExtensions().SelectMany(x => x.ExportedTypes);
+ types = types.Concat(typeof(IOrchardHost).Assembly.GetExportedTypes());
+ return types.Where(t => t.IsClass && !t.IsAbstract);
+ }
+
public void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle) {
if (String.IsNullOrEmpty(extensionType)) {
throw new ArgumentException(T("extensionType was null or empty").ToString());
diff --git a/src/Orchard/Extensions/IExtensionManager.cs b/src/Orchard/Extensions/IExtensionManager.cs
index fb6199f2d..6cf496c1b 100644
--- a/src/Orchard/Extensions/IExtensionManager.cs
+++ b/src/Orchard/Extensions/IExtensionManager.cs
@@ -1,10 +1,12 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Web;
namespace Orchard.Extensions {
public interface IExtensionManager {
IEnumerable AvailableExtensions();
IEnumerable ActiveExtensions();
+ IEnumerable GetExtensionsTopology();
void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle);
void UninstallExtension(string extensionType, string extensionName);
}
diff --git a/src/Orchard/Orchard.csproj b/src/Orchard/Orchard.Framework.csproj
similarity index 98%
rename from src/Orchard/Orchard.csproj
rename to src/Orchard/Orchard.Framework.csproj
index c80cc21dc..70061f8f5 100644
--- a/src/Orchard/Orchard.csproj
+++ b/src/Orchard/Orchard.Framework.csproj
@@ -9,7 +9,7 @@
Library
Properties
Orchard
- Orchard
+ Orchard.Framework
v3.5
512
diff --git a/src/Orchard/Properties/AssemblyInfo.cs b/src/Orchard/Properties/AssemblyInfo.cs
index d9b719e1f..09429c973 100644
--- a/src/Orchard/Properties/AssemblyInfo.cs
+++ b/src/Orchard/Properties/AssemblyInfo.cs
@@ -5,7 +5,7 @@ using System.Runtime.InteropServices;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("Orchard")]
+[assembly: AssemblyTitle("Orchard.Framework")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Orchard")]