#include "internal.h"
#include "exceptions.h"
#include "XMLToolingConfig.h"
-#include "encryption/Encryption.h"
+#include "encryption/Encrypter.h"
#include "impl/UnknownElement.h"
#include "security/TrustEngine.h"
#include "security/OpenSSLCryptoX509CRL.h"
#include "signature/CredentialResolver.h"
#include "soap/SOAP.h"
+#include "soap/SOAPTransport.h"
#include "util/NDC.h"
+#include "util/ReplayCache.h"
#include "util/StorageService.h"
+#include "util/TemplateEngine.h"
#include "util/XMLConstants.h"
-#include "validation/Validator.h"
+#include "validation/ValidatorSuite.h"
#ifdef HAVE_DLFCN_H
# include <dlfcn.h>
using namespace log4cpp;
using namespace std;
-DECL_EXCEPTION_FACTORY(XMLParserException,xmltooling);
-DECL_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
-DECL_EXCEPTION_FACTORY(MarshallingException,xmltooling);
-DECL_EXCEPTION_FACTORY(UnmarshallingException,xmltooling);
-DECL_EXCEPTION_FACTORY(UnknownElementException,xmltooling);
-DECL_EXCEPTION_FACTORY(UnknownAttributeException,xmltooling);
-DECL_EXCEPTION_FACTORY(UnknownExtensionException,xmltooling);
-DECL_EXCEPTION_FACTORY(ValidationException,xmltooling);
-DECL_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
-DECL_EXCEPTION_FACTORY(IOException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(XMLParserException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(MarshallingException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(UnmarshallingException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(UnknownElementException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(UnknownAttributeException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(UnknownExtensionException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(ValidationException,xmltooling);
+DECL_XMLTOOLING_EXCEPTION_FACTORY(IOException,xmltooling);
#ifndef XMLTOOLING_NO_XMLSEC
- DECL_EXCEPTION_FACTORY(SignatureException,xmlsignature);
+ DECL_XMLTOOLING_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
+ DECL_XMLTOOLING_EXCEPTION_FACTORY(SignatureException,xmlsignature);
+ DECL_XMLTOOLING_EXCEPTION_FACTORY(EncryptionException,xmlencryption);
#endif
namespace xmltooling {
return true;
}
+void XMLToolingConfig::setReplayCache(ReplayCache* replayCache)
+{
+ delete m_replayCache;
+ m_replayCache = replayCache;
+}
+
+void XMLToolingConfig::setTemplateEngine(TemplateEngine* templateEngine)
+{
+ delete m_templateEngine;
+ m_templateEngine = templateEngine;
+}
+
bool XMLToolingInternalConfig::init()
{
#ifdef _DEBUG
registerEncryptionClasses();
registerSOAPClasses();
- REGISTER_EXCEPTION_FACTORY(XMLParserException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(MarshallingException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(UnmarshallingException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(UnknownElementException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(UnknownAttributeException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(ValidationException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
- REGISTER_EXCEPTION_FACTORY(IOException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(XMLParserException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(MarshallingException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(UnmarshallingException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(UnknownElementException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(UnknownAttributeException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(ValidationException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(IOException,xmltooling);
#ifndef XMLTOOLING_NO_XMLSEC
- XMLObjectBuilder::registerBuilder(QName(XMLConstants::XMLSIG_NS,Signature::LOCAL_NAME),new SignatureBuilder());
- REGISTER_EXCEPTION_FACTORY(SignatureException,xmlsignature);
+ XMLObjectBuilder::registerBuilder(QName(xmlconstants::XMLSIG_NS,Signature::LOCAL_NAME),new SignatureBuilder());
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(SignatureException,xmlsignature);
+ REGISTER_XMLTOOLING_EXCEPTION_FACTORY(EncryptionException,xmlencryption);
registerKeyResolvers();
registerCredentialResolvers();
registerTrustEngines();
#endif
+ registerSOAPTransports();
+ initSOAPTransports();
registerStorageServices();
// Register xml:id as an ID attribute.
static const XMLCh xmlid[] = UNICODE_LITERAL_2(i,d);
- AttributeExtensibleXMLObject::registerIDAttribute(QName(XMLConstants::XML_NS, xmlid));
+ AttributeExtensibleXMLObject::registerIDAttribute(QName(xmlconstants::XML_NS, xmlid));
}
catch (const xercesc::XMLException&) {
log.fatal("caught exception while initializing Xerces");
XMLToolingException::deregisterFactories();
AttributeExtensibleXMLObject::deregisterIDAttributes();
+ StorageServiceManager.deregisterFactories();
+ termSOAPTransports();
+ SOAPTransportManager.deregisterFactories();
#ifndef XMLTOOLING_NO_XMLSEC
TrustEngineManager.deregisterFactories();
CredentialResolverManager.deregisterFactories();
KeyResolverManager.deregisterFactories();
#endif
+ delete m_replayCache;
+ m_replayCache = NULL;
+
+ delete m_templateEngine;
+ m_templateEngine = NULL;
+
for (vector<void*>::reverse_iterator i=m_libhandles.rbegin(); i!=m_libhandles.rend(); i++) {
#if defined(WIN32)
FARPROC fn=GetProcAddress(static_cast<HMODULE>(*i),"xmltooling_extension_term");