package com.dpd.general.services;

import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.torque.Torque;
import org.apache.torque.TorqueException;

import net.sf.tapestry.ApplicationRuntimeException;

public class DatabaseService extends BaseService
{
    Log log = LogFactory.getLog(this.getClass());

    /**
     * The name of this service.
     */
    public static final String SERVICE_NAME = "DatabaseService";

    public void init(PropertiesConfiguration conf) throws ApplicationRuntimeException
    {
        setName(SERVICE_NAME);
        setConfiguration(conf);

        String config = getConfiguration().getString("services.properties." + SERVICE_NAME);
        if (config == null)
            throw new ApplicationRuntimeException("no database config file declared");

        try
        {
            Torque torque = new Torque();
            torque.init(config);
        }
        catch (TorqueException ex)
        {
            throw new ApplicationRuntimeException(ex);
        }

        setInit(true);
        log.info(getName() + ": " + getStatus());
    }
}
