Example #1
0
        private void PerformOneTimeInitializationIfNecessary(HttpContext context)
        {
            locker.AcquireReaderLock(Timeout.Infinite);

            if (mrContainer != null)
            {
                locker.ReleaseReaderLock();
                return;
            }

            locker.UpgradeToWriterLock(Timeout.Infinite);

            if (mrContainer != null)             // remember remember the race condition
            {
                locker.ReleaseWriterLock();
                return;
            }

            try
            {
                if (configuration == null)
                {
                    configuration = ObtainConfiguration(context.ApplicationInstance);
                }

                var userServiceProvider = serviceProviderLocator.LocateProvider();

                mrContainer = CreateDefaultMonoRailContainer(userServiceProvider, context.ApplicationInstance);
            }
            finally
            {
                locker.ReleaseWriterLock();
            }
        }
Example #2
0
        void IMonoRailContainerEvents.Initialized(IMonoRailContainer container)
        {
            Assembly precompiled = Assembly.Load("PrecompiledViews.Views");

            var factory = new SparkViewFactory();
            factory.Service(container);
            factory.Engine.LoadBatchCompilation(precompiled);
        }
Example #3
0
        void IMonoRailContainerEvents.Initialized(IMonoRailContainer container)
        {
            Assembly precompiled = Assembly.Load("PrecompiledViews.Views");

            var factory = new SparkViewFactory();

            factory.Service(container);
            factory.Engine.LoadBatchCompilation(precompiled);
        }
Example #4
0
 /// <summary>
 /// Resets the state (only used from test cases)
 /// </summary>
 public void ResetState()
 {
     configuration            = null;
     mrContainer              = null;
     urlTokenizer             = null;
     engineContextFactory     = null;
     serviceProviderLocator   = null;
     controllerFactory        = null;
     controllerContextFactory = null;
     staticResourceRegistry   = null;
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultEngineContext"/> class.
 /// </summary>
 /// <param name="container">The container.</param>
 /// <param name="urlInfo">Url information</param>
 /// <param name="context">The context.</param>
 /// <param name="server">The server.</param>
 /// <param name="request">The request.</param>
 /// <param name="response">The response.</param>
 /// <param name="trace">The trace.</param>
 /// <param name="session">The session.</param>
 public DefaultEngineContext(IMonoRailContainer container, UrlInfo urlInfo, HttpContext context, IServerUtility server, IRequest request, IResponse response, ITrace trace, IDictionary session)
     : base(container)
 {
     this.container         = container;
     this.UnderlyingContext = context;
     this.UrlInfo           = urlInfo;
     this.Request           = request;
     this.Response          = response;
     this.Session           = session;
     this.Server            = server;
     this.Trace             = trace;
 }
		/// <summary>
		/// Initializes a new instance of the <see cref="DefaultEngineContext"/> class.
		/// </summary>
		/// <param name="container">The container.</param>
		/// <param name="urlInfo">Url information</param>
		/// <param name="context">The context.</param>
		/// <param name="server">The server.</param>
		/// <param name="request">The request.</param>
		/// <param name="response">The response.</param>
		/// <param name="trace">The trace.</param>
		/// <param name="session">The session.</param>
		public DefaultEngineContext(IMonoRailContainer container, UrlInfo urlInfo, HttpContext context, IServerUtility server,  IRequest request, IResponse response, ITrace trace,  IDictionary session)
			: base(container)
		{
			this.container = container;
			this.UnderlyingContext = context;
			this.UrlInfo = urlInfo;
			this.Request = request;
			this.Response = response;
			this.Session = session;
			this.Server = server;
			this.Trace = trace;
		}
        /// <summary>
        /// Pendent.
        /// </summary>
        /// <param name="container"></param>
        /// <param name="urlInfo"></param>
        /// <param name="context"></param>
        /// <param name="routeMatch"></param>
        /// <returns></returns>
        public IEngineContext Create(IMonoRailContainer container, UrlInfo urlInfo, HttpContext context, RouteMatch routeMatch)
        {
            var session = ResolveRequestSession(container, urlInfo, context);

            var urlBuilder = container.UrlBuilder;

            var serverUtility = new ServerUtilityAdapter(context.Server);

            var referrer = context.Request.Headers["Referer"];

            return(new DefaultEngineContext(container, urlInfo, context,
                                            serverUtility,
                                            new RequestAdapter(context.Request),
                                            new ResponseAdapter(context.Response, urlInfo, urlBuilder, serverUtility, routeMatch, referrer),
                                            new TraceAdapter(context.Trace), session));
        }
		/// <summary>
		/// Pendent.
		/// </summary>
		/// <param name="container"></param>
		/// <param name="urlInfo"></param>
		/// <param name="context"></param>
		/// <param name="routeMatch"></param>
		/// <returns></returns>
		public IEngineContext Create(IMonoRailContainer container, UrlInfo urlInfo, HttpContext context, RouteMatch routeMatch)
		{
			var session = ResolveRequestSession(container, urlInfo, context);

			var urlBuilder = container.UrlBuilder;

			var serverUtility = new ServerUtilityAdapter(context.Server);

			var referrer = context.Request.Headers["Referer"];

			return new DefaultEngineContext(container, urlInfo, context,
			                                serverUtility,
			                                new RequestAdapter(context.Request),
											new ResponseAdapter(context.Response, urlInfo, urlBuilder, serverUtility, routeMatch, referrer),
											new TraceAdapter(context.Trace), session);
		}
		public void Init()
		{
			_Container = _MockRepository.CreateMock<IMonoRailContainer>();
			_ServiceProviderLocatorMock = _MockRepository.CreateMock<IServiceProviderLocator>();
			_ControllerFactoryMock = _MockRepository.CreateMock<IControllerFactory>();
			_ControllerMock = _MockRepository.CreateMock<IController>();
			_ControllerDescriptorProviderMock = _MockRepository.CreateMock<IControllerDescriptorProvider>();
			_ControllerContextFactoryMock = _MockRepository.CreateMock<IControllerContextFactory>();

			SetupResult.For( _Container.UrlTokenizer ).Return( new DefaultUrlTokenizer() );
			SetupResult.For( _Container.UrlBuilder ).Return( new DefaultUrlBuilder() );
			SetupResult.For( _Container.EngineContextFactory ).Return( new DefaultEngineContextFactory() );
			SetupResult.For( _Container.ControllerFactory ).Return( _ControllerFactoryMock );
			SetupResult.For( _Container.ControllerContextFactory ).Return( _ControllerContextFactoryMock );
			SetupResult.For( _Container.ControllerDescriptorProvider ).Return( _ControllerDescriptorProviderMock );
			SetupResult.For( _Container.StaticResourceRegistry ).Return( new DefaultStaticResourceRegistry() );

			_HandlerFactory = new MonoRailHttpHandlerFactory( _ServiceProviderLocatorMock );
			_HandlerFactory.ResetState();
			_HandlerFactory.Configuration = new MonoRailConfiguration();
			_HandlerFactory.Container = _Container;
		}
		public void Init()
		{
			container = mockRepository.DynamicMock<IMonoRailContainer>();
			serviceProviderLocatorMock = mockRepository.DynamicMock<IServiceProviderLocator>();
			controllerFactoryMock = mockRepository.DynamicMock<IControllerFactory>();
			controllerMock = mockRepository.DynamicMock<IAsyncController>();
			controllerDescriptorProviderMock = mockRepository.DynamicMock<IControllerDescriptorProvider>();
			controllerContextFactoryMock = mockRepository.DynamicMock<IControllerContextFactory>();

			SetupResult.For(container.UrlTokenizer).Return(new DefaultUrlTokenizer());
			SetupResult.For(container.UrlBuilder).Return(new DefaultUrlBuilder());
			SetupResult.For(container.EngineContextFactory).Return(new DefaultEngineContextFactory());
			SetupResult.For(container.ControllerFactory).Return(controllerFactoryMock);
			SetupResult.For(container.ControllerContextFactory).Return(controllerContextFactoryMock);
			SetupResult.For(container.ControllerDescriptorProvider).Return(controllerDescriptorProviderMock);
			SetupResult.For(container.StaticResourceRegistry).Return(new DefaultStaticResourceRegistry());

			handlerFactory = new MonoRailHttpHandlerFactory(serviceProviderLocatorMock);
			handlerFactory.ResetState();
			handlerFactory.Configuration = new MonoRailConfiguration();
			handlerFactory.Container = container;
		}
Example #11
0
        public void Init()
        {
            container = mockRepository.DynamicMock <IMonoRailContainer>();
            serviceProviderLocatorMock       = mockRepository.DynamicMock <IServiceProviderLocator>();
            controllerFactoryMock            = mockRepository.DynamicMock <IControllerFactory>();
            controllerMock                   = mockRepository.DynamicMock <IAsyncController>();
            controllerDescriptorProviderMock = mockRepository.DynamicMock <IControllerDescriptorProvider>();
            controllerContextFactoryMock     = mockRepository.DynamicMock <IControllerContextFactory>();

            SetupResult.For(container.UrlTokenizer).Return(new DefaultUrlTokenizer());
            SetupResult.For(container.UrlBuilder).Return(new DefaultUrlBuilder());
            SetupResult.For(container.EngineContextFactory).Return(new DefaultEngineContextFactory());
            SetupResult.For(container.ControllerFactory).Return(controllerFactoryMock);
            SetupResult.For(container.ControllerContextFactory).Return(controllerContextFactoryMock);
            SetupResult.For(container.ControllerDescriptorProvider).Return(controllerDescriptorProviderMock);
            SetupResult.For(container.StaticResourceRegistry).Return(new DefaultStaticResourceRegistry());

            handlerFactory = new MonoRailHttpHandlerFactory(serviceProviderLocatorMock);
            handlerFactory.ResetState();
            handlerFactory.Configuration = new MonoRailConfiguration();
            handlerFactory.Container     = container;
        }
Example #12
0
        public void Init()
        {
            _Container = _MockRepository.CreateMock <IMonoRailContainer>();
            _ServiceProviderLocatorMock       = _MockRepository.CreateMock <IServiceProviderLocator>();
            _ControllerFactoryMock            = _MockRepository.CreateMock <IControllerFactory>();
            _ControllerMock                   = _MockRepository.CreateMock <IController>();
            _ControllerDescriptorProviderMock = _MockRepository.CreateMock <IControllerDescriptorProvider>();
            _ControllerContextFactoryMock     = _MockRepository.CreateMock <IControllerContextFactory>();

            SetupResult.For(_Container.UrlTokenizer).Return(new DefaultUrlTokenizer());
            SetupResult.For(_Container.UrlBuilder).Return(new DefaultUrlBuilder());
            SetupResult.For(_Container.EngineContextFactory).Return(new DefaultEngineContextFactory());
            SetupResult.For(_Container.ControllerFactory).Return(_ControllerFactoryMock);
            SetupResult.For(_Container.ControllerContextFactory).Return(_ControllerContextFactoryMock);
            SetupResult.For(_Container.ControllerDescriptorProvider).Return(_ControllerDescriptorProviderMock);
            SetupResult.For(_Container.StaticResourceRegistry).Return(new DefaultStaticResourceRegistry());

            _HandlerFactory = new MonoRailHttpHandlerFactory(_ServiceProviderLocatorMock);
            _HandlerFactory.ResetState();
            _HandlerFactory.Configuration = new MonoRailConfiguration();
            _HandlerFactory.Container     = _Container;
        }
Example #13
0
 /// <inheritdoc/>
 public void Service(IServiceProvider provider)
 {
     container = provider as IMonoRailContainer;
 }
 /// <summary>
 /// Resolves the request session.
 /// </summary>
 protected virtual IDictionary ResolveRequestSession(IMonoRailContainer container, UrlInfo urlInfo, HttpContext context)
 {
     return(null);
 }
Example #15
0
 public void Initialized(IMonoRailContainer container)
 {
 }
Example #16
0
 public void Created(IMonoRailContainer container)
 {
 }
Example #17
0
 public void Created(IMonoRailContainer container)
 {
 }
Example #18
0
 void IMonoRailContainerEvents.Created(IMonoRailContainer container)
 {
 }
Example #19
0
 ///<summary>
 /// Gives implementors a chance to get MonoRail's services and uses it somewhere else - 
 /// for instance, registering them on an IoC container.
 ///</summary>
 ///<param name="container"></param>
 public void Initialized(IMonoRailContainer container)
 {
     IAjaxProxyGenerator ajaxProxyGenerator = new JQueryAjaxProxyGenerator();
     container.ServiceInitializer.Initialize(ajaxProxyGenerator, container);
     container.AjaxProxyGenerator = ajaxProxyGenerator;
 }
Example #20
0
 void IMonoRailContainerEvents.Created(IMonoRailContainer container)
 {
 }
		private void PerformOneTimeInitializationIfNecessary(HttpContext context)
		{
			locker.AcquireReaderLock(Timeout.Infinite);

			if (mrContainer != null)
			{
				locker.ReleaseReaderLock();
				return;
			}

			locker.UpgradeToWriterLock(Timeout.Infinite);

			if (mrContainer != null) // remember remember the race condition
			{
				locker.ReleaseWriterLock();
				return;
			}

			try
			{
				if (configuration == null)
				{
					configuration = ObtainConfiguration(context.ApplicationInstance);
				}

				var userServiceProvider = serviceProviderLocator.LocateProvider();

				mrContainer = CreateDefaultMonoRailContainer(userServiceProvider, context.ApplicationInstance);
			}
			finally
			{
				locker.ReleaseWriterLock();
			}
		}
		/// <summary>
		/// Resets the state (only used from test cases)
		/// </summary>
		public void ResetState()
		{
			configuration = null;
			mrContainer = null;
			urlTokenizer = null;
			engineContextFactory = null;
			serviceProviderLocator = null;
			controllerFactory = null;
			controllerContextFactory = null;
			staticResourceRegistry = null;
		}
		/// <summary>
		/// Resolves the request session.
		/// </summary>
		protected virtual IDictionary ResolveRequestSession(IMonoRailContainer container, UrlInfo urlInfo, HttpContext context)
		{
			return null;
		}
 public void Initialized(IMonoRailContainer container)
 {
     
 }
Example #25
0
 public void Initialized(IMonoRailContainer container)
 {
     container.UrlBuilder.UseExtensions = false;
 }
Example #26
0
		/// <inheritdoc/>
		public void Service(IServiceProvider provider)
		{
			container = provider as IMonoRailContainer;
		}