X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Frouter_flexml.cpp;h=947366adbb30dad470641b10392f8e1e7c13bedb;hb=refs%2Ftags%2Fv1.9.1;hp=6e246d9ea9211c3dae9cf82c8a4999e2f25705e9;hpb=2beb521c812e103ec23126db5828193fa239d2bd;p=metaproxy-moved-to-github.git diff --git a/src/router_flexml.cpp b/src/router_flexml.cpp index 6e246d9..947366a 100644 --- a/src/router_flexml.cpp +++ b/src/router_flexml.cpp @@ -119,6 +119,8 @@ void mp::RouterFleXML::Rep::parse_xml_filters(xmlDocPtr doc, id_value = value; else if (name == "type") type_value = value; + else if (name == "base") + ;// Ignore XInclude base attribute. else throw mp::XMLError("Only attribute id or type allowed" " in filter element. Got " + name); @@ -175,6 +177,8 @@ void mp::RouterFleXML::Rep::parse_xml_filters1(xmlDocPtr doc, refid_value = value; else if (name == "type") type_value = value; + else if (name == "base") + ;// Ignore XInclude base attribute. else throw mp::XMLError("Only attribute 'refid' or 'type'" " allowed for element 'filter'." @@ -199,12 +203,12 @@ void mp::RouterFleXML::Rep::parse_xml_filters1(xmlDocPtr doc, type_value.c_str(), m_dl_path.c_str()); m_factory->add_creator_dl(type_value, m_dl_path); } - mp::filter::Base* filter_base = m_factory->create(type_value); + boost::shared_ptr + filter_base(m_factory->create(type_value)); filter_base->configure(node, test_only, file_include_path); - route.m_list.push_back( - boost::shared_ptr(filter_base)); + route.m_list.push_back(filter_base); } } @@ -237,6 +241,8 @@ void mp::RouterFleXML::Rep::parse_xml_routes(xmlDocPtr doc, if (name == "id") id_value = value; + else if (name == "base") + ;// Ignore XInclude base attribute. else throw mp::XMLError("Only attribute 'id' allowed for" " element 'route'." @@ -247,6 +253,9 @@ void mp::RouterFleXML::Rep::parse_xml_routes(xmlDocPtr doc, // process / nodes in third level const xmlNode* node3 = mp::xml::jump_to_children(node, XML_ELEMENT_NODE); + + + parse_xml_filters1(doc, node3, test_only, file_include_path, route); std::map::iterator it; @@ -343,6 +352,8 @@ void mp::RouterFleXML::Rep::parse_xml_config_dom(xmlDocPtr doc, if (name == "route") m_start_route = value; + else if (name == "base") + ;// Ignore XInclude base attribute. else throw mp::XMLError("Only attribute route allowed" " in element 'start'. Got " + name); @@ -420,8 +431,6 @@ mp::RouterFleXML::RouterFleXML(std::string xmlconf, mp::FactoryFilter &factory, bool test_only) : m_p(new Rep) { - LIBXML_TEST_VERSION; - xmlDocPtr doc = xmlParseMemory(xmlconf.c_str(), xmlconf.size()); if (!doc)