Added ValidatorSuite around groups of static validators.
[shibboleth/cpp-xmltooling.git] / xmltooling / XMLToolingConfig.cpp
index 7b9d378..b22b664 100644 (file)
@@ -23,6 +23,7 @@
 #include "internal.h"
 #include "exceptions.h"
 #include "XMLToolingConfig.h"
+#include "encryption/Encryption.h"
 #include "impl/UnknownElement.h"
 #include "signature/KeyInfo.h"
 #include "signature/Signature.h"
@@ -44,6 +45,7 @@
 
 #include <stdexcept>
 
+using namespace xmlencryption;
 using namespace xmlsignature;
 using namespace xmltooling;
 using namespace log4cpp;
@@ -161,6 +163,7 @@ bool XMLToolingInternalConfig::init()
         XMLObjectBuilder::registerDefaultBuilder(new UnknownElementBuilder());
 
         registerKeyInfoClasses();
+        registerEncryptionClasses();
         
         REGISTER_EXCEPTION_FACTORY(XMLParserException,xmltooling);
         REGISTER_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
@@ -187,7 +190,8 @@ bool XMLToolingInternalConfig::init()
 void XMLToolingInternalConfig::term()
 {
     XMLObjectBuilder::destroyBuilders();
-    Validator::destroyValidators();
+    KeyInfoSchemaValidators.destroyValidators();
+    EncryptionSchemaValidators.destroyValidators();
     XMLToolingException::deregisterFactories();
 
     for (vector<void*>::reverse_iterator i=m_libhandles.rbegin(); i!=m_libhandles.rend(); i++) {
@@ -228,10 +232,10 @@ void XMLToolingInternalConfig::term()
    Category::getInstance(XMLTOOLING_LOGCAT".XMLToolingConfig").info("library shutdown complete");
 }
 
-Lockable& XMLToolingInternalConfig::lock()
+Lockable* XMLToolingInternalConfig::lock()
 {
     xercesc::XMLPlatformUtils::lockMutex(m_lock);
-    return *this;
+    return this;
 }
 
 void XMLToolingInternalConfig::unlock()