diff options
-rw-r--r-- | OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs index 633d005..510be37 100644 --- a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs +++ b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs | |||
@@ -85,16 +85,26 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController | |||
85 | if (modulesConfig == null) | 85 | if (modulesConfig == null) |
86 | modulesConfig = m_openSim.ConfigSource.Source.AddConfig("Modules"); | 86 | modulesConfig = m_openSim.ConfigSource.Source.AddConfig("Modules"); |
87 | 87 | ||
88 | Dictionary<RuntimeAddin, IList<int>> loadedModules = new Dictionary<RuntimeAddin, IList<int>>(); | ||
89 | |||
88 | // Scan modules and load all that aren't disabled | 90 | // Scan modules and load all that aren't disabled |
89 | foreach (TypeExtensionNode node in | 91 | foreach (TypeExtensionNode node in |
90 | AddinManager.GetExtensionNodes("/OpenSim/RegionModules")) | 92 | AddinManager.GetExtensionNodes("/OpenSim/RegionModules")) |
91 | { | 93 | { |
94 | IList<int> loadedModuleData; | ||
95 | |||
96 | if (!loadedModules.ContainsKey(node.Addin)) | ||
97 | loadedModules.Add(node.Addin, new List<int> { 0, 0, 0 }); | ||
98 | |||
99 | loadedModuleData = loadedModules[node.Addin]; | ||
100 | |||
92 | if (node.Type.GetInterface(typeof(ISharedRegionModule).ToString()) != null) | 101 | if (node.Type.GetInterface(typeof(ISharedRegionModule).ToString()) != null) |
93 | { | 102 | { |
94 | if (CheckModuleEnabled(node, modulesConfig)) | 103 | if (CheckModuleEnabled(node, modulesConfig)) |
95 | { | 104 | { |
96 | m_log.DebugFormat("[REGIONMODULES]: Found shared region module {0}, class {1}", node.Id, node.Type); | 105 | m_log.DebugFormat("[REGIONMODULES]: Found shared region module {0}, class {1}", node.Id, node.Type); |
97 | m_sharedModules.Add(node); | 106 | m_sharedModules.Add(node); |
107 | loadedModuleData[0]++; | ||
98 | } | 108 | } |
99 | } | 109 | } |
100 | else if (node.Type.GetInterface(typeof(INonSharedRegionModule).ToString()) != null) | 110 | else if (node.Type.GetInterface(typeof(INonSharedRegionModule).ToString()) != null) |
@@ -103,14 +113,26 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController | |||
103 | { | 113 | { |
104 | m_log.DebugFormat("[REGIONMODULES]: Found non-shared region module {0}, class {1}", node.Id, node.Type); | 114 | m_log.DebugFormat("[REGIONMODULES]: Found non-shared region module {0}, class {1}", node.Id, node.Type); |
105 | m_nonSharedModules.Add(node); | 115 | m_nonSharedModules.Add(node); |
116 | loadedModuleData[1]++; | ||
106 | } | 117 | } |
107 | } | 118 | } |
108 | else | 119 | else |
109 | { | 120 | { |
110 | m_log.DebugFormat("[REGIONMODULES]: Found unknown type of module {0}, class {1}", node.Id, node.Type); | 121 | m_log.WarnFormat("[REGIONMODULES]: Found unknown type of module {0}, class {1}", node.Id, node.Type); |
122 | loadedModuleData[2]++; | ||
111 | } | 123 | } |
112 | } | 124 | } |
113 | 125 | ||
126 | foreach (KeyValuePair<RuntimeAddin, IList<int>> loadedModuleData in loadedModules) | ||
127 | { | ||
128 | m_log.InfoFormat( | ||
129 | "[REGIONMODULES]: From plugin {0}, (version {1}), loaded {2} modules, {3} shared, {4} non-shared {5} unknown", | ||
130 | loadedModuleData.Key.Id, | ||
131 | loadedModuleData.Key.Version, | ||
132 | loadedModuleData.Value[0] + loadedModuleData.Value[1] + loadedModuleData.Value[2], | ||
133 | loadedModuleData.Value[0], loadedModuleData.Value[1], loadedModuleData.Value[2]); | ||
134 | } | ||
135 | |||
114 | // Load and init the module. We try a constructor with a port | 136 | // Load and init the module. We try a constructor with a port |
115 | // if a port was given, fall back to one without if there is | 137 | // if a port was given, fall back to one without if there is |
116 | // no port or the more specific constructor fails. | 138 | // no port or the more specific constructor fails. |