Loading ccsrc/Protocols/Xml/xml_codec.cc +134 −9 Original line number Diff line number Diff line Loading @@ -61,16 +61,64 @@ int xml_codec::encode(const LibHttp__XmlMessageBodyTypes::XmlBody& body, OCTETST // ==> xmlns:xsi=http://www.cise.eu/datamodel/v1/entity/organization/ xsi:type="ns4:Organization" loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround"); std::string s(static_cast<const unsigned char*>(data), data.lengthof() + static_cast<const unsigned char*>(data)); size_t idx = 0; std::string f(" xsi:type=\"agent:Organization\""); std::string t(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); // std::string f("\"agent:Organization\""); // std::string t("\"xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"ns4:Organization\""); loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", f.c_str(), t.c_str()); while ((idx = s.find(f)) != std::string::npos) { s.replace(idx, f.length(), t); idx += t.length(); patch_agent_derivations(s); loggers::get_instance().log("xml_codec::encode: After patch_agent_derivations: '%s'", s.c_str()); /*size_t idx = 0; std::string search(" xsi:type=\"agent:Agent\""); std::string replace(" xsi:type=\"ns6:Agent\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Organization\""); replace.assign(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:FormalOrganization\""); replace.assign(" xsi:type=\"ns6:FormalOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalCollaboration\""); replace.assign(" xsi:type=\"ns6:OrganizationalCollaboration\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalUnit\""); replace.assign(" xsi:type=\"ns6:OrganizationalUnit\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Person\""); replace.assign(" xsi:type=\"ns6:Person\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:PortOrganization\""); replace.assign(" xsi:type=\"ns6:PortOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); }*/ // End of 'while' statement data = OCTETSTRING(s.length(), (const unsigned char*)s.c_str()); } Loading @@ -86,6 +134,83 @@ int xml_codec::encode(const LibHttp__XmlMessageBodyTypes::XmlBody& body, OCTETST return 0; } int xml_codec::patch_agent_derivations(std::string& s) { size_t idx = 0; std::string search(" xsi:type=\"agent:Agent\""); std::string replace(" xsi:type=\"ns6:Agent\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Organization\""); replace.assign(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:FormalOrganization\""); replace.assign(" xsi:type=\"ns6:FormalOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalCollaboration\""); replace.assign(" xsi:type=\"ns6:OrganizationalCollaboration\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalUnit\""); replace.assign(" xsi:type=\"ns6:OrganizationalUnit\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Person\""); replace.assign(" xsi:type=\"ns6:Person\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:PortOrganization\""); replace.assign(" xsi:type=\"ns6:PortOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement loggers::get_instance().log("xml_codec::patch_agent_derivations: s: '%s'", s.c_str()); return 0; } int xml_codec::patch_location_derivations(std::string& s) { return 0; } int xml_codec::patch_object_derivations(std::string& s) { return 0; } int xml_codec::patch_document_derivations(std::string& s) { return 0; } int xml_codec::decode (const OCTETSTRING& p_data, LibHttp__XmlMessageBodyTypes::XmlBody& body, params* p_params) { loggers::get_instance().log_msg(">>> xml_codec::decode: p_data=", p_data); Loading ccsrc/Protocols/Xml/xml_codec.hh +6 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,12 @@ namespace LibHttp__XmlMessageBodyTypes { class xml_codec: public codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody> { //TITAN issue: variant "namespace for 'agent/organization' seems buggy: <Agent xsi:type="agent:Organization"> int patch_agent_derivations(std::string& s); int patch_location_derivations(std::string& s); int patch_object_derivations(std::string& s); int patch_document_derivations(std::string& s); //TITAN issue: variant "namespace for 'agent/organization' seems buggy: <Agent xsi:type="agent:Organization"> public: explicit xml_codec() : codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody>() { }; virtual ~xml_codec() { }; Loading test-purposes/AtsCise/AtsCise.tplan2 +3759 −517 File changed.Preview size limit exceeded, changes collapsed. Show changes test-purposes/cise-common.tplan2 +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ Package CISE_Common { - ADAPTER // CISE LIS Adapter as IUT - NETWORK // CISE NETWORK - IUT // Implementation under test - TEST_SYSTEM // Triggered events ; events: Loading ttcn/AtsCise/AtsCise_TestCases.ttcn +11 −2 Original line number Diff line number Diff line Loading @@ -1201,6 +1201,12 @@ module AtsCise_TestCases { m_location_derivations_location( m_location( { m_geometry } /*m_location_derivations_named_location( m_named_location( { m_geometry } m_location_derivations_port_facility_location( m_port_facility_location( { m_geometry }*/ ))) }, -, -, Loading @@ -1212,9 +1218,12 @@ module AtsCise_TestCases { m_unique_identifier( -, -, -, PX_AGENT_UUID ))),*/ ))), m_agent_derivations_organization( m_organization ),*/ m_agent_derivations_formal_organization( m_formal_organization ), nonSpecified ) Loading Loading
ccsrc/Protocols/Xml/xml_codec.cc +134 −9 Original line number Diff line number Diff line Loading @@ -61,16 +61,64 @@ int xml_codec::encode(const LibHttp__XmlMessageBodyTypes::XmlBody& body, OCTETST // ==> xmlns:xsi=http://www.cise.eu/datamodel/v1/entity/organization/ xsi:type="ns4:Organization" loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround"); std::string s(static_cast<const unsigned char*>(data), data.lengthof() + static_cast<const unsigned char*>(data)); size_t idx = 0; std::string f(" xsi:type=\"agent:Organization\""); std::string t(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); // std::string f("\"agent:Organization\""); // std::string t("\"xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"ns4:Organization\""); loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", f.c_str(), t.c_str()); while ((idx = s.find(f)) != std::string::npos) { s.replace(idx, f.length(), t); idx += t.length(); patch_agent_derivations(s); loggers::get_instance().log("xml_codec::encode: After patch_agent_derivations: '%s'", s.c_str()); /*size_t idx = 0; std::string search(" xsi:type=\"agent:Agent\""); std::string replace(" xsi:type=\"ns6:Agent\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Organization\""); replace.assign(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:FormalOrganization\""); replace.assign(" xsi:type=\"ns6:FormalOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalCollaboration\""); replace.assign(" xsi:type=\"ns6:OrganizationalCollaboration\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalUnit\""); replace.assign(" xsi:type=\"ns6:OrganizationalUnit\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Person\""); replace.assign(" xsi:type=\"ns6:Person\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:PortOrganization\""); replace.assign(" xsi:type=\"ns6:PortOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); }*/ // End of 'while' statement data = OCTETSTRING(s.length(), (const unsigned char*)s.c_str()); } Loading @@ -86,6 +134,83 @@ int xml_codec::encode(const LibHttp__XmlMessageBodyTypes::XmlBody& body, OCTETST return 0; } int xml_codec::patch_agent_derivations(std::string& s) { size_t idx = 0; std::string search(" xsi:type=\"agent:Agent\""); std::string replace(" xsi:type=\"ns6:Agent\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Organization\""); replace.assign(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:FormalOrganization\""); replace.assign(" xsi:type=\"ns6:FormalOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalCollaboration\""); replace.assign(" xsi:type=\"ns6:OrganizationalCollaboration\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:OrganizationalUnit\""); replace.assign(" xsi:type=\"ns6:OrganizationalUnit\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:Person\""); replace.assign(" xsi:type=\"ns6:Person\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement search.assign(" xsi:type=\"agent:PortOrganization\""); replace.assign(" xsi:type=\"ns6:PortOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\""); idx = 0; loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str()); while ((idx = s.find(search)) != std::string::npos) { s.replace(idx, search.length(), replace); idx += replace.length(); } // End of 'while' statement loggers::get_instance().log("xml_codec::patch_agent_derivations: s: '%s'", s.c_str()); return 0; } int xml_codec::patch_location_derivations(std::string& s) { return 0; } int xml_codec::patch_object_derivations(std::string& s) { return 0; } int xml_codec::patch_document_derivations(std::string& s) { return 0; } int xml_codec::decode (const OCTETSTRING& p_data, LibHttp__XmlMessageBodyTypes::XmlBody& body, params* p_params) { loggers::get_instance().log_msg(">>> xml_codec::decode: p_data=", p_data); Loading
ccsrc/Protocols/Xml/xml_codec.hh +6 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,12 @@ namespace LibHttp__XmlMessageBodyTypes { class xml_codec: public codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody> { //TITAN issue: variant "namespace for 'agent/organization' seems buggy: <Agent xsi:type="agent:Organization"> int patch_agent_derivations(std::string& s); int patch_location_derivations(std::string& s); int patch_object_derivations(std::string& s); int patch_document_derivations(std::string& s); //TITAN issue: variant "namespace for 'agent/organization' seems buggy: <Agent xsi:type="agent:Organization"> public: explicit xml_codec() : codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody>() { }; virtual ~xml_codec() { }; Loading
test-purposes/AtsCise/AtsCise.tplan2 +3759 −517 File changed.Preview size limit exceeded, changes collapsed. Show changes
test-purposes/cise-common.tplan2 +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ Package CISE_Common { - ADAPTER // CISE LIS Adapter as IUT - NETWORK // CISE NETWORK - IUT // Implementation under test - TEST_SYSTEM // Triggered events ; events: Loading
ttcn/AtsCise/AtsCise_TestCases.ttcn +11 −2 Original line number Diff line number Diff line Loading @@ -1201,6 +1201,12 @@ module AtsCise_TestCases { m_location_derivations_location( m_location( { m_geometry } /*m_location_derivations_named_location( m_named_location( { m_geometry } m_location_derivations_port_facility_location( m_port_facility_location( { m_geometry }*/ ))) }, -, -, Loading @@ -1212,9 +1218,12 @@ module AtsCise_TestCases { m_unique_identifier( -, -, -, PX_AGENT_UUID ))),*/ ))), m_agent_derivations_organization( m_organization ),*/ m_agent_derivations_formal_organization( m_formal_organization ), nonSpecified ) Loading