summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2021-12-04 22:48:37 +0100
committerJens Geyer <Jens-G@users.noreply.github.com>2021-12-05 13:05:58 +0100
commit4c7b9fd38ad614dbf37c37e45569790b44868458 (patch)
tree6344c046f268684fbb5293c76581e0bc8b87df5b
parent4637f6d5f8df752291f5e3c8923824e819a2b60f (diff)
downloadthrift-4c7b9fd38ad614dbf37c37e45569790b44868458.tar.gz
THRIFT-5479 Add net 6 support
Client: netstd Patch: Jens Geyer
-rw-r--r--build/docker/README.md2
-rw-r--r--build/docker/old/debian-stretch/Dockerfile8
-rw-r--r--build/docker/old/ubuntu-artful/Dockerfile8
-rw-r--r--build/docker/ubuntu-bionic/Dockerfile8
-rw-r--r--build/docker/ubuntu-disco/Dockerfile8
-rw-r--r--build/docker/ubuntu-xenial/Dockerfile8
-rw-r--r--debian/control4
-rw-r--r--doc/install/debian.md2
-rw-r--r--lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj8
-rw-r--r--lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj15
-rw-r--r--lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj23
-rw-r--r--lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj14
-rw-r--r--lib/netstd/Thrift/Collections/THashSet.cs2
-rw-r--r--lib/netstd/Thrift/Thrift.csproj14
-rw-r--r--lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs2
-rw-r--r--test/netstd/Client/Client.csproj6
-rw-r--r--test/netstd/Server/Server.csproj6
-rw-r--r--tutorial/netstd/Client/Client.csproj4
-rw-r--r--tutorial/netstd/Client/Program.cs87
-rw-r--r--tutorial/netstd/Interfaces/Interfaces.csproj4
-rw-r--r--tutorial/netstd/Server/Program.cs85
-rw-r--r--tutorial/netstd/Server/Server.csproj4
22 files changed, 167 insertions, 155 deletions
diff --git a/build/docker/README.md b/build/docker/README.md
index 127de8e1e..87d58bc27 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -183,7 +183,7 @@ Last updated: October 1, 2017
| java | 1.8.0_191 | 11.0.3 | |
| js | Node.js 6.17.1, V8 5.1.281.111, npm 3.10.10 | Node.js 10.18.0, V8 6.8.275.32, npm 6.13.4 | |
| lua | | 5.2.4 | Lua 5.3: see THRIFT-4386 |
-| netstd | 5.0 | 5.0 | |
+| netstd | 6.0 | 6.0 | |
| nodejs | 6.16.0 | 10.16.0 | |
| ocaml | | 4.05.0 | THRIFT-4517: ocaml 4.02.3 on xenial appears broken |
| perl | 5.22.1 | 5.26.1 | |
diff --git a/build/docker/old/debian-stretch/Dockerfile b/build/docker/old/debian-stretch/Dockerfile
index 541223ca4..628b6268e 100644
--- a/build/docker/old/debian-stretch/Dockerfile
+++ b/build/docker/old/debian-stretch/Dockerfile
@@ -102,10 +102,10 @@ ENV PATH /usr/lib/dart/bin:$PATH
# project isn't ready for this quite yet:
# RUN apt-get install -y --no-install-recommends \
# `# dotnet core dependencies` \
-# dotnet-sdk-5.0 \
-# dotnet-runtime-5.0 \
-# aspnetcore-runtime-5.0 \
-# dotnet-apphost-pack-5.0
+# dotnet-sdk-6.0 \
+# dotnet-runtime-6.0 \
+# aspnetcore-runtime-6.0 \
+# dotnet-apphost-pack-6.0
RUN apt-get install -y --no-install-recommends \
`# Erlang dependencies` \
diff --git a/build/docker/old/ubuntu-artful/Dockerfile b/build/docker/old/ubuntu-artful/Dockerfile
index 282429ad7..80682657b 100644
--- a/build/docker/old/ubuntu-artful/Dockerfile
+++ b/build/docker/old/ubuntu-artful/Dockerfile
@@ -120,10 +120,10 @@ ENV PATH /usr/lib/dart/bin:$PATH
RUN apt-get install -y --no-install-recommends \
`# dotnet core dependencies` \
- dotnet-sdk-5.0 \
- dotnet-runtime-5.0 \
- aspnetcore-runtime-5.0 \
- dotnet-apphost-pack-5.0
+ dotnet-sdk-6.0 \
+ dotnet-runtime-6.0 \
+ aspnetcore-runtime-6.0 \
+ dotnet-apphost-pack-6.0
RUN apt-get install -y --no-install-recommends \
`# Erlang dependencies` \
diff --git a/build/docker/ubuntu-bionic/Dockerfile b/build/docker/ubuntu-bionic/Dockerfile
index bd82225ea..ac51207ed 100644
--- a/build/docker/ubuntu-bionic/Dockerfile
+++ b/build/docker/ubuntu-bionic/Dockerfile
@@ -126,10 +126,10 @@ ENV PATH /usr/lib/dart/bin:$PATH
RUN apt-get install -y --no-install-recommends \
`# dotnet core dependencies` \
- dotnet-sdk-5.0 \
- dotnet-runtime-5.0 \
- aspnetcore-runtime-5.0 \
- dotnet-apphost-pack-5.0
+ dotnet-sdk-6.0 \
+ dotnet-runtime-6.0 \
+ aspnetcore-runtime-6.0 \
+ dotnet-apphost-pack-6.0
RUN apt-get install -y --no-install-recommends \
`# Erlang dependencies` \
diff --git a/build/docker/ubuntu-disco/Dockerfile b/build/docker/ubuntu-disco/Dockerfile
index 6b35915f2..9d6996d3f 100644
--- a/build/docker/ubuntu-disco/Dockerfile
+++ b/build/docker/ubuntu-disco/Dockerfile
@@ -126,10 +126,10 @@ ENV PATH /usr/lib/dart/bin:$PATH
RUN apt-get install -y --no-install-recommends \
`# dotnet core dependencies` \
- dotnet-sdk-5.0 \
- dotnet-runtime-5.0 \
- aspnetcore-runtime-5.0 \
- dotnet-apphost-pack-5.0
+ dotnet-sdk-6.0 \
+ dotnet-runtime-6.0 \
+ aspnetcore-runtime-6.0 \
+ dotnet-apphost-pack-6.0
RUN apt-get install -y --no-install-recommends \
`# Erlang dependencies` \
diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile
index 1d78a28b2..9a89b7007 100644
--- a/build/docker/ubuntu-xenial/Dockerfile
+++ b/build/docker/ubuntu-xenial/Dockerfile
@@ -113,10 +113,10 @@ ENV PATH /usr/lib/dart/bin:$PATH
RUN apt-get install -y --no-install-recommends \
`# dotnet core dependencies` \
- dotnet-sdk-5.0 \
- dotnet-runtime-5.0 \
- aspnetcore-runtime-5.0 \
- dotnet-apphost-pack-5.0
+ dotnet-sdk-6.0 \
+ dotnet-runtime-6.0 \
+ aspnetcore-runtime-6.0 \
+ dotnet-apphost-pack-6.0
RUN apt-get install -y --no-install-recommends \
`# Erlang dependencies` \
diff --git a/debian/control b/debian/control
index f69f73b34..0910a94a7 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,7 @@
Source: thrift
Section: devel
Priority: extra
-Build-Depends: dotnet-runtime-5.0, dotnet-sdk-5.0, debhelper (>= 9), build-essential, python-dev, ant,
+Build-Depends: dotnet-runtime-6.0, dotnet-sdk-6.0, debhelper (>= 9), build-essential, python-dev, ant,
erlang-base, ruby-dev | ruby1.9.1-dev, ruby-bundler ,autoconf, automake,
pkg-config, libtool, bison, flex, libboost-dev | libboost1.56-dev | libboost1.63-all-dev,
python-all, python-setuptools, python-all-dev, python-all-dbg,
@@ -129,7 +129,7 @@ Description: Java bindings for Thrift
Package: libthrift-netstd
Architecture: all
Section: netstd
-Depends: dotnet-runtime-5.0, ${misc:Depends}
+Depends: dotnet-runtime-6.0, ${misc:Depends}
Description: NET Standard bindings for Thrift
Thrift is a software framework for scalable cross-language services
development. It combines a software stack with a code generation engine to
diff --git a/doc/install/debian.md b/doc/install/debian.md
index 92d68e9ce..f1edce5c8 100644
--- a/doc/install/debian.md
+++ b/doc/install/debian.md
@@ -33,7 +33,7 @@ If you would like to build Apache Thrift libraries for other programming languag
* Erlang
* erlang-base erlang-eunit erlang-dev rebar
* NetStd
- * apt-transport-https dotnet-sdk-5.0 aspnetcore-runtime-5.0
+ * apt-transport-https dotnet-sdk-6.0 aspnetcore-runtime-6.0
* Thrift Compiler for Windows
* mingw-w64 mingw-w64-x86-64-dev nsis
* Rust
diff --git a/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj b/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
index d55074f39..633850e0a 100644
--- a/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
+++ b/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
@@ -20,17 +20,21 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<TieredCompilation>false</TieredCompilation>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
+ <PackageReference Include="BenchmarkDotNet" Version="0.13.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Thrift\Thrift.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <PackageReference Update="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2" />
+ </ItemGroup>
+
</Project>
diff --git a/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj b/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
index b47017e96..6d473e44f 100644
--- a/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
+++ b/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<AssemblyName>Thrift.IntegrationTests</AssemblyName>
<PackageId>Thrift.IntegrationTests</PackageId>
<Version>0.16.0.0</Version>
@@ -33,11 +33,11 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="CompareNETObjects" Version="4.72.0" />
- <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
- <PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
- <PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
- <PackageReference Include="System.ServiceModel.Primitives" Version="4.8.1" />
+ <PackageReference Include="CompareNETObjects" Version="4.74.0" />
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
+ <PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
+ <PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
+ <PackageReference Include="System.ServiceModel.Primitives" Version="4.9.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Thrift\Thrift.csproj" />
@@ -45,5 +45,8 @@
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
+ <ItemGroup>
+ <PackageReference Update="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2" />
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj b/lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
index 126635d41..15112747f 100644
--- a/lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
+++ b/lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
@@ -21,7 +21,7 @@
<PropertyGroup>
<ThriftVersion>0.16.0</ThriftVersion>
<ThriftVersionOutput>Thrift version $(ThriftVersion)</ThriftVersionOutput>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<Version>$(ThriftVersion).0</Version>
<AssemblyName>Thrift.PublicInterfaces.Compile.Tests</AssemblyName>
<PackageId>Thrift.PublicInterfaces.Compile.Tests</PackageId>
@@ -36,7 +36,11 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="System.ServiceModel.Primitives" Version="4.8.1" />
+ <PackageReference Include="System.ServiceModel.Primitives" Version="4.9.0" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <PackageReference Update="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2" />
</ItemGroup>
<Target Name="PreBuild" BeforeTargets="_GenerateRestoreProjectSpec;Restore;Compile">
@@ -55,22 +59,13 @@
<CreateProperty Condition="Exists('$(ProjectDir)/../../../../compiler/cpp/thrift')" Value="$(ProjectDir)/../../../../compiler/cpp/thrift">
<Output TaskParameter="Value" PropertyName="PathToThrift" />
</CreateProperty>
- <Error
- Condition="!Exists('$(PathToThrift)')"
- Text="Thrift executable could not be found."
- />
+ <Error Condition="!Exists('$(PathToThrift)')" Text="Thrift executable could not be found." />
<!-- Make sure the thrift version found is the same as the projects version -->
<Exec Command="$(PathToThrift) -version" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="ThriftBinaryVersion" />
</Exec>
- <Error
- Condition="$('$(ThriftBinaryVersion)'::StartsWith('$(ThriftVersionOutput)')) == true"
- Text="Thrift version returned: '$(ThriftBinaryVersion)' is not equal to the projects version '$(ThriftVersionOutput)'."
- />
- <Message
- Importance="high"
- Text="Generating tests with thrift binary: '$(PathToThrift)'"
- />
+ <Error Condition="$('$(ThriftBinaryVersion)'::StartsWith('$(ThriftVersionOutput)')) == true" Text="Thrift version returned: '$(ThriftBinaryVersion)' is not equal to the projects version '$(ThriftVersionOutput)'." />
+ <Message Importance="high" Text="Generating tests with thrift binary: '$(PathToThrift)'" />
<!-- Generate the thrift test files -->
<Exec Command="$(PathToThrift) -gen netstd:wcf,union,serial -r ./CassandraTest.thrift" />
<Exec Command="$(PathToThrift) -gen netstd:wcf,union,serial -r ./optional_required_default.thrift" />
diff --git a/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj b/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
index f1dc73155..18fce0177 100644
--- a/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
+++ b/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
@@ -19,15 +19,15 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<Version>0.16.0.0</Version>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="CompareNETObjects" Version="4.72.0" />
- <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
- <PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
- <PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
+ <PackageReference Include="CompareNETObjects" Version="4.74.0" />
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
+ <PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
+ <PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
<PackageReference Include="NSubstitute" Version="4.2.2" />
</ItemGroup>
@@ -39,4 +39,8 @@
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
+
+ <ItemGroup>
+ <PackageReference Update="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2" />
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/lib/netstd/Thrift/Collections/THashSet.cs b/lib/netstd/Thrift/Collections/THashSet.cs
index 25fcf10bc..1c060e5a7 100644
--- a/lib/netstd/Thrift/Collections/THashSet.cs
+++ b/lib/netstd/Thrift/Collections/THashSet.cs
@@ -32,7 +32,7 @@ namespace Thrift.Collections
public THashSet(int capacity)
{
- #if NET5_0
+ #if NET5_0_OR_GREATER
Items = new HashSet<T>(capacity);
#elif NETFRAMEWORK || NETSTANDARD
Items = new HashSet<T>(/*capacity not supported*/);
diff --git a/lib/netstd/Thrift/Thrift.csproj b/lib/netstd/Thrift/Thrift.csproj
index 2454ffd3e..16e64a172 100644
--- a/lib/netstd/Thrift/Thrift.csproj
+++ b/lib/netstd/Thrift/Thrift.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFrameworks>netstandard2.1;netstandard2.0;net5.0</TargetFrameworks>
+ <TargetFrameworks>netstandard2.1;netstandard2.0;net5.0;net6.0</TargetFrameworks>
<AssemblyName>Thrift</AssemblyName>
<PackageId>ApacheThrift</PackageId>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
@@ -56,18 +56,22 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
- <PackageReference Include="Microsoft.Extensions.Logging" Version="5.0.0" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="5.0.0" />
- <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="5.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
<PackageReference Include="System.IO.Pipes" Version="[4.3,)" />
<PackageReference Include="System.IO.Pipes.AccessControl" Version="5.0.0" />
- <PackageReference Include="System.Net.Http.WinHttpHandler" Version="5.0.0" />
+ <PackageReference Include="System.Net.Http.WinHttpHandler" Version="6.0.0" />
<PackageReference Include="System.Net.NameResolution" Version="[4.3,)" />
<PackageReference Include="System.Net.Requests" Version="[4.3,)" />
<PackageReference Include="System.Net.Security" Version="4.3.2" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
</ItemGroup>
+ <ItemGroup>
+ <PackageReference Update="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2" />
+ </ItemGroup>
+
<Target Name="SetTFMAssemblyAttributesPath" BeforeTargets="GenerateTargetFrameworkMonikerAttribute">
<PropertyGroup>
<TargetFrameworkMonikerAssemblyAttributesPath>$(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)</TargetFrameworkMonikerAssemblyAttributesPath>
diff --git a/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs b/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs
index 35a037da7..e985a298a 100644
--- a/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs
+++ b/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs
@@ -329,7 +329,7 @@ namespace Thrift.Transport.Server
var nBytes = Math.Min(15 * 4096, length); // 16 would exceed the limit
while (nBytes > 0)
{
-#if NET5_0
+#if NET5_0_OR_GREATER
await PipeStream.WriteAsync(buffer.AsMemory(offset, nBytes), cancellationToken);
#else
await PipeStream.WriteAsync(buffer, offset, nBytes, cancellationToken);
diff --git a/test/netstd/Client/Client.csproj b/test/netstd/Client/Client.csproj
index a33143613..c7d53493e 100644
--- a/test/netstd/Client/Client.csproj
+++ b/test/netstd/Client/Client.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<LangVersion>9.0</LangVersion>
<AssemblyName>Client</AssemblyName>
<PackageId>Client</PackageId>
@@ -34,9 +34,9 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="System.Net.Http.WinHttpHandler" Version="5.0.0" />
+ <PackageReference Include="System.Net.Http.WinHttpHandler" Version="6.0.0" />
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="[4.3,)" />
- <PackageReference Include="System.ServiceModel.Primitives" Version="4.8.1" />
+ <PackageReference Include="System.ServiceModel.Primitives" Version="4.9.0" />
<PackageReference Include="System.Threading" Version="[4.3,)" />
</ItemGroup>
diff --git a/test/netstd/Server/Server.csproj b/test/netstd/Server/Server.csproj
index f5ddc0f72..7d5eb1742 100644
--- a/test/netstd/Server/Server.csproj
+++ b/test/netstd/Server/Server.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<LangVersion>9.0</LangVersion>
<AssemblyName>Server</AssemblyName>
<PackageId>Server</PackageId>
@@ -36,9 +36,9 @@
<ItemGroup>
<PackageReference Include="System.IO.Pipes" Version="4.3.0" />
<PackageReference Include="System.IO.Pipes.AccessControl" Version="5.0.0" />
- <PackageReference Include="System.Net.Http.WinHttpHandler" Version="5.0.0" />
+ <PackageReference Include="System.Net.Http.WinHttpHandler" Version="6.0.0" />
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="[4.3,)" />
- <PackageReference Include="System.ServiceModel.Primitives" Version="4.8.1" />
+ <PackageReference Include="System.ServiceModel.Primitives" Version="4.9.0" />
<PackageReference Include="System.Threading" Version="[4.3,)" />
</ItemGroup>
diff --git a/tutorial/netstd/Client/Client.csproj b/tutorial/netstd/Client/Client.csproj
index 1f877517e..cf01951be 100644
--- a/tutorial/netstd/Client/Client.csproj
+++ b/tutorial/netstd/Client/Client.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<LangVersion>9.0</LangVersion>
<AssemblyName>Client</AssemblyName>
<PackageId>Client</PackageId>
@@ -32,7 +32,7 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.1" />
+ <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
diff --git a/tutorial/netstd/Client/Program.cs b/tutorial/netstd/Client/Program.cs
index 9c47450e7..f1c5236e1 100644
--- a/tutorial/netstd/Client/Program.cs
+++ b/tutorial/netstd/Client/Program.cs
@@ -39,10 +39,25 @@ using shared;
namespace Client
{
+ public static class LoggingHelper
+ {
+ public static ILoggerFactory LogFactory { get; } = LoggerFactory.Create(builder => {
+ ConfigureLogging(builder);
+ });
+
+ public static void ConfigureLogging(ILoggingBuilder logging)
+ {
+ logging.SetMinimumLevel(LogLevel.Trace);
+ logging.AddConsole();
+ logging.AddDebug();
+ }
+
+ public static ILogger<T> CreateLogger<T>() => LogFactory.CreateLogger<T>();
+ }
+
public class Program
{
- private static readonly ServiceCollection ServiceCollection = new();
- private static ILogger Logger;
+ private static readonly ILogger Logger = LoggingHelper.CreateLogger<Program>();
private static readonly TConfiguration Configuration = null; // new TConfiguration() if needed
private static void DisplayHelp()
@@ -86,47 +101,35 @@ Sample:
{
args ??= Array.Empty<string>();
- ServiceCollection.AddLogging(logging => ConfigureLogging(logging));
- using (var serviceProvider = ServiceCollection.BuildServiceProvider())
+ if (args.Any(x => x.StartsWith("-help", StringComparison.OrdinalIgnoreCase)))
{
- Logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger(nameof(Client));
-
- if (args.Any(x => x.StartsWith("-help", StringComparison.OrdinalIgnoreCase)))
- {
- DisplayHelp();
- return;
- }
+ DisplayHelp();
+ return;
+ }
- Logger.LogInformation("Starting client...");
+ Logger.LogInformation("Starting client...");
- using (var source = new CancellationTokenSource())
- {
- RunAsync(args, source.Token).GetAwaiter().GetResult();
- }
+ using (var source = new CancellationTokenSource())
+ {
+ RunAsync(args, source.Token).GetAwaiter().GetResult();
}
}
- private static void ConfigureLogging(ILoggingBuilder logging)
- {
- logging.SetMinimumLevel(LogLevel.Trace);
- logging.AddConsole();
- logging.AddDebug();
- }
-
+
private static async Task RunAsync(string[] args, CancellationToken cancellationToken)
{
var numClients = GetNumberOfClients(args);
- Logger.LogInformation($"Selected # of clients: {numClients}");
+ Logger.LogInformation("Selected # of clients: {numClients}", numClients);
var transport = GetTransport(args);
- Logger.LogInformation($"Selected client transport: {transport}");
+ Logger.LogInformation("Selected client transport: {transport}", transport);
var protocol = MakeProtocol( args, MakeTransport(args));
- Logger.LogInformation($"Selected client protocol: {GetProtocol(args)}");
+ Logger.LogInformation("Selected client protocol: {GetProtocol(args)}", GetProtocol(args));
var mplex = GetMultiplex(args);
- Logger.LogInformation("Multiplex " + (mplex ? "yes" : "no"));
+ Logger.LogInformation("Multiplex {mplex}", mplex);
var tasks = new Task[numClients];
for (int i = 0; i < numClients; i++)
@@ -240,7 +243,7 @@ Sample:
{
var numClients = args.FirstOrDefault(x => x.StartsWith("-mc"))?.Split(':')?[1];
- Logger.LogInformation($"Selected # of clients: {numClients}");
+ Logger.LogInformation("Selected # of clients: {numClients}", numClients);
if (int.TryParse(numClients, out int c) && (0 < c) && (c <= 100))
return c;
@@ -310,7 +313,7 @@ Sample:
}
catch (Exception ex)
{
- Logger.LogError(ex.ToString());
+ Logger.LogError("{ex}",ex);
}
finally
{
@@ -319,7 +322,7 @@ Sample:
}
catch (TApplicationException x)
{
- Logger.LogError(x.ToString());
+ Logger.LogError("{x}",x);
}
}
@@ -329,12 +332,12 @@ Sample:
// Async version
- Logger.LogInformation($"{client.ClientId} Ping()");
+ Logger.LogInformation("{client.ClientId} Ping()", client.ClientId);
await client.ping(cancellationToken);
- Logger.LogInformation($"{client.ClientId} Add(1,1)");
+ Logger.LogInformation("{client.ClientId} Add(1,1)", client.ClientId);
var sum = await client.add(1, 1, cancellationToken);
- Logger.LogInformation($"{client.ClientId} Add(1,1)={sum}");
+ Logger.LogInformation("{client.ClientId} Add(1,1)={sum}", client.ClientId, sum);
var work = new Work
{
@@ -345,13 +348,13 @@ Sample:
try
{
- Logger.LogInformation($"{client.ClientId} Calculate(1)");
+ Logger.LogInformation("{client.ClientId} Calculate(1)", client.ClientId);
await client.calculate(1, work, cancellationToken);
- Logger.LogInformation($"{client.ClientId} Whoa we can divide by 0");
+ Logger.LogInformation("{client.ClientId} Whoa we can divide by 0", client.ClientId);
}
catch (InvalidOperation io)
{
- Logger.LogInformation($"{client.ClientId} Invalid operation: " + io);
+ Logger.LogInformation("{client.ClientId} Invalid operation: {io}", client.ClientId, io);
}
work.Op = Operation.SUBTRACT;
@@ -360,20 +363,20 @@ Sample:
try
{
- Logger.LogInformation($"{client.ClientId} Calculate(1)");
+ Logger.LogInformation("{client.ClientId} Calculate(1)", client.ClientId);
var diff = await client.calculate(1, work, cancellationToken);
- Logger.LogInformation($"{client.ClientId} 15-10={diff}");
+ Logger.LogInformation("{client.ClientId} 15-10={diff}", client.ClientId, diff);
}
catch (InvalidOperation io)
{
- Logger.LogInformation($"{client.ClientId} Invalid operation: " + io);
+ Logger.LogInformation("{client.ClientId} Invalid operation: {io}", client.ClientId, io);
}
- Logger.LogInformation($"{client.ClientId} GetStruct(1)");
+ Logger.LogInformation("{client.ClientId} GetStruct(1)", client.ClientId);
var log = await client.getStruct(1, cancellationToken);
- Logger.LogInformation($"{client.ClientId} Check log: {log.Value}");
+ Logger.LogInformation("{client.ClientId} Check log: {log.Value}", client.ClientId, log.Value);
- Logger.LogInformation($"{client.ClientId} Zip() with delay 100mc on server side");
+ Logger.LogInformation("{client.ClientId} Zip() with delay 100mc on server side", client.ClientId);
await client.zip(cancellationToken);
}
diff --git a/tutorial/netstd/Interfaces/Interfaces.csproj b/tutorial/netstd/Interfaces/Interfaces.csproj
index 989f6db40..a28874585 100644
--- a/tutorial/netstd/Interfaces/Interfaces.csproj
+++ b/tutorial/netstd/Interfaces/Interfaces.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<AssemblyName>Interfaces</AssemblyName>
<PackageId>Interfaces</PackageId>
<Version>0.16.0.0</Version>
@@ -34,7 +34,7 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="System.ServiceModel.Primitives" Version="4.8.1" />
+ <PackageReference Include="System.ServiceModel.Primitives" Version="4.9.0" />
</ItemGroup>
<Target Name="PreBuild" BeforeTargets="_GenerateRestoreProjectSpec;Restore;Compile">
diff --git a/tutorial/netstd/Server/Program.cs b/tutorial/netstd/Server/Program.cs
index 80205d54f..d9c9dbf12 100644
--- a/tutorial/netstd/Server/Program.cs
+++ b/tutorial/netstd/Server/Program.cs
@@ -38,53 +38,55 @@ using shared;
using Thrift.Processor;
using System.Diagnostics;
-#pragma warning disable IDE0063 // using
#pragma warning disable IDE0057 // substr
namespace Server
{
+ public static class LoggingHelper
+ {
+ public static ILoggerFactory LogFactory { get; } = LoggerFactory.Create(builder => {
+ ConfigureLogging(builder);
+ });
+
+ public static void ConfigureLogging(ILoggingBuilder logging)
+ {
+ logging.SetMinimumLevel(LogLevel.Trace);
+ logging.AddConsole();
+ logging.AddDebug();
+ }
+
+ public static ILogger<T> CreateLogger<T>() => LogFactory.CreateLogger<T>();
+ }
+
public class Program
{
- private static readonly ServiceCollection ServiceCollection = new();
- private static ILogger Logger;
+ private static readonly ILogger Logger = LoggingHelper.CreateLogger<Program>();
private static readonly TConfiguration Configuration = null; // new TConfiguration() if needed
public static void Main(string[] args)
{
args ??= Array.Empty<string>();
- ServiceCollection.AddLogging(logging => ConfigureLogging(logging));
- using (var serviceProvider = ServiceCollection.BuildServiceProvider())
+ if (args.Any(x => x.StartsWith("-help", StringComparison.OrdinalIgnoreCase)))
{
- Logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger(nameof(Server));
-
- if (args.Any(x => x.StartsWith("-help", StringComparison.OrdinalIgnoreCase)))
- {
- DisplayHelp();
- return;
- }
-
- using (var source = new CancellationTokenSource())
- {
- RunAsync(args, source.Token).GetAwaiter().GetResult();
+ DisplayHelp();
+ return;
+ }
- Logger.LogInformation("Press any key to stop...");
+ using (var source = new CancellationTokenSource())
+ {
+ RunAsync(args, source.Token).GetAwaiter().GetResult();
- Console.ReadLine();
- source.Cancel();
- }
+ Logger.LogInformation("Press any key to stop...");
- Logger.LogInformation("Server stopped");
+ Console.ReadLine();
+ source.Cancel();
}
- }
- private static void ConfigureLogging(ILoggingBuilder logging)
- {
- logging.SetMinimumLevel(LogLevel.Trace);
- logging.AddConsole();
- logging.AddDebug();
+ Logger.LogInformation("Server stopped");
}
+
private static void DisplayHelp()
{
Logger.LogInformation(@"
@@ -226,15 +228,12 @@ Sample:
try
{
Logger.LogInformation(
- string.Format(
- "TSimpleAsyncServer with \n{0} transport\n{1} buffering\nmultiplex = {2}\n{3} protocol",
- transport,
- buffering,
- multiplex ? "yes" : "no",
- protocol
- ));
-
- var loggerFactory = ServiceCollection.BuildServiceProvider().GetService<ILoggerFactory>();
+ "TSimpleAsyncServer with \n{transport} transport\n{buffering} buffering\nmultiplex = {multiplex}\n{protocol} protocol",
+ transport,
+ buffering,
+ multiplex ? "yes" : "no",
+ protocol
+ );
var server = new TSimpleAsyncServer(
itProcessorFactory: new TSingletonProcessorFactory(processor),
@@ -243,7 +242,7 @@ Sample:
outputTransportFactory: transportFactory,
inputProtocolFactory: protocolFactory,
outputProtocolFactory: protocolFactory,
- logger: loggerFactory.CreateLogger<TSimpleAsyncServer>());
+ logger: LoggingHelper.CreateLogger<TSimpleAsyncServer >());
Logger.LogInformation("Starting the server...");
@@ -251,7 +250,7 @@ Sample:
}
catch (Exception x)
{
- Logger.LogInformation(x.ToString());
+ Logger.LogInformation("{x}",x);
}
}
@@ -327,7 +326,7 @@ Sample:
.UseUrls("http://localhost:9090")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
- .ConfigureLogging((ctx,logging) => ConfigureLogging(logging))
+ .ConfigureLogging((ctx,logging) => LoggingHelper.ConfigureLogging(logging))
.Build();
Logger.LogTrace("test");
@@ -379,7 +378,7 @@ Sample:
public async Task<SharedStruct> getStruct(int key,
CancellationToken cancellationToken)
{
- Logger.LogInformation("GetStruct({0})", key);
+ Logger.LogInformation("GetStruct({key})", key);
return await Task.FromResult(_log[key]);
}
@@ -391,13 +390,13 @@ Sample:
public async Task<int> add(int num1, int num2, CancellationToken cancellationToken)
{
- Logger.LogInformation($"Add({num1},{num2})");
+ Logger.LogInformation("Add({num1},{num2})", num1, num2);
return await Task.FromResult(num1 + num2);
}
public async Task<int> calculate(int logid, Work w, CancellationToken cancellationToken)
{
- Logger.LogInformation($"Calculate({logid}, [{w.Op},{w.Num1},{w.Num2}])");
+ Logger.LogInformation("Calculate({logid}, [{w.Op},{w.Num1},{w.Num2}])", logid, w.Op, w.Num1, w.Num2);
int val;
switch (w.Op)
@@ -462,7 +461,7 @@ Sample:
{
public async Task<SharedStruct> getStruct(int key, CancellationToken cancellationToken)
{
- Logger.LogInformation("GetStruct({0})", key);
+ Logger.LogInformation("GetStruct({key})", key);
return await Task.FromResult(new SharedStruct()
{
Key = key,
diff --git a/tutorial/netstd/Server/Server.csproj b/tutorial/netstd/Server/Server.csproj
index e5e54a5b1..6bee63fc3 100644
--- a/tutorial/netstd/Server/Server.csproj
+++ b/tutorial/netstd/Server/Server.csproj
@@ -19,7 +19,7 @@
-->
<PropertyGroup>
- <TargetFramework>net5.0</TargetFramework>
+ <TargetFramework>net6.0</TargetFramework>
<LangVersion>9.0</LangVersion>
<AssemblyName>Server</AssemblyName>
<PackageId>Server</PackageId>
@@ -40,6 +40,6 @@
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.2.1" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
- <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
</ItemGroup>
</Project>