public override void Process(Configuration config) { var tables = GetTables(config); // create a resource resolver that will scan all plugins // TODO: we should only scan plugins that are tied to the specified PersistentStore, but there is currently no way to know this IResourceResolver resolver = new ResourceResolver( CollectionUtils.Map(Platform.PluginManager.Plugins, (PluginInfo pi) => pi.Assembly).ToArray()); // find all dbi resources var rx = new Regex("dbi.xml$", RegexOptions.Compiled | RegexOptions.IgnoreCase); var dbiFiles = resolver.FindResources(rx); foreach (var dbiFile in dbiFiles) { using (var stream = resolver.OpenResource(dbiFile)) { var xmlDoc = new XmlDocument(); xmlDoc.Load(stream); var indexElements = xmlDoc.SelectNodes("indexes/index"); if (indexElements == null) { continue; } foreach (XmlElement indexElement in indexElements) { ProcessIndex(indexElement, tables); } } } }