/* * 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; 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. */ public class HibernateUtils { private static final String DATABASE_PROPS = "test.database.properties"; /** * @param dir * @return */ public static Configuration getConfiguration(File dir) throws IOException { Configuration conf = new Configuration(); File[] files = dir.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; } }