Reducing header overuse, non-inlining selected methods (CPPOST-35).
[shibboleth/cpp-sp.git] / util / mdquery.cpp
index 33435cc..053e994 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- *  Copyright 2001-2007 Internet2\r
+ *  Copyright 2001-2009 Internet2\r
  * \r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
@@ -47,6 +47,8 @@ using namespace xmltooling::logging;
 using namespace xmltooling;\r
 using namespace std;\r
 \r
+using xercesc::XMLString;\r
+\r
 void usage()\r
 {\r
     cerr << "usage: mdquery -e <entityID> [-a <app id> -nostrict]" << endl;\r
@@ -94,48 +96,25 @@ int main(int argc,char* argv[])
 \r
     if (!entityID) {\r
         usage();\r
-        exit(-10);\r
+        return -10;\r
     }\r
 \r
-    char* path=getenv("SHIBSP_SCHEMAS");\r
-    if (!path)\r
-        path=SHIBSP_SCHEMAS;\r
-    char* config=getenv("SHIBSP_CONFIG");\r
-    if (!config)\r
-        config=SHIBSP_CONFIG;\r
-\r
-    XMLToolingConfig::getConfig().log_config(getenv("SHIBSP_LOGGING") ? getenv("SHIBSP_LOGGING") : SHIBSP_LOGGING);\r
-\r
-    SPConfig& conf=SPConfig::getConfig();\r
-    conf.setFeatures(SPConfig::Metadata | SPConfig::Trust | SPConfig::OutOfProcess | SPConfig::Credentials);\r
-    if (!conf.init(path))\r
-        return -1;\r
-\r
     if (rname) {\r
         if (!protocol) {\r
             if (prot)\r
                 protocol = XMLString::transcode(prot);\r
         }\r
         if (!protocol) {\r
-            conf.term();\r
             usage();\r
-            exit(-10);\r
+            return -10;\r
         }\r
     }\r
 \r
-    try {\r
-        static const XMLCh _path[] = UNICODE_LITERAL_4(p,a,t,h);\r
-        static const XMLCh validate[] = UNICODE_LITERAL_8(v,a,l,i,d,a,t,e);\r
-        xercesc::DOMDocument* dummydoc=XMLToolingConfig::getConfig().getParser().newDocument();\r
-        XercesJanitor<xercesc::DOMDocument> docjanitor(dummydoc);\r
-        xercesc::DOMElement* dummy = dummydoc->createElementNS(NULL,_path);\r
-        auto_ptr_XMLCh src(config);\r
-        dummy->setAttributeNS(NULL,_path,src.get());\r
-        dummy->setAttributeNS(NULL,validate,xmlconstants::XML_ONE);\r
-        conf.setServiceProvider(conf.ServiceProviderManager.newPlugin(XML_SERVICE_PROVIDER,dummy));\r
-        conf.getServiceProvider()->init();\r
-    }\r
-    catch (exception&) {\r
+    SPConfig& conf=SPConfig::getConfig();\r
+    conf.setFeatures(SPConfig::Metadata | SPConfig::Trust | SPConfig::OutOfProcess | SPConfig::Credentials);\r
+    if (!conf.init())\r
+        return -1;\r
+    if (!conf.instantiate()) {\r
         conf.term();\r
         return -2;\r
     }\r