Changes the CoreBootManager to resolve migrations through the use of the PluginManager instead of having the migration types hardcoded.

This commit is contained in:
Morten Christensen
2013-01-18 12:05:00 -01:00
parent 62bd1ce4fa
commit f6ceb937a1
3 changed files with 18 additions and 21 deletions

View File

@@ -135,29 +135,16 @@ namespace Umbraco.Core
MacroPropertyTypeResolver.Current = new MacroPropertyTypeResolver(
PluginManager.Current.ResolveMacroPropertyTypes());
//the database migration objects
MigrationResolver.Current = new MigrationResolver(
PluginManager.Current.ResolveMigrationTypes());
PropertyEditorValueConvertersResolver.Current = new PropertyEditorValueConvertersResolver(
PluginManager.Current.ResolvePropertyEditorValueConverters());
//add the internal ones, these are not public currently so need to add them manually
PropertyEditorValueConvertersResolver.Current.AddType<DatePickerPropertyEditorValueConverter>();
PropertyEditorValueConvertersResolver.Current.AddType<TinyMcePropertyEditorValueConverter>();
PropertyEditorValueConvertersResolver.Current.AddType<YesNoPropertyEditorValueConverter>();
//the database migration objects
MigrationResolver.Current = new MigrationResolver(new List<Type>
{
typeof (MigrationsVersionFourNineZero.RemoveUmbracoAppConstraints),
typeof (DeleteAppTables),
typeof (EnsureAppsTreesUpdated),
typeof (MoveMasterContentTypeData),
typeof (NewCmsContentType2ContentTypeTable),
typeof (RemoveMasterContentTypeColumn),
typeof (RenameCmsTabTable),
typeof (RenameTabIdColumn),
typeof (UpdateCmsContentTypeAllowedContentTypeTable),
typeof (UpdateCmsContentTypeTable),
typeof (UpdateCmsContentVersionTable),
typeof (UpdateCmsPropertyTypeGroupTable)
});
}
}
}
}

View File

@@ -12,12 +12,12 @@ namespace Umbraco.Core.Persistence.Migrations
/// <summary>
/// Constructor
/// </summary>
/// <param name="surfaceControllers"></param>
/// <param name="migrations"></param>
/// <remarks>
/// Use transient objects as we don't want these as singletons and take up memory that is not required
/// </remarks>
public MigrationResolver(IEnumerable<Type> surfaceControllers)
: base(surfaceControllers, ObjectLifetimeScope.Transient)
public MigrationResolver(IEnumerable<Type> migrations)
: base(migrations, ObjectLifetimeScope.Transient)
{
}

View File

@@ -11,6 +11,7 @@ using System.Xml.Linq;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Migrations;
using Umbraco.Core.PropertyEditors;
using umbraco.interfaces;
using File = System.IO.File;
@@ -458,6 +459,15 @@ namespace Umbraco.Core
return ResolveTypes<IMacroPropertyType>();
}
/// <summary>
/// Returns all available IMigrations in application
/// </summary>
/// <returns></returns>
internal IEnumerable<Type> ResolveMigrationTypes()
{
return ResolveTypes<IMigration>();
}
/// <summary>
/// Gets/sets which assemblies to scan when type finding, generally used for unit testing, if not explicitly set
/// this will search all assemblies known to have plugins and exclude ones known to not have them.