diff --git a/.gitignore b/.gitignore
index 4053f67f62..8557e8854a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ scripts/tmp/
.dotnet/
.tools/
src/**/global.json
+launchSettings.json
diff --git a/.gitmodules b/.gitmodules
index 2e4ed7971c..7623451119 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -50,10 +50,6 @@
path = modules/JavaScriptServices
url = https://github.com/aspnet/JavaScriptServices.git
branch = master
-[submodule "modules/KestrelHttpServer"]
- path = modules/KestrelHttpServer
- url = https://github.com/aspnet/KestrelHttpServer.git
- branch = master
[submodule "modules/Localization"]
path = modules/Localization
url = https://github.com/aspnet/Localization.git
diff --git a/Directory.Build.targets b/Directory.Build.targets
index a7ad514960..41ac8e2d2c 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -20,7 +20,7 @@
false
-
+
$(BaselinePackageVersion).0
3.0.0-preview-181109-02
3.0.0-preview-181109-02
@@ -117,7 +119,7 @@
$(KoreBuildVersion)
$(KoreBuildVersion)
- 2.2.1-build-20181114.3
+ 3.0.0-build-20181114.5
diff --git a/build/external-dependencies.props b/build/external-dependencies.props
index bc4408f024..0283778f33 100644
--- a/build/external-dependencies.props
+++ b/build/external-dependencies.props
@@ -81,6 +81,8 @@
+
+
diff --git a/build/repo.props b/build/repo.props
index b3ebfc33d0..a9d3fdec06 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -50,6 +50,11 @@
+
+
+
+
+
-
-
- $(RestoreSources);
- https://dotnetfeed.blob.core.windows.net/orchestrated-release-2-2/20181110-02/final/index.json;
-
-
$(RestoreSources);
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
diff --git a/build/submodules.props b/build/submodules.props
index 45250b9d8c..f10ee25d3c 100644
--- a/build/submodules.props
+++ b/build/submodules.props
@@ -49,7 +49,6 @@
-
diff --git a/docs/build-from-source.md b/docs/BuildFromSource.md
similarity index 86%
rename from docs/build-from-source.md
rename to docs/BuildFromSource.md
index 31977ae751..aee68a11f0 100644
--- a/docs/build-from-source.md
+++ b/docs/BuildFromSource.md
@@ -4,6 +4,14 @@ Build ASP.NET Core from Source
Building ASP.NET Core from source allows you tweak and customize ASP.NET Core, and
to contribute your improvements back to the project.
+## :warning: Temporary instructions
+
+We are currently in the middle of restructing our repositories. While this work is being done, the following instructions will help you be more productive while working on this repo.
+
+1. Before opening a solution, run `build.cmd /p:_ProjectsOnly=true /p:SkipTests=true`. This will only build the projects which have merged into this repo, not the git submodules.
+2. Use (or create) a solution which is scoped to your project file. The build system does not use .sln files. These only exist for developer productivity in Visual Studio, so feel free to adjust the projects in .sln files to match your workload.
+3. Questions? Contact @aspnet for help.
+
## Install pre-requistes
### Windows
diff --git a/docs/daily-builds.md b/docs/DailyBuilds.md
similarity index 100%
rename from docs/daily-builds.md
rename to docs/DailyBuilds.md
diff --git a/eng/Baseline.props b/eng/Baseline.props
index b8d8c3cb60..4cf3227b79 100644
--- a/eng/Baseline.props
+++ b/eng/Baseline.props
@@ -4,6 +4,14 @@
$(MSBuildAllProjects);$(MSBuildThisFileFullPath)
2.2.0
+
+
+ 2.2.0
+
+
+
+
+
2.2.0
@@ -19,21 +27,6 @@
-
-
- 2.2.0
-
-
-
-
-
-
-
-
-
-
-
-
2.2.0
@@ -88,6 +81,21 @@
+
+
+ 2.2.0
+
+
+
+
+
+
+
+
+
+
+
+
2.2.0
@@ -103,6 +111,94 @@
+
+
+ 2.2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.2.0
+
+
+
+
+
+
+
+
+
+
+
+ 2.2.0
+
+
+
+
+
+
+ 2.2.0
+
+
+
+
+
+
+
+
+
+
+ 2.2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.2.0
+
+
+
+
+
+
+
2.2.0
diff --git a/eng/Dependencies.props b/eng/Dependencies.props
index ffa3071b04..f66d3d03e4 100644
--- a/eng/Dependencies.props
+++ b/eng/Dependencies.props
@@ -9,13 +9,16 @@
+
+
+
@@ -32,16 +35,25 @@
+
+
+
+
+
+
+
+
+
@@ -51,6 +63,9 @@
+
+
+
diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 55d8dc6094..7d59a10167 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -13,6 +13,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/eng/dependencies.temp.props b/eng/dependencies.temp.props
index 38aeea4dbe..fb55d51450 100644
--- a/eng/dependencies.temp.props
+++ b/eng/dependencies.temp.props
@@ -4,14 +4,16 @@ This is required to provide dependencies for samples and tests.
-->
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/targets/CSharp.Common.props b/eng/targets/CSharp.Common.props
index b3fc97e2d9..dacb5c2ab5 100644
--- a/eng/targets/CSharp.Common.props
+++ b/eng/targets/CSharp.Common.props
@@ -1,7 +1,7 @@
- 7.2
+ 7.3
SHA256
diff --git a/eng/tools/BaselineGenerator/baseline.xml b/eng/tools/BaselineGenerator/baseline.xml
index f6ec31acb2..e5b96b4371 100644
--- a/eng/tools/BaselineGenerator/baseline.xml
+++ b/eng/tools/BaselineGenerator/baseline.xml
@@ -3,9 +3,9 @@
+
-
@@ -13,7 +13,14 @@
+
+
+
+
+
+
+
diff --git a/modules/KestrelHttpServer b/modules/KestrelHttpServer
deleted file mode 160000
index 5d80016b4f..0000000000
--- a/modules/KestrelHttpServer
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5d80016b4fb991acf6f639549b784ed5882d8de0
diff --git a/src/Installers/Archive/Archive.Internal.zipproj b/src/Installers/Archive/Archive.Internal.zipproj
index 68ea9cd4fc..ba67cae60b 100644
--- a/src/Installers/Archive/Archive.Internal.zipproj
+++ b/src/Installers/Archive/Archive.Internal.zipproj
@@ -46,4 +46,6 @@
SourceDirectory="$(IntermediateOutputPath)"
Overwrite="true" />
+
+
diff --git a/src/Installers/Archive/Archive.Redist.zipproj b/src/Installers/Archive/Archive.Redist.zipproj
index b667e2634c..342f43ca22 100644
--- a/src/Installers/Archive/Archive.Redist.zipproj
+++ b/src/Installers/Archive/Archive.Redist.zipproj
@@ -65,4 +65,6 @@
SourceDirectory="$(IntermediateOutputPath)"
Overwrite="true" />
+
+
diff --git a/src/Servers/Connections.Abstractions/src/ConnectionBuilder.cs b/src/Servers/Connections.Abstractions/src/ConnectionBuilder.cs
new file mode 100644
index 0000000000..9000d99a73
--- /dev/null
+++ b/src/Servers/Connections.Abstractions/src/ConnectionBuilder.cs
@@ -0,0 +1,43 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace Microsoft.AspNetCore.Connections
+{
+ public class ConnectionBuilder : IConnectionBuilder
+ {
+ private readonly IList> _components = new List>();
+
+ public IServiceProvider ApplicationServices { get; }
+
+ public ConnectionBuilder(IServiceProvider applicationServices)
+ {
+ ApplicationServices = applicationServices;
+ }
+
+ public IConnectionBuilder Use(Func middleware)
+ {
+ _components.Add(middleware);
+ return this;
+ }
+
+ public ConnectionDelegate Build()
+ {
+ ConnectionDelegate app = features =>
+ {
+ return Task.CompletedTask;
+ };
+
+ foreach (var component in _components.Reverse())
+ {
+ app = component(app);
+ }
+
+ return app;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Servers/Connections.Abstractions/src/ConnectionBuilderExtensions.cs b/src/Servers/Connections.Abstractions/src/ConnectionBuilderExtensions.cs
new file mode 100644
index 0000000000..100917b009
--- /dev/null
+++ b/src/Servers/Connections.Abstractions/src/ConnectionBuilderExtensions.cs
@@ -0,0 +1,43 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Threading.Tasks;
+using Microsoft.Extensions.Internal;
+
+namespace Microsoft.AspNetCore.Connections
+{
+ public static class ConnectionBuilderExtensions
+ {
+ public static IConnectionBuilder UseConnectionHandler(this IConnectionBuilder connectionBuilder) where TConnectionHandler : ConnectionHandler
+ {
+ var handler = ActivatorUtilities.GetServiceOrCreateInstance(connectionBuilder.ApplicationServices);
+
+ // This is a terminal middleware, so there's no need to use the 'next' parameter
+ return connectionBuilder.Run(connection => handler.OnConnectedAsync(connection));
+ }
+
+ public static IConnectionBuilder Use(this IConnectionBuilder connectionBuilder, Func, Task> middleware)
+ {
+ return connectionBuilder.Use(next =>
+ {
+ return context =>
+ {
+ Func simpleNext = () => next(context);
+ return middleware(context, simpleNext);
+ };
+ });
+ }
+
+ public static IConnectionBuilder Run(this IConnectionBuilder connectionBuilder, Func middleware)
+ {
+ return connectionBuilder.Use(next =>
+ {
+ return context =>
+ {
+ return middleware(context);
+ };
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Servers/Connections.Abstractions/src/ConnectionContext.cs b/src/Servers/Connections.Abstractions/src/ConnectionContext.cs
new file mode 100644
index 0000000000..680762d680
--- /dev/null
+++ b/src/Servers/Connections.Abstractions/src/ConnectionContext.cs
@@ -0,0 +1,31 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Collections.Generic;
+using System.IO.Pipelines;
+using Microsoft.AspNetCore.Connections.Features;
+using Microsoft.AspNetCore.Http.Features;
+
+namespace Microsoft.AspNetCore.Connections
+{
+ public abstract class ConnectionContext
+ {
+ public abstract string ConnectionId { get; set; }
+
+ public abstract IFeatureCollection Features { get; }
+
+ public abstract IDictionary