Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This page covers the following JIRA issues: UPT-77

Goals

Implement existing DAO interfaces using Hibernate and Spring. Current implementations are written using SpringJDBC approach. The hope is that using Hibernate will increase flexibility and reduce the amount of code.

Implementation requirements

Interfaces need to be implemented

-IPortletDefinitionDao
-IPortletApplicationDefinitionDao
-IPortletEntityDao
-IPortletApplicationEntityDao
-IPortletWindowDao
-IPortletPreferencesDao

These are core domain object DAO interfaces. There are a few other DAOs in the framework, which we can add later on.

SpringJDBC implementation

Current (SpringJDBC) implementations of these interfaces are located in org.jasig.portal.portlet.dao.springjdbc package. The initial snapshot of the database is described by tables.xml and data.xml files, and is loaded upon uPortal deployment using our custom DbLoader tool. We need to maintain ability to seed database with some information upon uPortal deployment.

Spring integration

Current DAO configuration is described in persistence_beans.xml. Please refer to the Hibernate section of the Spring documentation for configuration advice.

Unit testing and procedure

Unit thests for the existing SpringJDBC implementation are located in the tests folder, under the same package as the implementations. Hibernate implementations should have unit tests, with at least the same level of functional coverage. The tests currently rely on BaseDbTestCase, which initializes the database tables with data required for the tests. I imagine Hibernate tests will have to be derived from another such base class.
For development purposes, it may be possible to start replacing some of the DAO implementations, while leaving others as they are. Be careful with sequence ID fields.

  • No labels