package com.googlecode.tawus.hibernate.services;
import java.util.Properties;
import org.apache.tapestry5.ioc.MethodAdviceReceiver;
import org.apache.tapestry5.ioc.OrderedConfiguration;
import org.apache.tapestry5.ioc.annotations.Contribute;
import org.apache.tapestry5.ioc.annotations.Match;
import org.apache.tapestry5.ioc.annotations.SubModule;
import com.googlecode.tawus.hibernate.services.TawusHibernateModule;
import com.googlecode.tawus.hibernate.services.SessionFactoryConfiguration;
import com.googlecode.tawus.hibernate.services.SessionFactorySource;
@SubModule(TawusHibernateModule.class)
public class TestModule {
@Contribute(SessionFactorySource.class)
public void providerSessionFactorySource(
OrderedConfiguration<SessionFactoryConfiguration> configuration) {
configuration.add("default",
new SessionFactoryConfiguration(){
public void configure(
org.hibernate.cfg.Configuration configuration) {
Properties prop = new Properties();
prop.put("hibernate.dialect",
"org.hibernate.dialect.HSQLDialect");
prop.put("hibernate.connection.driver_class",
"org.hsqldb.jdbcDriver");
prop
.put("hibernate.connection.url",
"jdbc:hsqldb:mem:testdb");
prop.put("hibernate.connection.username", "sa");
prop.put("hibernate.connection.password", "");
prop.put("hibernate.connection.pool_size", "1");
prop.put("hibernate.connection.autocommit", "false");
prop.put("hibernate.hbm2ddl.auto", "create-drop");
prop.put("hibernate.show_sql", "true");
prop.put("hibernate.current_session_context_class", "thread");
configuration.addProperties(prop);
}
public String[] getPackageNames() {
return new String[]{"com.googlecode.tawus.hibernate.models"};
}
public String getFactoryId() {
return "default";
}
});
}
@Match( { "*DAO" })
public static void adviseTransaction(TransactionAdvisor transactionAdvisor,
MethodAdviceReceiver receiver) {
transactionAdvisor.addTransactionAdvice(receiver);
}
}