/**
   * Returns the list of interceptors assigned to the specified component service interface.<br>
   * <br>
   * This method is synchronized because used in thread intensive environment and the interceptors
   * are created only once and cached.
   *
   * @param serviceClass the component service interface
   * @return a list of interceptors
   */
  public static synchronized List getInterceptors(Class serviceClass) {
    List interceptors = serviceMap.get(serviceClass);

    if (interceptors == null) {
      DebugHome.debug("Loading interceptors for service ", serviceClass.getName());
      interceptors = loadInterceptors(serviceClass);
      DebugHome.debugValue("Interceptors", interceptors);
      serviceMap.put(serviceClass, interceptors);
    }

    return interceptors;
  }
  protected void setUp() throws Exception {
    System.setProperty(DebugLog.ENABLE_SYSTEM_PROPERTY, "true");
    DebugHome.setDebugLog(new Log4jDebugLog());

    Configuration configuration = new Configuration();
    configuration.setProperty("hibernate.show_sql", "true");
    configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
    configuration.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
    configuration.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/highway");
    configuration.setProperty("hibernate.connection.username", "anonymous");
    configuration.setProperty("hibernate.connection.isolation", "2");
    configuration.configure("/hibernate.cfg.xml");

    database = new HibernateDatabase(configuration);
  }