public bool RemovePlugin( ConfigurationPlugin plugin )
        {
            for ( int i= 0; i < plugins.Count; i++ )
            {
                if ( plugins[i].plugin == plugin )
                {
                    plugins.RemoveAt( i );
                    return true;
                }
            }

            ALIB.WARNING( "No Plug-in was removed " );
            return false;
        }
        public int FetchFromDefault( ConfigurationPlugin dest)
        {
            int cntCopied= 0;
            Variable variable= new Variable();
            for( int sNo= 0; sNo < DefaultValues.Sections.Count ; sNo++ )
            {
                InMemoryPlugin.Section section= DefaultValues.Sections[sNo];
                for( int vNo= 0; vNo < section.Entries.Count ; vNo++ )
                {
                    InMemoryPlugin.Entry entry= section.Entries[vNo];
                    if( !dest.Load( variable.Define(section.Name, entry.Name ), true ) )
                    {
                        DefaultValues.Load  ( variable );
                        dest.Store( variable );
                        cntCopied++;
                    }
                }
            }

            return  cntCopied;
        }
        public void InsertPlugin( ConfigurationPlugin plugin, int priority )
        {
            int i;
            for ( i= 0; i < plugins.Count; i++ )
            {
                ALIB.ASSERT_ERROR( plugins[i].prio != priority,
                    "Configuration.InsertPlugin(): Plug-in with same priority exists" );

                if ( plugins[i].prio < priority )
                    break;
            }

            PluginAndPrio ppp=  new PluginAndPrio();
            ppp.plugin=         plugin;
            ppp.prio=           priority;
            plugins.Insert( i, ppp );
        }