public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            base.Initialize(name, config);

            if (config == null)
            {
                return;
            }

            if (config["enableCssMinify"] != null)
            {
                bool enableCssMinify = true;
                if (bool.TryParse(config["enableCssMinify"], out enableCssMinify))
                {
                    EnableCssMinify = enableCssMinify;
                }
            }
            if (config["enableJsMinify"] != null)
            {
                bool enableJsMinify = true;
                if (bool.TryParse(config["enableJsMinify"], out enableJsMinify))
                {
                    EnableJsMinify = enableJsMinify;
                }
            }

            if (config["persistFiles"] != null)
            {
                bool persistFiles;
                if (bool.TryParse(config["persistFiles"], out persistFiles))
                {
                    PersistCompositeFiles = persistFiles;
                }
            }

            if (config["urlType"] != null)
            {
                try
                {
                    UrlType = (CompositeUrlType)Enum.Parse(typeof(CompositeUrlType), config["urlType"]);
                }
                catch (ArgumentException)
                {
                    //swallow exception, we've set the default
                }
            }
            if (config["pathUrlFormat"] != null)
            {
                PathBasedUrlFormat = config["pathUrlFormat"];
                PathBasedUrlFormatter.Validate(PathBasedUrlFormat);
            }

            CompositeFilePathAsString = config["compositeFilePath"] ?? DefaultDependencyPath;

            string bundleDomains = config["bundleDomains"];

            if (bundleDomains != null)
            {
                bundleDomains = bundleDomains.Trim();
            }
            if (string.IsNullOrEmpty(bundleDomains))
            {
                BundleDomains = new List <string>();
            }
            else
            {
                string[] domains = bundleDomains.Split(new char[] { ',' });
                for (int i = 0; i < domains.Length; i++)
                {
                    // make sure we have a starting dot and a trailing port
                    // ie 'maps.google.com' will be stored as '.maps.google.com:80'
                    if (domains[i].IndexOf(':') < 0)
                    {
                        domains[i] = domains[i] + ":80";
                    }
                    if (!domains[i].StartsWith("."))
                    {
                        domains[i] = "." + domains[i];
                    }
                }
                BundleDomains = new List <string>(domains);
            }
        }