def build(self, source): t0 = time.clock() try: self.root = etree.fromstring(source.read()) self.componentManager = ComponentManager() components = self.root.find("{%(map)s}components" % ns) if components is not None: self.componentManager.configure(components) return self.buildNode(self.root.find("{%(map)s}pipelines" % ns)) finally: t1 = time.clock() self.log.debug("%s is built in %.3f s" % (source.uri, t1 - t0))
def configure(self, element): sitemap = element.find("sitemap") self.checkReload = (sitemap.get("check-reload", "yes") == "yes") self.uri = sitemap.get("file", "sitemap.xmap") self.source = SourceResolver().resolveUri(self.uri, self.contextPath) self.log = logging.getLogger(sitemap.get("logger")) self.parentComponentManager = ComponentManager() elems = element.findall("input-modules/component-instance") def getClassAndElement(e): return (self.parentComponentManager.classLoader.getClass( e.get("{%(py)s}class" % ns)), e) classes = dict([(e.get("name"), getClassAndElement(e)) for e in elems]) self.parentComponentManager.components["input-module"] = (classes, None, None) self.log.debug("Tree processor is configured")