public override void Init(System.Collections.Generic.Dictionary <object, object> dictionary)
        {
            base.Init(dictionary);

            lock (initLock)
            {
                if (collectorsConfig == null)
                {
                    Stream configStream = null;

                    String config = Path.GetDirectoryName(Assembly.GetAssembly(typeof(HttpParseCollectPipe)).Location) + "\\conf\\DataCollectors.config";

                    try
                    {
                        if (File.Exists(config))
                        {
                            configStream = File.Open(config, FileMode.Open);
                        }
                        else
                        {
                            configStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MySpace.MSFast.Engine.DataCollectors.config");
                        }

                        collectorsConfig = new CollectorsConfig(configStream);
                    }
                    catch
                    {
                    }

                    finally
                    {
                        try
                        {
                            if (configStream != null)
                            {
                                configStream.Close();
                            }
                        }
                        catch
                        {
                        }
                        configStream = null;
                    }
                }
            }
        }
        public override void Flush()
        {
            CollectorsConfig cc           = null;
            Stream           configStream = null;

            try
            {
                configStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MySpace.MSFast.Engine.DataCollectors.config");
                cc           = new CollectorsConfig(configStream);
            }
            catch
            {
            }
            finally
            {
                try
                {
                    if (configStream != null)
                    {
                        configStream.Close();
                    }
                }
                catch
                {
                }
                configStream = null;
            }

            if (this.CollectionInfoParser.CollectFlags == 0 ||
                cc == null ||
                cc.Collection == null ||
                String.IsNullOrEmpty(cc.Collection.JSMain) ||
                String.IsNullOrEmpty(cc.Collection.Html) ||
                String.IsNullOrEmpty(cc.Collection.JSSetTestID) ||
                String.IsNullOrEmpty(cc.Collection.JSStartCollecting))
            {
                return;
            }

            CollectPageInformation cpi = CollectPageInformation.Render;

            try{
                cpi = (CollectPageInformation)Enum.ToObject(typeof(CollectPageInformation), this.CollectionInfoParser.CollectFlags);
            }catch
            {
            }

            StringBuilder scripts = new StringBuilder();

            foreach (CollectorsConfig.Collector cs in cc)
            {
                if ((cpi & cs.CollectType) == cs.CollectType)
                {
                    scripts.Append(cs.Collection);
                }
            }

            if (this.CollectionInfoParser != null && this.Configuration is EngineSuProxyConfiguration)
            {
                scripts.Insert(0, String.Format(cc.Collection.JSSetTestID, 0, 0, ((EngineSuProxyConfiguration)this.Configuration).CollectionID, this.CollectionInfoParser.URL, this.CollectionInfoParser.URLEncoded));
                scripts.Insert(0, cc.Collection.JSMain);

                String page = String.Format(cc.Collection.Html, scripts.ToString(), cc.Collection.JSStartCollecting);

                byte[] b = Encoding.UTF8.GetBytes(page);

                base.SendHeader(String.Format(responseHeader, b.Length));
                base.SendBodyData(b, 0, b.Length);
            }
            base.Flush();
        }