/* * Copyright 2005 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wamblee.test.spring; import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.util.Map; import java.util.Properties; import java.util.TreeMap; import org.apache.oro.io.AwkFilenameFilter; import org.hibernate.cfg.Configuration; import org.wamblee.io.ClassPathResource; import org.wamblee.io.InputResource; /** * Hibernate utilities. * * @author Erik Brakkee */ public final class HibernateUtils { private static final String DATABASE_PROPS = "test.database.properties"; /** * Disabled. * */ private HibernateUtils() { // Empty } /** * @param aDir * @return */ public static Configuration getConfiguration(File aDir) throws IOException { Configuration conf = new Configuration(); File[] files = aDir.listFiles((FileFilter) (new AwkFilenameFilter( ".*\\.hbm\\.xml"))); for (File f : files) { System.out.println("Mapping file: " + f); conf.addFile(f); } Map dbProps = getHibernateProperties(); for (Map.Entry entry : dbProps.entrySet()) { System.out.println("Property: " + entry.getKey() + "=" + entry.getValue()); conf.setProperty(entry.getKey(), entry.getValue()); } return conf; } private static Map getHibernateProperties() throws IOException { System.out.println("Reading properties file: " + DATABASE_PROPS); InputResource lPropFile = new ClassPathResource(DATABASE_PROPS); Properties props = new Properties(); props.load(lPropFile.getInputStream()); Map result = new TreeMap(); result.put("hibernate.connection.driver_class", props .getProperty("database.driver")); result.put("hibernate.connection.url", props .getProperty("database.url")); result.put("hibernate.connection.username", props .getProperty("database.username")); result.put("hibernate.connection.password", props .getProperty("database.password")); return result; } }