JingDAO Tutorial: DAO Configuration

By using the Avalon configuration API, you can also perform per-DAO configuration. An example is given in the DaoConfTestCase unit test and uses our SimpleDao . The configuration file looks like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
    <manager id="default">
         <dao name="simple" uri="class://org.jadetower.dao.test.daos.impl.SimpleConfDaoImpl">
           <name>Hello World!</name>

Notice the "simple" DAO has it's one XML content. This XML configuration can be in any form and accessed by the DAO implementation via the Avalon configuration API:

package org.jadetower.dao.test.daos.impl;

import org.jadetower.dao.test.daos.SimpleDAO;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;

public class SimpleConfDaoImpl
    implements SimpleDAO, Configurable
  protected String m_name = "unconfigured";

  public SimpleConfDaoImpl() {

  public String getName() {
    return m_name;

  public void configure(Configuration configuration) {
    Configuration nameElement = configuration.getChild("name",true);
    m_name = nameElement.getValue(null);

This allows for more specific configuration for each DAO. In general, using the map-based context provides a simplier, global configuration scheme, but in some cases for complex DAO's or services, you may want to take advantage of the Avalon API.