       if a_path like '%.%' then
         l_temp_root := regexp_substr(a_path, '^[^.]+');
         l_path := ltrim(a_parent_path||'.'||l_temp_root,'.');
-      
+
         if a_root_suite is not null then
-        
+
           l_ind := a_root_suite.item_index(l_temp_root);
-        
+
           if l_ind is null then
             l_cur_item := ut_test_suite(a_suite_name  => null
                                        ,a_object_name => l_temp_root

            if l_proc_annotations.exists('testsetup') then
              l_setup_procedure := ut_annotations.get_annotation_param(l_proc_annotations('testsetup'), 1);
            end if;
          
            if l_proc_annotations.exists('testteardown') then
              l_teardown_procedure := ut_annotations.get_annotation_param(l_proc_annotations('testteardown'), 1);
            end if;
          
            if l_proc_annotations.exists('rollback') then
              l_rollback_annotation := ut_annotations.get_annotation_param(l_proc_annotations('rollback'), 1);
              l_rollback_type       := case lower(l_rollback_annotation)

                             ,a_setup_procedure    => nvl(l_setup_procedure, l_default_setup_proc)
                             ,a_teardown_procedure => nvl(l_teardown_procedure, l_default_teardown_proc)
                             ,a_rollback_type      => l_rollback_type);

            if l_proc_annotations.exists('ignore') then
              l_test.set_ignore_flag(true);
            end if;

            l_suite.add_item(l_test);
          end;
        end if;

        l_proc_name := l_annotation_data.procedure_annotations.next(l_proc_name);
      end loop;
    end if;
    return l_suite;

  end config_package;
  
  procedure actualize_cache(a_owner_name varchar2, a_schema_suites tt_schema_suites) is
  begin
    if a_schema_suites.count > 0 then
      g_schema_suites(a_owner_name).schema_suites := a_schema_suites;
      g_schema_suites(a_owner_name).changed_at := sysdate;
    elsif g_schema_suites.exists(a_owner_name) then
      g_schema_suites.delete(a_owner_name);
    end if;
  end;

  procedure config_schema(a_owner_name varchar2) is
    l_suite ut_test_suite;

    l_all_suites tt_schema_suites;
    l_ind        varchar2(4000 char);
    l_path       varchar2(4000 char);
    l_root       varchar2(4000 char);
    l_root_suite ut_test_suite;

    l_schema_suites tt_schema_suites;

    procedure put(a_root_suite in out nocopy ut_test_suite, a_path varchar2, a_suite ut_test_suite, a_parent_path varchar2 default null) is
      l_temp_root varchar2(4000 char);
      l_path varchar2(4000 char);
