private KestrelEngine(IApplicationShutdown appShutdownService)
 {
     AppShutdown = appShutdownService;
     Threads = new List<KestrelThread>();
     Listeners = new List<Listener>();
     Memory = new MemoryPool();
 }
示例#2
0
        public void Configure(IBuilder app, ILibraryManager libManager, IApplicationShutdown shutdown)
        {
            var web = libManager.GetLibraryInformation("Runt.Web");

            Console.WriteLine("Path: " + web.Path);
            Console.WriteLine("Name: " + web.Name);
            var fileSystem = new PhysicalFileSystem(Path.GetDirectoryName(web.Path));

            app.UseServices(services =>
            {
                services.AddSignalR();
                services.AddSingleton<IEditor, Editor>();
            });

            app.UseSignalR("/io", typeof(RuntConnection), new ConnectionConfiguration
            {
                EnableJSONP = false
            });
            app.UseDefaultFiles(new DefaultFilesOptions
            {
                FileSystem = fileSystem
            });
            app.UseStaticFiles(new StaticFileOptions
            {
                FileSystem = fileSystem,
                ContentTypeProvider = contentTypeProvider,
                ServeUnknownFileTypes = true
            });
            app.UseDirectoryBrowser(new DirectoryBrowserOptions
            {
                FileSystem = fileSystem
            });
        }
示例#3
0
        public void Configure(IBuilder app, ILibraryManager libManager, IApplicationShutdown shutdown)
        {
            var web = libManager.GetLibraryInformation("Runt.Web");

            Console.WriteLine("Path: " + web.Path);
            Console.WriteLine("Name: " + web.Name);
            var fileSystem = new PhysicalFileSystem(Path.GetDirectoryName(web.Path));

            app.UseServices(services =>
            {
                services.AddSignalR();
                services.AddSingleton <IEditor, Editor>();
            });

            app.UseSignalR("/io", typeof(RuntConnection), new ConnectionConfiguration
            {
                EnableJSONP = false
            });
            app.UseDefaultFiles(new DefaultFilesOptions
            {
                FileSystem = fileSystem
            });
            app.UseStaticFiles(new StaticFileOptions
            {
                FileSystem            = fileSystem,
                ContentTypeProvider   = contentTypeProvider,
                ServeUnknownFileTypes = true
            });
            app.UseDirectoryBrowser(new DirectoryBrowserOptions
            {
                FileSystem = fileSystem
            });
        }
示例#4
0
        public DesignTimeHostCompiler(ApplicationShutdown shutdown, IFileWatcher watcher, Stream stream)
        {
            _shutdown = shutdown;
            _queue    = new ProcessingQueue(stream);
            _queue.ProjectCompiled     += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged      += _ => shutdown.RequestShutdownWaitForDebugger();
            _queue.ProjectSources      += files =>
            {
                foreach (var file in files)
                {
                    watcher.WatchFile(file);
                }
            };
            _queue.Error += OnError;

            _queue.Closed += OnClosed;
            _queue.Start();

            var obj = new JObject();

            obj["Version"] = 1;

            _queue.Send(new DesignTimeMessage
            {
                HostId      = "Application",
                MessageType = "EnumerateProjectContexts",
                Payload     = obj
            });
        }
示例#5
0
        public DesignTimeHostCompiler(ApplicationShutdown shutdown, IFileWatcher watcher, Stream stream)
        {
            _shutdown = shutdown;
            _queue = new ProcessingQueue(stream);
            _queue.ProjectCompiled += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged += _ => shutdown.RequestShutdownWaitForDebugger();
            _queue.ProjectSources += files =>
            {
                foreach (var file in files)
                {
                    watcher.WatchFile(file);
                }
            };
            _queue.Error += OnError;

            _queue.Closed += OnClosed;
            _queue.Start();

            var obj = new JObject();
            obj["Version"] = 1;

            _queue.Send(new DesignTimeMessage
            {
                HostId = "Application",
                MessageType = "EnumerateProjectContexts",
                Payload = obj
            });
        }
示例#6
0
 public Program(IApplicationEnvironment appEnv, IServiceProvider services, ILibraryManager libraryManager, IApplicationShutdown shutdown)
 {
     this.appEnv         = appEnv;
     this.services       = services;
     this.libraryManager = libraryManager;
     this.shutdown       = shutdown;
 }
示例#7
0
 public Program(IAssemblyLoaderContainer container,
                IAssemblyLoadContextAccessor accessor,
                IApplicationShutdown shutdown)
 {
     _loaderContainer = container;
     _loadContextAccessor = accessor;
     _shutdown = shutdown;
 }
示例#8
0
        public Program(IApplicationShutdown shutdown, IServiceProvider serviceProvider)
        {
            if (shutdown == null) throw new ArgumentNullException(nameof(shutdown));
            if (serviceProvider == null) throw new ArgumentNullException(nameof(serviceProvider));

            this.shutdown = shutdown;
            this.serviceProvider = serviceProvider;
        }
示例#9
0
 public Guest(string channel, IApplicationShutdown shutdown, IServiceProvider serviceProvider)
 {
     this.channel = channel;
     this.shutdown = shutdown;
     this.serviceProvider = serviceProvider;
     this.guestBuffer = new CircularBuffer(channel);
     this.hostBuffer = new CircularBuffer(channel + "*");
 }
示例#10
0
        public Program(IServiceProvider services)
        {
            Guard.ArgumentNotNull(nameof(services), services);

            this.services  = services;
            appEnv         = PlatformServices.Default.Application;
            libraryManager = PlatformServices.Default.LibraryManager;
            shutdown       = (IApplicationShutdown)services.GetService(typeof(IApplicationShutdown));
        }
 public KestrelThread(KestrelEngine engine)
 {
     _engine          = engine;
     _appShutdown     = engine.AppShutdown;
     _log             = engine.Log;
     _loop            = new UvLoopHandle(_log);
     _post            = new UvAsyncHandle(_log);
     _thread          = new Thread(ThreadStart);
     QueueCloseHandle = PostCloseHandle;
 }
        public DesignTimeHostProjectCompiler(IApplicationShutdown shutdown, IFileWatcher watcher, IRuntimeOptions runtimeOptions)
        {
            // Using this ctor because it works on mono, this is hard coded to ipv4
            // right now. Mono will eventually have the dualmode overload
            var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Connect(new IPEndPoint(IPAddress.Loopback, runtimeOptions.CompilationServerPort.Value));

            var networkStream = new NetworkStream(socket);

            _compiler = new DesignTimeHostCompiler(shutdown, watcher, networkStream);
        }
示例#13
0
 public Program(
     IApplicationEnvironment env,
     IServiceProvider sp,
     ILibraryManager libraryManager,
     IApplicationShutdown shutown)
 {
     this.env        = env;
     this.sp         = sp;
     _libraryManager = libraryManager;
     _shutdown       = shutown;
 }
示例#14
0
 public Program(
     IApplicationEnvironment env,
     IServiceProvider sp,
     ILibraryManager libraryManager,
     IApplicationShutdown shutown)
 {
     this.env = env;
     this.sp = sp;
     _libraryManager = libraryManager;
     _shutdown = shutown;
 }
        public DesignTimeHostProjectCompiler(IApplicationShutdown shutdown, IFileWatcher watcher, IRuntimeOptions runtimeOptions)
        {
            // Using this ctor because it works on mono, this is hard coded to ipv4
            // right now. Mono will eventually have the dualmode overload
            var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            socket.Connect(new IPEndPoint(IPAddress.Loopback, runtimeOptions.CompilationServerPort.Value));

            var networkStream = new NetworkStream(socket);

            _compiler = new DesignTimeHostCompiler(shutdown, watcher, networkStream);
        }
示例#16
0
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, Stream stream)
        {
            _shutdown = shutdown;
            _queue    = new ProcessingQueue(stream);
            _queue.ProjectCompiled     += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged      += _ => { };
            _queue.ProjectSources      += _ => { };
            _queue.Error += OnError;

            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new EnumerateProjectContextsMessage());
        }
示例#17
0
 public Host(IApplicationShutdown shutdown, IServiceProvider serviceProvider)
 {
     this.shutdown = shutdown;
     this.serviceProvider = serviceProvider;
     this.guestBuffer = new CircularBuffer(channel, 100, Marshal.SizeOf(typeof(Message)));
     this.hostBuffer = new CircularBuffer(channel + "*", 100, Marshal.SizeOf(typeof(Message)));
     this.processStart = new ProcessStartInfo
     {
         FileName = args[0],
         Arguments = $"{ string.Join(" ", args.Skip(1)) } --channel { channel }",
         UseShellExecute = false,
         RedirectStandardError = true,
         WorkingDirectory = Environment.CurrentDirectory,
     };
 }
示例#18
0
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, Stream stream)
        {
            _shutdown = shutdown;
            _queue = new ProcessingQueue(stream);
            _queue.ProjectCompiled += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged += _ => { };
            _queue.ProjectSources += _ => { };
            _queue.Error += OnError;

            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new EnumerateProjectContextsMessage());
        }
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, Stream stream)
        {
            _queue = new ProcessingQueue(stream);
            _queue.ProjectCompiled     += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged      += _ => shutdown.RequestShutdown();
            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new DesignTimeMessage
            {
                HostId      = "Application",
                MessageType = "EnumerateProjectContexts"
            });
        }
        public AspNet5Initializer(OmnisharpWorkspace workspace,
                                  IOmnisharpEnvironment env,
                                  IOptions <OmniSharpOptions> optionsAccessor,
                                  ILoggerFactory loggerFactory,
                                  IMetadataFileReferenceCache metadataFileReferenceCache,
                                  IApplicationShutdown shutdown)
        {
            _workspace = workspace;
            _env       = env;
            _options   = optionsAccessor.Options;
            _logger    = loggerFactory.Create <AspNet5Initializer>();
            _metadataFileReferenceCache = metadataFileReferenceCache;
            _designTimeHostManager      = new DesignTimeHostManager(loggerFactory);

            shutdown.ShutdownRequested.Register(OnShutdown);
        }
示例#21
0
        public KestrelEngine(ILibraryManager libraryManager, IApplicationShutdown appShutdownService)
        {
            AppShutdown = appShutdownService;
            Threads = new List<KestrelThread>();
            Listeners = new List<Listener>();
            Memory = new MemoryPool();
            Libuv = new Libuv();

            var libraryPath = default(string);

            if (libraryManager != null)
            {
                var library = libraryManager.GetLibraryInformation("Microsoft.AspNet.Server.Kestrel");
                libraryPath = library.Path;
                if (library.Type == "Project")
                {
                    libraryPath = Path.GetDirectoryName(libraryPath);
                }
                if (Libuv.IsWindows)
                {
                    var architecture = IntPtr.Size == 4
                        ? "x86"
                        : "amd64";

                    libraryPath = Path.Combine(
                        libraryPath,
                        "native",
                        "windows",
                        architecture,
                        "libuv.dll");
                }
                else if (Libuv.IsDarwin)
                {
                    libraryPath = Path.Combine(
                        libraryPath,
                        "native",
                        "darwin",
                        "universal",
                        "libuv.dylib");
                }
                else
                {
                    libraryPath = "libuv.so.1";
                }
            }
            Libuv.Load(libraryPath);
        }
        public KestrelEngine(ILibraryManager libraryManager, IApplicationShutdown appShutdownService)
        {
            AppShutdown = appShutdownService;
            Threads     = new List <KestrelThread>();
            Listeners   = new List <Listener>();
            Memory      = new MemoryPool();
            Libuv       = new Libuv();

            var libraryPath = default(string);

            if (libraryManager != null)
            {
                var library = libraryManager.GetLibraryInformation("Microsoft.AspNet.Server.Kestrel");
                libraryPath = library.Path;
                if (library.Type == "Project")
                {
                    libraryPath = Path.GetDirectoryName(libraryPath);
                }
                if (Libuv.IsWindows)
                {
                    var architecture = IntPtr.Size == 4
                        ? "x86"
                        : "amd64";

                    libraryPath = Path.Combine(
                        libraryPath,
                        "native",
                        "windows",
                        architecture,
                        "libuv.dll");
                }
                else if (Libuv.IsDarwin)
                {
                    libraryPath = Path.Combine(
                        libraryPath,
                        "native",
                        "darwin",
                        "universal",
                        "libuv.dylib");
                }
                else
                {
                    libraryPath = "libuv.so.1";
                }
            }
            Libuv.Load(libraryPath);
        }
示例#23
0
        public Program([NotNull] IServiceProvider dnxServices)
        {
            Check.NotNull(dnxServices, nameof(dnxServices));

            var appEnv     = dnxServices.GetRequiredService <IApplicationEnvironment>();
            var runtimeEnv = dnxServices.GetRequiredService <IRuntimeEnvironment>();

            _applicationShutdown = dnxServices.GetRequiredService <IApplicationShutdown>();
            _useConsoleColors    = runtimeEnv.OperatingSystem == "Windows";

            var loggerProvider = new LoggerProvider(name => new ConsoleCommandLogger(name, verbose: true));

            _logger = new LazyRef <ILogger>(() => loggerProvider.CreateCommandsLogger());

            var targetName        = appEnv.ApplicationName;
            var startupTargetName = appEnv.ApplicationName;
            var projectDir        = appEnv.ApplicationBasePath;
            var rootNamespace     = appEnv.ApplicationName;

            _contextOperations = new LazyRef <DbContextOperations>(
                () => new DbContextOperations(
                    loggerProvider,
                    targetName,
                    startupTargetName,
                    dnxServices));
            _databaseOperations = new LazyRef <DatabaseOperations>(
                () => new DatabaseOperations(
                    loggerProvider,
                    targetName,
                    startupTargetName,
                    projectDir,
                    rootNamespace,
                    dnxServices));
            _migrationsOperations = new LazyRef <MigrationsOperations>(
                () => new MigrationsOperations(
                    loggerProvider,
                    targetName,
                    startupTargetName,
                    projectDir,
                    rootNamespace,
                    dnxServices));
        }
示例#24
0
        public AspNet5ProjectSystem(OmnisharpWorkspace workspace,
                                    IOmnisharpEnvironment env,
                                    IOptions <OmniSharpOptions> optionsAccessor,
                                    ILoggerFactory loggerFactory,
                                    IMetadataFileReferenceCache metadataFileReferenceCache,
                                    IApplicationShutdown shutdown,
                                    IFileSystemWatcher watcher,
                                    AspNet5Context context)
        {
            _workspace = workspace;
            _env       = env;
            _options   = optionsAccessor.Options;
            _logger    = loggerFactory.Create <AspNet5ProjectSystem>();
            _metadataFileReferenceCache = metadataFileReferenceCache;
            _designTimeHostManager      = new DesignTimeHostManager(loggerFactory);
            _context = context;
            _watcher = watcher;

            shutdown.ShutdownRequested.Register(OnShutdown);
        }
示例#25
0
        public Program([NotNull] IServiceProvider dnxServices)
        {
            Check.NotNull(dnxServices, nameof(dnxServices));

            var appEnv = dnxServices.GetRequiredService<IApplicationEnvironment>();
            var runtimeEnv = dnxServices.GetRequiredService<IRuntimeEnvironment>();
            _applicationShutdown = dnxServices.GetRequiredService<IApplicationShutdown>();
            _useConsoleColors = runtimeEnv.OperatingSystem == "Windows";

            var loggerProvider = new LoggerProvider(name => new ConsoleCommandLogger(name, verbose: true));
            _logger = new LazyRef<ILogger>(() => loggerProvider.CreateCommandsLogger());

            var targetName = appEnv.ApplicationName;
            var startupTargetName = appEnv.ApplicationName;
            var projectDir = appEnv.ApplicationBasePath;
            var rootNamespace = appEnv.ApplicationName;

            _contextOperations = new LazyRef<DbContextOperations>(
                () => new DbContextOperations(
                    loggerProvider,
                    targetName,
                    startupTargetName,
                    dnxServices));
            _databaseOperations = new LazyRef<DatabaseOperations>(
                () => new DatabaseOperations(
                    loggerProvider,
                    targetName,
                    startupTargetName,
                    projectDir,
                    rootNamespace,
                    dnxServices));
            _migrationsOperations = new LazyRef<MigrationsOperations>(
                () => new MigrationsOperations(
                    loggerProvider,
                    targetName,
                    startupTargetName,
                    projectDir,
                    rootNamespace,
                    dnxServices));
        }
示例#26
0
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, IFileWatcher watcher, Stream stream)
        {
            _shutdown = shutdown;
            _watcher  = watcher;
            _queue    = new ProcessingQueue(stream);
            _queue.ProjectCompiled     += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged      += _ => { };
            _queue.ProjectSources      += files =>
            {
                foreach (var file in files)
                {
                    watcher.WatchFile(file);
                }
            };
            _queue.Error += OnError;

            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new EnumerateProjectContextsMessage());
        }
示例#27
0
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, IFileWatcher watcher, Stream stream)
        {
            _shutdown = shutdown;
            _watcher = watcher;
            _queue = new ProcessingQueue(stream);
            _queue.ProjectCompiled += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged += _ => { };
            _queue.ProjectSources += files =>
            {
                foreach (var file in files)
                {
                    watcher.WatchFile(file);
                }
            };
            _queue.Error += OnError;

            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new EnumerateProjectContextsMessage());
        }
示例#28
0
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, IFileWatcher watcher, Stream stream)
        {
            _queue = new ProcessingQueue(stream);
            _queue.ProjectCompiled += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged += _ => shutdown.RequestShutdown();
            _queue.ProjectSources += files =>
            {
                foreach (var file in files)
                {
                    watcher.WatchFile(file);
                }
            };

            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new DesignTimeMessage
            {
                HostId = "Application",
                MessageType = "EnumerateProjectContexts"
            });
        }
示例#29
0
        public Program([NotNull] IServiceProvider serviceProvider,
            [NotNull] IApplicationEnvironment appEnv, [NotNull] ILibraryManager libraryManager,
            [NotNull] IRuntimeEnvironment runtimeEnv, [NotNull] IApplicationShutdown applicationShutdown)
        {
            Check.NotNull(serviceProvider, nameof(serviceProvider));
            Check.NotNull(appEnv, nameof(appEnv));
            Check.NotNull(libraryManager, nameof(libraryManager));
            Check.NotNull(runtimeEnv, nameof(runtimeEnv));
            Check.NotNull(applicationShutdown, nameof(applicationShutdown));

            _runtimeEnv = runtimeEnv;
            _projectDir = appEnv.ApplicationBasePath;
            _rootNamespace = appEnv.ApplicationName;
            _applicationShutdown = applicationShutdown;

            var loggerProvider = new LoggerProvider(name => new ConsoleCommandLogger(name, verbose: true));
            var assemblyName = new AssemblyName(appEnv.ApplicationName);
            var assembly = Assembly.Load(assemblyName);
            _migrationTool = new MigrationTool(loggerProvider, assembly, serviceProvider);
            _databaseTool = new DatabaseTool(serviceProvider, loggerProvider);
            _libraryManager = libraryManager;
            _logger = loggerProvider.CreateLogger(typeof(Program).FullName);
        }
示例#30
0
        public DesignTimeHostCompiler(IApplicationShutdown shutdown, IFileWatcher watcher, Stream stream)
        {
            _queue = new ProcessingQueue(stream);
            _queue.ProjectCompiled     += OnProjectCompiled;
            _queue.ProjectsInitialized += ProjectContextsInitialized;
            _queue.ProjectChanged      += _ => shutdown.RequestShutdown();
            _queue.ProjectSources      += files =>
            {
                foreach (var file in files)
                {
                    watcher.WatchFile(file);
                }
            };

            _queue.Closed += OnClosed;
            _queue.Start();

            _queue.Send(new DesignTimeMessage
            {
                HostId      = "Application",
                MessageType = "EnumerateProjectContexts"
            });
        }
示例#31
0
        public Program([NotNull] IServiceProvider serviceProvider,
                       [NotNull] IApplicationEnvironment appEnv, [NotNull] ILibraryManager libraryManager,
                       [NotNull] IRuntimeEnvironment runtimeEnv, [NotNull] IApplicationShutdown applicationShutdown)
        {
            Check.NotNull(serviceProvider, nameof(serviceProvider));
            Check.NotNull(appEnv, nameof(appEnv));
            Check.NotNull(libraryManager, nameof(libraryManager));
            Check.NotNull(runtimeEnv, nameof(runtimeEnv));
            Check.NotNull(applicationShutdown, nameof(applicationShutdown));

            _runtimeEnv          = runtimeEnv;
            _projectDir          = appEnv.ApplicationBasePath;
            _rootNamespace       = appEnv.ApplicationName;
            _applicationShutdown = applicationShutdown;

            var loggerProvider = new LoggerProvider(name => new ConsoleCommandLogger(name, verbose: true));
            var assemblyName   = new AssemblyName(appEnv.ApplicationName);
            var assembly       = Assembly.Load(assemblyName);

            _migrationTool  = new MigrationTool(loggerProvider, assembly, serviceProvider);
            _databaseTool   = new DatabaseTool(serviceProvider, loggerProvider);
            _libraryManager = libraryManager;
            _logger         = loggerProvider.CreateLogger(typeof(Program).FullName);
        }
示例#32
0
 public ServerFactory(ILibraryManager libraryManager, IApplicationShutdown appShutdownService)
 {
     _libraryManager     = libraryManager;
     _appShutdownService = appShutdownService;
 }
 public StatusController(IApplicationShutdown applicationShutdown)
 {
     _applicationShutdown = applicationShutdown;
 }
 public ServerFactory(ILibraryManager libraryManager, IApplicationShutdown appShutdownService, ILoggerFactory loggerFactory)
 {
     _libraryManager = libraryManager;
     _appShutdownService = appShutdownService;
     _logger = loggerFactory.CreateLogger("Microsoft.AspNet.Server.Kestrel");
 }
示例#35
0
 // For testing
 internal KestrelEngine(Libuv uv, IApplicationShutdown appShutdownService)
     : this(appShutdownService)
 {
     Libuv = uv;
 }
 public ServerFactory(ILibraryManager libraryManager, IApplicationShutdown appShutdownService, ILoggerFactory loggerFactory)
 {
     _libraryManager     = libraryManager;
     _appShutdownService = appShutdownService;
     _logger             = loggerFactory.CreateLogger("Microsoft.AspNet.Server.Kestrel");
 }
示例#37
0
 public ServerFactory(ILibraryManager libraryManager, IApplicationShutdown appShutdownService)
 {
     _libraryManager = libraryManager;
     _appShutdownService = appShutdownService;
 }
 public StopServerMiddleware(RequestDelegate next, IApplicationShutdown applicationShutdown)
 {
     _applicationShutdown = applicationShutdown;
 }
 public StatusController(IApplicationShutdown applicationShutdown)
 {
     _applicationShutdown = applicationShutdown;
 }