- pickledExtensions = config.Read(EXTENSIONS_CONFIG_STRING)
- if pickledExtensions:
- try:
- self._extensions = pickle.loads(pickledExtensions.encode('ascii'))
- except:
- tp, val, tb = sys.exc_info()
- traceback.print_exception(tp,val,tb)
- self._extensions = []
- else:
- self._extensions = []
-
+ path = config.GetPath()
+ try:
+ config.SetPath(ExtensionService.EXTENSIONS_KEY)
+ cont, value, index = config.GetFirstEntry()
+ while cont:
+ extensionNames.append(value)
+ cont, value, index = config.GetNextEntry(index)
+ finally:
+ config.SetPath(path)
+
+ for extensionName in extensionNames:
+ extensionData = config.Read(self.__getExtensionKeyName(extensionName))
+ if extensionData:
+ extension = xmlutils.unmarshal(extensionData.encode('utf-8'))
+ self._extensions.append(extension)
+