/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.internal.util.xml;

import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;

import org.dom4j.DocumentFactory;
import org.dom4j.io.SAXReader;
import org.xml.sax.EntityResolver;

Small helper class that lazy loads DOM and SAX reader and keep them for fast use afterwards.
Deprecated:Currently only used for integration with HCANN. The rest of Hibernate uses StAX now for XML processing. See stax
/** * Small helper class that lazy loads DOM and SAX reader and keep them for fast use afterwards. * * @deprecated Currently only used for integration with HCANN. The rest of Hibernate uses StAX now * for XML processing. See {@link org.hibernate.boot.jaxb.internal.stax} */
@Deprecated public final class XMLHelper { private final DocumentFactory documentFactory; public XMLHelper(ClassLoaderService classLoaderService) { this.documentFactory = classLoaderService.workWithClassLoader( new ClassLoaderService.Work<DocumentFactory>() { @Override public DocumentFactory doWork(ClassLoader classLoader) { final ClassLoader originalTccl = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader( classLoader ); return DocumentFactory.getInstance(); } finally { Thread.currentThread().setContextClassLoader( originalTccl ); } } } ); } public DocumentFactory getDocumentFactory() { return documentFactory; } public SAXReader createSAXReader(ErrorLogger errorLogger, EntityResolver entityResolver) { SAXReader saxReader = new SAXReader(); saxReader.setMergeAdjacentText( true ); saxReader.setValidation( true ); saxReader.setErrorHandler( errorLogger ); saxReader.setEntityResolver( entityResolver ); return saxReader; } }