Example #1
0
        private static UrlResolverDelegate CreateWindorUrlResolver(IWindsorContainer container)
        {
            IResourceSubSystem subSystem = (IResourceSubSystem)
                                           container.Kernel.GetSubSystem(SubSystemConstants.ResourceKey);

            return(delegate(string url, string basePath)
            {
                IResource resource;

                if (url.IndexOf(':') < 0)
                {
                    url = "file://" + url;
                }

                if (!string.IsNullOrEmpty(basePath))
                {
                    resource = subSystem.CreateResource(url, basePath);
                }
                else
                {
                    resource = subSystem.CreateResource(url);
                }
                using (resource)
                    using (TextReader reader = resource.GetStreamReader())
                        return new StringReader(reader.ReadToEnd());
            });
        }
        public IResource GetResource(String uri)
        {
            IResource resource;

            if (resourceStack.Count > 0)
            {
                resource = resourceStack.Peek();
            }
            else
            {
                resource = null;
            }

            if (uri.IndexOf(Uri.SchemeDelimiter) != -1)
            {
                if (resource == null)
                {
                    return(resourceSubSystem.CreateResource(uri));
                }

                return(resourceSubSystem.CreateResource(uri, resource.FileBasePath));
            }

            // NOTE: what if resource is null at this point?
            if (resourceStack.Count > 0)
            {
                return(resource.CreateRelative(uri));
            }

            throw new XmlProcessorException("Cannot get relative resource '" + uri + "', resource stack is empty");
        }
Example #3
0
        public IResource GetResource(String uri)
        {
            IResource resource = resourceStack.Count > 0 ? resourceStack.Peek() as IResource : null;

            if (uri.IndexOf(Uri.SchemeDelimiter) != -1)
            {
                return(resource == null?resourceSubSystem.CreateResource(uri) :
                           resourceSubSystem.CreateResource(uri, resource.FileBasePath));
            }
            if (resourceStack.Count > 0)
            {
                return(resource.CreateRelative(uri));
            }

            throw new XmlProcessorException("Cannot get relative resource '" + uri + "', resource stack is empty");
        }
        protected override AbstractConfigurationRunner InstallInto(IWindsorContainer container)
        {
            IResourceSubSystem system   = (IResourceSubSystem)container.Kernel.GetSubSystem(SubSystemConstants.ResourceKey);
            IResource          resource = system.CreateResource(uri);
            CustomUri          Uri      = new CustomUri(uri);

            return(BooReader.Read(container, Uri, GenerationOptions, GetName(), EnvironmentName));
        }
        public IResource GetResource(String resourceUri, IResource resource)
        {
            if (resourceUri.IndexOf(Uri.SchemeDelimiter) == -1)
            {
                return(resource.CreateRelative(resourceUri));
            }

            IResourceSubSystem subSystem = (IResourceSubSystem)
                                           Kernel.GetSubSystem(SubSystemConstants.ResourceKey);

            return(subSystem.CreateResource(resourceUri, resource.FileBasePath));
        }
Example #6
0
        public static AbstractConfigurationRunner GetConfigurationInstanceFromResource(
            string name, string environment, IWindsorContainer container, CustomUri uri,
            GenerationOptions generationOptions, params string[] namespaces)
        {
            IResourceSubSystem system =
                (IResourceSubSystem)container.Kernel.GetSubSystem(SubSystemConstants.ResourceKey);
            IResource           resource      = system.CreateResource(uri);
            string              baseDirectory = Path.GetDirectoryName(uri.Path);
            UrlResolverDelegate urlResolver   = CreateWindorUrlResolver(container);

            return(GetConfigurationInstance(
                       name, environment, new ReaderInput(name, resource.GetStreamReader()),
                       generationOptions, new AutoReferenceFilesCompilerStep(baseDirectory, urlResolver),
                       namespaces));
        }
Example #7
0
        public RhinoContainer(CustomUri uri, IEnvironmentInfo env)
            : base(new DefaultKernel(), CreateInterpreter(uri, env))
        {
            IResourceSubSystem system   = (IResourceSubSystem)Kernel.GetSubSystem(SubSystemConstants.ResourceKey);
            IResource          resource = system.CreateResource(uri);

            if (IsBoo(uri))
            {
                RunInstaller();
            }
            else
            {
                InitalizeFromConfigurationSource(
                    new XmlInterpreter(resource), env);
            }
        }