⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 confighelper.java

📁 hibernate-distribution-3.3.1.GA-dist.zip源码
💻 JAVA
字号:
/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors.  All third-party contributions are * distributed under license by Red Hat Middleware LLC. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA  02110-1301  USA * */package org.hibernate.util;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.net.MalformedURLException;import java.net.URL;import java.util.Properties;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.hibernate.HibernateException;import org.hibernate.cfg.Environment;/** * A simple class to centralize logic needed to locate config files on the system. * * @author Steve */public final class ConfigHelper {	private static final Logger log = LoggerFactory.getLogger(ConfigHelper.class);	/** Try to locate a local URL representing the incoming path.  The first attempt	 * assumes that the incoming path is an actual URL string (file://, etc).  If this	 * does not work, then the next attempts try to locate this UURL as a java system	 * resource.	 *	 * @param path The path representing the config location.	 * @return An appropriate URL or null.	 */	public static final URL locateConfig(final String path) {		try {			return new URL(path);		}		catch(MalformedURLException e) {			return findAsResource(path);		}	}	/** 	 * Try to locate a local URL representing the incoming path.  	 * This method <b>only</b> attempts to locate this URL as a 	 * java system resource.	 *	 * @param path The path representing the config location.	 * @return An appropriate URL or null.	 */	public static final URL findAsResource(final String path) {		URL url = null;		// First, try to locate this resource through the current		// context classloader.		ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();		if (contextClassLoader!=null) {			url = contextClassLoader.getResource(path);		}		if (url != null)			return url;		// Next, try to locate this resource through this class's classloader		url = ConfigHelper.class.getClassLoader().getResource(path);		if (url != null)			return url;		// Next, try to locate this resource through the system classloader		url = ClassLoader.getSystemClassLoader().getResource(path);		// Anywhere else we should look?		return url;	}	/** Open an InputStream to the URL represented by the incoming path.  First makes a call	 * to {@link #locateConfig(java.lang.String)} in order to find an appropriate URL.	 * {@link java.net.URL#openStream()} is then called to obtain the stream.	 *	 * @param path The path representing the config location.	 * @return An input stream to the requested config resource.	 * @throws HibernateException Unable to open stream to that resource.	 */	public static final InputStream getConfigStream(final String path) throws HibernateException {		final URL url = ConfigHelper.locateConfig(path);		if (url == null) {			String msg = "Unable to locate config file: " + path;			log.error( msg );			throw new HibernateException(msg);		}		try {			return url.openStream();        }		catch(IOException e) {	        throw new HibernateException("Unable to open config file: " + path, e);        }	}	/** Open an Reader to the URL represented by the incoming path.  First makes a call	 * to {@link #locateConfig(java.lang.String)} in order to find an appropriate URL.	 * {@link java.net.URL#openStream()} is then called to obtain a stream, which is then	 * wrapped in a Reader.	 *	 * @param path The path representing the config location.	 * @return An input stream to the requested config resource.	 * @throws HibernateException Unable to open reader to that resource.	 */	public static final Reader getConfigStreamReader(final String path) throws HibernateException {		return new InputStreamReader( getConfigStream(path) );	}	/** Loads a properties instance based on the data at the incoming config location.	 *	 * @param path The path representing the config location.	 * @return The loaded properties instance.	 * @throws HibernateException Unable to load properties from that resource.	 */	public static final Properties getConfigProperties(String path) throws HibernateException {		try {			Properties properties = new Properties();			properties.load( getConfigStream(path) );			return properties;		}		catch(IOException e) {			throw new HibernateException("Unable to load properties from specified config file: " + path, e);		}	}		private ConfigHelper() {}	public static InputStream getResourceAsStream(String resource) {		String stripped = resource.startsWith("/") ?				resource.substring(1) : resource;		InputStream stream = null;		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();		if (classLoader!=null) {			stream = classLoader.getResourceAsStream( stripped );		}		if ( stream == null ) {			stream = Environment.class.getResourceAsStream( resource );		}		if ( stream == null ) {			stream = Environment.class.getClassLoader().getResourceAsStream( stripped );		}		if ( stream == null ) {			throw new HibernateException( resource + " not found" );		}		return stream;	}	public static InputStream getUserResourceAsStream(String resource) {		boolean hasLeadingSlash = resource.startsWith( "/" );		String stripped = hasLeadingSlash ? resource.substring(1) : resource;		InputStream stream = null;		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();		if ( classLoader != null ) {			stream = classLoader.getResourceAsStream( resource );			if ( stream == null && hasLeadingSlash ) {				stream = classLoader.getResourceAsStream( stripped );			}		}		if ( stream == null ) {			stream = Environment.class.getClassLoader().getResourceAsStream( resource );		}		if ( stream == null && hasLeadingSlash ) {			stream = Environment.class.getClassLoader().getResourceAsStream( stripped );		}		if ( stream == null ) {			throw new HibernateException( resource + " not found" );		}		return stream;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -