Java tutorial
/* **************************************************************************** * * * (c) Copyright 2006 ABM-utvikling * * * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * * * * 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 General * * Public License for more details. http://www.gnu.org/licenses/gpl.html * * * **************************************************************************** */ package no.abmu.finances.domain; import junit.framework.TestCase; import no.abmu.organisationregister.domain.BankAccountNumber; import no.abmu.organisationregister.domain.ContactPerson; import no.abmu.organisationregister.domain.ContactRelation; import no.abmu.organisationregister.domain.ContactRole; import no.abmu.organisationregister.domain.Country; import no.abmu.organisationregister.domain.CountryName; import no.abmu.organisationregister.domain.EmailAddress; import no.abmu.organisationregister.domain.ExtendedContactPerson; import no.abmu.organisationregister.domain.FaxNumber; import no.abmu.organisationregister.domain.Muncipality; import no.abmu.organisationregister.domain.MuncipalityRelation; import no.abmu.organisationregister.domain.OrganisationName; import no.abmu.organisationregister.domain.OrganisationRelation; import no.abmu.organisationregister.domain.OrganisationRelationRole; import no.abmu.organisationregister.domain.OrganisationType; import no.abmu.organisationregister.domain.OrganisationTypeName; import no.abmu.organisationregister.domain.OrganisationTypeRelation; import no.abmu.organisationregister.domain.OrganisationUnit; import no.abmu.organisationregister.domain.POBoxAddress; import no.abmu.organisationregister.domain.StreetAddress; import no.abmu.organisationregister.domain.TelephoneNumber; import no.abmu.organisationregister.domain.WebAddress; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Environment; import org.hibernate.dialect.HSQLDialect; import org.springframework.orm.hibernate3.SessionFactoryUtils; import org.springframework.orm.hibernate3.SessionHolder; import org.springframework.transaction.support.TransactionSynchronizationManager; /** * AbstractLocalTest. * * @author Erik Romson, erik@zenior.no * @author $Author: jan.magne $ * @version $Rev: 12470 $ * @date $Date: 2009-01-06 19:41:44 +0100 (Tue, 06 Jan 2009) $ * @copyright ABM-Utvikling */ public class AbstractLocalHibernate3Test extends TestCase { private static final Log logger = (Log) LogFactory.getLog(AbstractLocalTest.class); protected Session session, session2; protected Transaction transaction; protected SessionFactory sessionFactory; protected void setUp() throws Exception { AnnotationConfiguration configuration = new AnnotationConfiguration(); configuration.setProperty(Environment.DRIVER, "org.hsqldb.jdbcDriver"); configuration.setProperty(Environment.URL, "jdbc:hsqldb:mem:financeH3"); configuration.setProperty(Environment.USER, "sa"); configuration.setProperty(Environment.DIALECT, HSQLDialect.class.getName()); configuration.setProperty(Environment.SHOW_SQL, "false"); configuration.setProperty(Environment.HBM2DDL_AUTO, "create-drop"); configuration.setProperty(Environment.STATEMENT_BATCH_SIZE, "0"); configuration.setProperty("hibernate.cache.use_second_level_cache", "false"); configuration.addClass(ReportSchema.class); configuration.addClass(Account.class); configuration.addClass(Post.class); configuration.addClass(PostPeriod.class); configuration.addClass(PostType.class); configuration.addClass(PostValidator.class); configuration.addClass(ReportData.class); configuration.addClass(PostData.class); configuration.addClass(SubReportDataList.class); configuration.addClass(AccountOrgUnitMapping.class); configuration.addClass(ReportDataOrgUnitMapping.class); configuration.addAnnotatedClass(ContactRole.class); configuration.addAnnotatedClass(CountryName.class); configuration.addAnnotatedClass(OrganisationName.class); configuration.addAnnotatedClass(OrganisationRelationRole.class); configuration.addAnnotatedClass(OrganisationTypeName.class); configuration.addAnnotatedClass(POBoxAddress.class); configuration.addAnnotatedClass(StreetAddress.class); configuration.addAnnotatedClass(ExtendedContactPerson.class); configuration.addAnnotatedClass(BankAccountNumber.class); configuration.addAnnotatedClass(ContactPerson.class); configuration.addAnnotatedClass(EmailAddress.class); configuration.addAnnotatedClass(FaxNumber.class); configuration.addAnnotatedClass(TelephoneNumber.class); configuration.addAnnotatedClass(WebAddress.class); configuration.addAnnotatedClass(Muncipality.class); configuration.addAnnotatedClass(Country.class); configuration.addAnnotatedClass(MuncipalityRelation.class); configuration.addAnnotatedClass(OrganisationType.class); configuration.addAnnotatedClass(OrganisationTypeRelation.class); configuration.addAnnotatedClass(ContactRelation.class); configuration.addAnnotatedClass(OrganisationRelation.class); configuration.addAnnotatedClass(OrganisationUnit.class); String[] arr = configuration.generateSchemaCreationScript(new HSQLDialect()); sessionFactory = configuration.buildSessionFactory(); session = sessionFactory.openSession(); session2 = sessionFactory.openSession(); this.session = SessionFactoryUtils.getSession(sessionFactory, true); TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session)); } public void testDummy() { } protected void tearDown() throws Exception { TransactionSynchronizationManager.unbindResource(sessionFactory); SessionFactoryUtils.releaseSession(session, sessionFactory); SessionFactoryUtils.releaseSession(session2, sessionFactory); } }