Example usage for org.hibernate.internal.util.xml XMLHelper XMLHelper

List of usage examples for org.hibernate.internal.util.xml XMLHelper XMLHelper

Introduction

In this page you can find the example usage for org.hibernate.internal.util.xml XMLHelper XMLHelper.

Prototype

public XMLHelper() 

Source Link

Usage

From source file:org.jboss.tools.hibernate4_0.ConfigurationFactory.java

License:Open Source License

@SuppressWarnings("unchecked")
private Configuration loadConfigurationXML(Configuration localCfg, boolean includeMappings,
        EntityResolver entityResolver) {
    File configXMLFile = prefs.getConfigXMLFile();
    if (!includeMappings) {
        org.dom4j.Document doc;//from www.j  ava2s.  c om
        XMLHelper xmlHelper = new XMLHelper();
        InputStream stream = null;
        String resourceName = "<unknown>"; //$NON-NLS-1$
        if (configXMLFile != null) {
            resourceName = configXMLFile.toString();
            try {
                stream = new FileInputStream(configXMLFile);
            } catch (FileNotFoundException e1) {
                throw new HibernateConsoleRuntimeException(
                        ConsoleMessages.ConsoleConfiguration_could_not_access + configXMLFile, e1);
            }
        } else {
            resourceName = "/hibernate.cfg.xml"; //$NON-NLS-1$
            if (checkHibernateResoureExistence(resourceName)) {
                stream = ConfigHelper.getResourceAsStream(resourceName); // simulate hibernate's
                // default look up
            } else {
                return localCfg;
            }
        }
        try {
            List<Throwable> errors = new ArrayList<Throwable>();
            doc = xmlHelper.createSAXReader(resourceName, errors, entityResolver).read(new InputSource(stream));
            if (errors.size() != 0) {
                throw new MappingException(ConsoleMessages.ConsoleConfiguration_invalid_configuration,
                        errors.get(0));
            }
            List<Node> list = doc.getRootElement().element("session-factory").elements("mapping"); //$NON-NLS-1$ //$NON-NLS-2$
            for (Node element : list) {
                element.getParent().remove(element);
            }
            DOMWriter dw = new DOMWriter();
            Document document = dw.write(doc);
            return localCfg.configure(document);

        } catch (DocumentException e) {
            throw new HibernateException(
                    ConsoleMessages.ConsoleConfiguration_could_not_parse_configuration + resourceName, e);
        } finally {
            try {
                if (stream != null)
                    stream.close();
            } catch (IOException ioe) {
                // log.warn( "could not close input stream for: " + resourceName, ioe );
            }
        }
    } else {
        if (configXMLFile != null) {
            return localCfg.configure(configXMLFile);
        } else {
            Configuration resultCfg = localCfg;
            if (checkHibernateResoureExistence("/hibernate.cfg.xml")) { //$NON-NLS-1$
                resultCfg = localCfg.configure();
            }
            return resultCfg;
        }
    }
}