diff --git a/.github/workflows/cd_standard.yaml b/.github/workflows/cd_standard.yaml index be8f7a124..97c47a81b 100644 --- a/.github/workflows/cd_standard.yaml +++ b/.github/workflows/cd_standard.yaml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: true env: - OpenDdsVersion: "3.25" + OpenDdsVersion: "3.28.1" jobs: build_windows_native: @@ -76,6 +76,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/**/*.idl ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/**/*.pidl ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-${{ matrix.BuildConfiguration }}-win-${{ matrix.BuildPlatform }}-cd - name: Build Native (No cached) @@ -99,6 +101,8 @@ jobs: XCOPY ".\README.md" "$targetDir\" /D /S /Y /M XCOPY ".\ext\OpenDDS_${{ matrix.BuildPlatform }}\dds\idl\IDLTemplate.txt" "$targetDir\OpenDDS_${{ matrix.BuildPlatform }}\dds\idl\" /D /S /Y /M XCOPY ".\ext\OpenDDS_${{ matrix.BuildPlatform }}\VERSION.txt" "$targetDir\OpenDDS_${{ matrix.BuildPlatform }}\" /D /S /Y /M + XCOPY ".\ext\OpenDDS_${{ matrix.BuildPlatform }}\ACE_wrappers\VERSION.txt" "$targetDir\OpenDDS_${{ matrix.BuildPlatform }}\ACE_wrappers\" /D /S /Y /M + XCOPY ".\ext\OpenDDS_${{ matrix.BuildPlatform }}\ACE_wrappers\TAO\VERSION.txt" "$targetDir\OpenDDS_${{ matrix.BuildPlatform }}\ACE_wrappers\" /D /S /Y /M XCOPY ".\Native\build_${{ matrix.BuildPlatform }}\OpenDDSWrapper\Release\OpenDDSWrapper.dll" "$targetDir\Native\build_${{ matrix.BuildPlatform }}\OpenDDSWrapper\Release\" /D /S /Y /M XCOPY ".\Native\build_${{ matrix.BuildPlatform }}\OpenDDSharp.IdlGenerator\Release\openddsharp_idl.exe" "$targetDir\Native\build_${{ matrix.BuildPlatform }}\OpenDDSharp.IdlGenerator\Release\" /D /S /Y /M @@ -130,7 +134,7 @@ jobs: path: ${{ github.workspace }}/opendds-native-win-${{ matrix.BuildPlatform }}.zip build_linux_native: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 env: BuildPlatform: "x64" @@ -188,6 +192,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_Linux/dds/idl/opendds_idl ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/apps/gperf/src/ace_gperf ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/TAO/TAO_IDL/tao_idl + ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-linux-${{ env.BuildPlatform }}-cd - name: Build Native (No cached) @@ -231,6 +237,8 @@ jobs: rsync -r -m -v -L --include='tools/repoctl/repoctl' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v -L --include='ACE_wrappers/apps/gperf/src/ace_gperf' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v -L --include='ACE_wrappers/TAO/TAO_IDL/tao_idl' --include='*/' --exclude='*' $sourceDir $targetDir + rsync -r -m -v -L --include='ACE_wrappers/VERSION.txt' --include='*/' --exclude='*' $sourceDir $targetDir + rsync -r -m -v -L --include='ACE_wrappers/TAO/VERSION.txt' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v --include='README.md' --include='*/' --exclude='*' ./ $targetDir rsync -r -m -v --include='Native/build_Linux/OpenDDSWrapper/libOpenDDSWrapper.so' --include='*/' --exclude='*' ./ $targetDir @@ -307,6 +315,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_osx-x64/dds/idl/opendds_idl ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/apps/gperf/src/ace_gperf ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/TAO/TAO_IDL/tao_idl + ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-osx-${{ env.BuildPlatform }}-cd - name: Build Native (No cached) @@ -351,6 +361,8 @@ jobs: rsync -r -m -v -L --include='tools/repoctl/repoctl' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v -L --include='ACE_wrappers/apps/gperf/src/ace_gperf' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v -L --include='ACE_wrappers/TAO/TAO_IDL/tao_idl' --include='*/' --exclude='*' $sourceDir $targetDir + rsync -r -m -v -L --include='ACE_wrappers/VERSION.txt' --include='*/' --exclude='*' $sourceDir $targetDir + rsync -r -m -v -L --include='ACE_wrappers/TAO/VERSION.txt' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v --include='README.md' --include='*/' --exclude='*' ./ $targetDir rsync -r -m -v --include='Native/build_osx-x64/OpenDDSWrapper/libOpenDDSWrapper.dylib' --include='*/' --exclude='*' ./ $targetDir @@ -427,6 +439,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_osx-arm64/dds/idl/opendds_idl ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/apps/gperf/src/ace_gperf ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/TAO/TAO_IDL/tao_idl + ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-osx-${{ env.BuildPlatform }}-cd - name: Build Native (No cached) @@ -471,6 +485,8 @@ jobs: rsync -r -m -v -L --include='tools/repoctl/repoctl' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v -L --include='ACE_wrappers/apps/gperf/src/ace_gperf' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v -L --include='ACE_wrappers/TAO/TAO_IDL/tao_idl' --include='*/' --exclude='*' $sourceDir $targetDir + rsync -r -m -v -L --include='ACE_wrappers/VERSION.txt' --include='*/' --exclude='*' $sourceDir $targetDir + rsync -r -m -v -L --include='ACE_wrappers/TAO/VERSION.txt' --include='*/' --exclude='*' $sourceDir $targetDir rsync -r -m -v --include='README.md' --include='*/' --exclude='*' ./ $targetDir rsync -r -m -v --include='Native/build_osx-arm64/OpenDDSWrapper/libOpenDDSWrapper.dylib' --include='*/' --exclude='*' ./ $targetDir @@ -646,7 +662,9 @@ jobs: runtime: win-x86 - os: windows-latest runtime: win-x64 - - os: ubuntu-latest + - os: ubuntu-20.04 + runtime: linux-x64 + - os: ubuntu-22.04 runtime: linux-x64 - os: macos-13 runtime: osx-x64 diff --git a/.github/workflows/ci_standard.yaml b/.github/workflows/ci_standard.yaml index 9e714eca5..a204a8295 100644 --- a/.github/workflows/ci_standard.yaml +++ b/.github/workflows/ci_standard.yaml @@ -22,26 +22,16 @@ jobs: fail-fast: false matrix: BuildPlatform: [x64, x86] - BuildConfiguration: [Release, Debug] + BuildConfiguration: [Release] env: - OpenDdsVersion: "3.25" + OpenDdsVersion: "3.28.1" steps: - uses: actions/checkout@v4 with: fetch-depth: 0 -# - name: Setup dotnet 8.0 -# uses: actions/setup-dotnet@v4 -# with: -# dotnet-version: '8.0.x' -# -# - name: Setup dotnet 6.0 -# uses: actions/setup-dotnet@v4 -# with: -# dotnet-version: '6.0.x' - - name: Setup dotnet 6.0 shell: pwsh run: | @@ -81,6 +71,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/**/*.idl ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/**/*.pidl ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_${{ matrix.BuildPlatform }}/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-${{ matrix.BuildConfiguration }}-win-${{ matrix.BuildPlatform }}-ci - name: Build & Test with Cake (No cached) @@ -100,7 +92,7 @@ jobs: if: success() || failure() with: name: "Test Report: win-${{ matrix.BuildPlatform }} ${{ matrix.BuildConfiguration }}" - path: TestResults/netcoreapp3.1/test-results.trx,TestResults/net5.0/test-results.trx,TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net461/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx + path: TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx reporter: dotnet-trx - name: Get path to lcov file @@ -119,10 +111,10 @@ jobs: fail-on-error: false build_linux: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 env: - OpenDdsVersion: "3.25" + OpenDdsVersion: "3.28.1" BuildPlatform: "x64" BuildConfiguration: "Release" LD_RPATH_FLAGS: "-Wl,-rpath='$ORIGIN'" @@ -165,6 +157,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_Linux/dds/idl/opendds_idl ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/apps/gperf/src/ace_gperf ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/TAO/TAO_IDL/tao_idl + ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_Linux/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-linux-${{ env.BuildPlatform }}-ci - name: Build Native (No cached) @@ -214,7 +208,7 @@ jobs: - name: Test OpenDDSharp shell: bash - run: dotnet test ${{ github.workspace }}/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj --no-build --no-restore --verbosity detailed --configuration ${{ env.BuildConfiguration }} --runtime linux-x64 --collect "XPlat code coverage" --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed""console;verbosity=detailed" --settings ${{ github.workspace }}/Tests.runsettings --test-adapter-path "${{ github.workspace }}/packages/coverlet.collector/6.0.0/build/netstandard1.0/" + run: dotnet test ${{ github.workspace }}/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj --no-build --no-restore --verbosity detailed --configuration ${{ env.BuildConfiguration }} --runtime linux-x64 --collect "XPlat code coverage" --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed""console;verbosity=detailed" --settings ${{ github.workspace }}/Tests.runsettings --test-adapter-path "${{ github.workspace }}/packages/coverlet.collector/6.0.2/build/netstandard2.0/" working-directory: ${{ github.workspace }} env: DDS_ROOT: "${{ github.workspace }}/ext/OpenDDS_Linux" @@ -227,7 +221,7 @@ jobs: if: success() || failure() with: name: "Test Report: linux-x64" - path: TestResults/netcoreapp3.1/test-results.trx,TestResults/net5.0/test-results.trx,TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net461/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx + path: TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx reporter: dotnet-trx - name: Get path to lcov file @@ -249,7 +243,7 @@ jobs: runs-on: macos-13 env: - OpenDdsVersion: "3.25" + OpenDdsVersion: "3.28.1" BuildPlatform: "x64" BuildConfiguration: "Release" LD_RPATH_FLAGS: "-Wl,-rpath,@executable_path -Wl,-rpath,@loader_path" @@ -292,6 +286,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_osx-x64/dds/idl/opendds_idl ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/apps/gperf/src/ace_gperf ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/TAO/TAO_IDL/tao_idl + ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_osx-x64/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-osx-${{ env.BuildPlatform }}-ci - name: Build Native (No cached) @@ -341,7 +337,7 @@ jobs: - name: Test OpenDDSharp shell: bash - run: sudo dotnet test ${{ github.workspace }}/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj --no-build --no-restore --verbosity diagnostic --configuration ${{ env.BuildConfiguration }} --runtime osx-x64 --collect "XPlat code coverage" --settings ${{ github.workspace }}/Tests.runsettings --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed" --test-adapter-path "${{ github.workspace }}/packages/coverlet.collector/6.0.0/build/netstandard1.0/" + run: sudo dotnet test ${{ github.workspace }}/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj --no-build --no-restore --verbosity diagnostic --configuration ${{ env.BuildConfiguration }} --runtime osx-x64 --collect "XPlat code coverage" --settings ${{ github.workspace }}/Tests.runsettings --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed" --test-adapter-path "${{ github.workspace }}/packages/coverlet.collector/6.0.2/build/netstandard2.0/" working-directory: ${{ github.workspace }} env: DDS_ROOT: "${{ github.workspace }}/ext/OpenDDS_osx-x64" @@ -354,7 +350,7 @@ jobs: if: success() || failure() with: name: "Test Report: osx-x64" - path: TestResults/netcoreapp3.1/test-results.trx,TestResults/net5.0/test-results.trx,TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net461/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx + path: TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx reporter: dotnet-trx - name: Get path to lcov file @@ -376,7 +372,7 @@ jobs: runs-on: macos-14 env: - OpenDdsVersion: "3.25" + OpenDdsVersion: "3.28.1" BuildPlatform: "ARM64" BuildConfiguration: "Release" LD_RPATH_FLAGS: "-Wl,-rpath,@executable_path -Wl,-rpath,@loader_path" @@ -419,6 +415,8 @@ jobs: ${{ github.workspace }}/ext/OpenDDS_osx-arm64/dds/idl/opendds_idl ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/apps/gperf/src/ace_gperf ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/TAO/TAO_IDL/tao_idl + ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/VERSION.txt + ${{ github.workspace }}/ext/OpenDDS_osx-arm64/ACE_wrappers/TAO/VERSION.txt key: opendds-cache-${{ env.OpenDdsVersion }}-osx-${{ env.BuildPlatform }}-ci - name: Build Native (No cached) @@ -468,7 +466,7 @@ jobs: - name: Test OpenDDSharp shell: bash - run: sudo dotnet test ${{ github.workspace }}/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj --no-build --no-restore --verbosity diagnostic --configuration ${{ env.BuildConfiguration }} --runtime osx-arm64 --collect "XPlat code coverage" --settings ${{ github.workspace }}/Tests.runsettings --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed" --test-adapter-path "${{ github.workspace }}/packages/coverlet.collector/6.0.0/build/netstandard1.0/" + run: sudo dotnet test ${{ github.workspace }}/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj --no-build --no-restore --verbosity diagnostic --configuration ${{ env.BuildConfiguration }} --runtime osx-arm64 --collect "XPlat code coverage" --settings ${{ github.workspace }}/Tests.runsettings --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed" --test-adapter-path "${{ github.workspace }}/packages/coverlet.collector/6.0.2/build/netstandard2.0/" working-directory: ${{ github.workspace }} env: DDS_ROOT: "${{ github.workspace }}/ext/OpenDDS_osx-arm64" @@ -481,7 +479,7 @@ jobs: if: success() || failure() with: name: "Test Report: osx-arm64" - path: TestResults/netcoreapp3.1/test-results.trx,TestResults/net5.0/test-results.trx,TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx,TestResults/net461/test-results.trx,TestResults/net462/test-results.trx,TestResults/net47/test-results.trx,TestResults/net471/test-results.trx,TestResults/net472/test-results.trx,TestResults/net48/test-results.trx + path: TestResults/net6.0/test-results.trx,TestResults/net7.0/test-results.trx,TestResults/net8.0/test-results.trx reporter: dotnet-trx - name: Get path to lcov file @@ -508,6 +506,6 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true - carryforward: coverage-windows-x64-Release,coverage-windows-x64-Debug,coverage-windows-x86-Release,coverage-windows-x86-Debug,coverage-linux-x64-Release,coverage-macos-x64-Release,coverage-macos-arm64-Release + carryforward: coverage-windows-x64-Release,coverage-windows-x86-Release,coverage-linux-x64-Release,coverage-macos-x64-Release,coverage-macos-arm64-Release fail-on-error: false diff --git a/Build/OpenDDSharp.Build/BuildContext.cs b/Build/OpenDDSharp.Build/BuildContext.cs index 865c7bd95..a12f63361 100644 --- a/Build/OpenDDSharp.Build/BuildContext.cs +++ b/Build/OpenDDSharp.Build/BuildContext.cs @@ -32,7 +32,7 @@ namespace OpenDDSharp.Build public class BuildContext : FrostingContext { #region Constants - internal const string DEFAULT_OPENDDS_VERSION = "3.25"; + internal const string DEFAULT_OPENDDS_VERSION = "3.28.1"; private const string DEFAULT_PERL_FOLDER = "C:/Strawberry/perl/bin"; diff --git a/Build/OpenDDSharp.Build/OpenDDSharp.Build.csproj b/Build/OpenDDSharp.Build/OpenDDSharp.Build.csproj index 7090fed3c..a439a8bdd 100644 --- a/Build/OpenDDSharp.Build/OpenDDSharp.Build.csproj +++ b/Build/OpenDDSharp.Build/OpenDDSharp.Build.csproj @@ -24,7 +24,7 @@ - + all @@ -35,11 +35,11 @@ all - + all - + all diff --git a/Build/OpenDDSharp.Build/Tasks/PrepareLinuxLibraries.cs b/Build/OpenDDSharp.Build/Tasks/PrepareLinuxLibraries.cs index bfaabec08..7edafd121 100644 --- a/Build/OpenDDSharp.Build/Tasks/PrepareLinuxLibraries.cs +++ b/Build/OpenDDSharp.Build/Tasks/PrepareLinuxLibraries.cs @@ -29,9 +29,9 @@ namespace OpenDDSharp.Build.Tasks [TaskName("PrepareLinuxLibraries")] public class PrepareLinuxLibraries : FrostingTask { - private const string OPENDDS_VERSION = "3.25.0"; - private const string ACE_VERSION = "7.1.1"; - private const string TAO_VERSION = "3.1.1"; + private const string OPENDDS_VERSION = "3.28.1"; + private const string ACE_VERSION = "7.1.3"; + private const string TAO_VERSION = "3.1.3"; private readonly string[] _aceLibraries = { diff --git a/Build/OpenDDSharp.Build/Tasks/SetupThirdPartyTask.cs b/Build/OpenDDSharp.Build/Tasks/SetupThirdPartyTask.cs index e934e7bdc..f30495cb4 100644 --- a/Build/OpenDDSharp.Build/Tasks/SetupThirdPartyTask.cs +++ b/Build/OpenDDSharp.Build/Tasks/SetupThirdPartyTask.cs @@ -87,6 +87,33 @@ public override void Run(BuildContext context) Git(context, "fetch --tags"); Git(context, $"checkout tags/{_versionTag}"); + context.Log.Information("Apply required OpenDDSharp patches to OpenDDS..."); + if (!Directory.Exists(BuildContext.PATCHES_FOLDER)) + { + return; + } + var patches = Directory.EnumerateFiles(BuildContext.PATCHES_FOLDER, "*.patch"); + var patchPaths = patches as string[] ?? patches.ToArray(); + if (!patchPaths.Any()) + { + return; + } + foreach (var patchPath in patchPaths) + { + var patchDirectory = new DirectoryPath(patchPath); + if (BuildContext.IsLinux) + { + var linuxPath = System.IO.Path.GetFullPath(patchDirectory.FullPath); + + context.Log.Information($"Apply {linuxPath} in {context.DdsRoot}..."); + Git(context, "apply --whitespace=fix --ignore-space-change --ignore-whitespace " + linuxPath); + } + else + { + Git(context, "apply " + patchDirectory.FullPath); + } + } + context.Log.Information("Call OpenDDS configure script"); if (BuildContext.IsLinux || BuildContext.IsOSX) @@ -143,23 +170,6 @@ public override void Run(BuildContext context) throw new BuildException($"Error calling the OpenDDS configure script. Exit code: {exit}"); } } - - context.Log.Information("Apply required OpenDDSharp patches to OpenDDS..."); - foreach (var patchPath in Directory.GetFiles(BuildContext.PATCHES_FOLDER, "*.patch")) - { - var patchDirectory = new DirectoryPath(patchPath); - if (BuildContext.IsLinux) - { - var linuxPath = System.IO.Path.GetFullPath(patchDirectory.FullPath); - - context.Log.Information($"Apply {linuxPath} in {context.DdsRoot}..."); - Git(context, "apply --whitespace=fix --ignore-space-change --ignore-whitespace " + linuxPath); - } - else - { - Git(context, "apply " + patchDirectory.FullPath); - } - } } private static void DeleteDirectory(string directoryPath) diff --git a/Build/OpenDDSharp.Build/Tasks/TestTask.cs b/Build/OpenDDSharp.Build/Tasks/TestTask.cs index 1f835e6d0..d7fd439ff 100644 --- a/Build/OpenDDSharp.Build/Tasks/TestTask.cs +++ b/Build/OpenDDSharp.Build/Tasks/TestTask.cs @@ -20,7 +20,6 @@ You should have received a copy of the GNU Lesser General Public License using Cake.Common.Tools.DotNet; using Cake.Common.Tools.DotNet.Test; -using Cake.Core; using Cake.Core.Diagnostics; using Cake.Frosting; using Path = System.IO.Path; @@ -41,7 +40,7 @@ public override void Run(BuildContext context) var solutionFullPath = Path.GetFullPath(BuildContext.OPENDDSHARP_SOLUTION_FOLDER); var path = Path.Combine(solutionFullPath, $"Tests/OpenDDSharp.UnitTest/bin/{context.BuildConfiguration}/net6.0/{context.RunTime}"); context.Log.Information($"Unit test path: {path}"); - var testAdapterPath = Path.Combine(BuildContext.OPENDDSHARP_SOLUTION_FOLDER, "packages/coverlet.collector/6.0.0/build/netstandard1.0"); + var testAdapterPath = Path.Combine(BuildContext.OPENDDSHARP_SOLUTION_FOLDER, "packages/coverlet.collector/6.0.2/build/netstandard2.0"); var settingsFile = Path.Combine(solutionFullPath, "Tests.runsettings"); context.Log.Information($"Settings file: {settingsFile}"); @@ -63,8 +62,7 @@ public override void Run(BuildContext context) Verbosity = DotNetVerbosity.Detailed, Configuration = context.BuildConfiguration, Loggers = { "trx;LogFileName=test-results.trx", "console;verbosity=detailed" }, - Blame = true, - ArgumentCustomization = arg => arg.Append("--blame-hang --blame-hang-timeout 2m"), + Collectors = { "XPlat Code Coverage" }, }; context.DotNetTest(solutionFullPath + "/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj", dotnetTestSettings); diff --git a/Documentation/index.md b/Documentation/index.md index 5b1097802..ed4488176 100644 --- a/Documentation/index.md +++ b/Documentation/index.md @@ -11,7 +11,7 @@ publish and subscribe model. OpenDDS Website: [https://www.opendds.org](https://www.opendds.org) OpenDDS Repository: [https://github.com/OpenDDS/OpenDDS](https://github.com/OpenDDS/OpenDDS) -OpenDDSharp has been compiled with OpenDDS v3.25 +OpenDDSharp has been compiled with OpenDDS v3.28.1 | Package | NuGet | |---------|-------| diff --git a/Examples/ConsoleDemoCore/ConsoleDemoCore.csproj b/Examples/ConsoleDemoCore/ConsoleDemoCore.csproj index 353ebde6e..fb6efd501 100644 --- a/Examples/ConsoleDemoCore/ConsoleDemoCore.csproj +++ b/Examples/ConsoleDemoCore/ConsoleDemoCore.csproj @@ -15,7 +15,7 @@ - + all @@ -26,11 +26,11 @@ all - + all - + all diff --git a/GitVersion.yml b/GitVersion.yml index 9b5056162..64a697340 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -1,4 +1,4 @@ -next-version: "3.250.3" +next-version: "3.281.1" mode: ContinuousDeployment update-build-number: true tag-prefix: '(release-)?[vV]' diff --git a/Native/CMakeListsTemplate.txt b/Native/CMakeListsTemplate.txt index b907e4d2e..c809b741b 100644 --- a/Native/CMakeListsTemplate.txt +++ b/Native/CMakeListsTemplate.txt @@ -3,6 +3,10 @@ project(${PROJECT_NAME} CXX) find_package(OpenDDS REQUIRED) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + if(MSVC) add_compile_options(/bigobj) add_definitions(-D_CRT_SECURE_NO_WARNINGS) @@ -10,7 +14,6 @@ if(MSVC) endif() if(APPLE) - set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) elseif(UNIX) diff --git a/Native/OpenDDSWrapper/CMakeLists.txt b/Native/OpenDDSWrapper/CMakeLists.txt index a7b910b98..29ce6947a 100644 --- a/Native/OpenDDSWrapper/CMakeLists.txt +++ b/Native/OpenDDSWrapper/CMakeLists.txt @@ -2,8 +2,11 @@ cmake_minimum_required(VERSION 3.8.2) project(OpenDDSWrapper CXX) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + if (APPLE) - set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) elseif (UNIX) diff --git a/Native/OpenDDSWrapper/InfoRepoDiscovery.cpp b/Native/OpenDDSWrapper/InfoRepoDiscovery.cpp index 91c63791b..d3926192f 100644 --- a/Native/OpenDDSWrapper/InfoRepoDiscovery.cpp +++ b/Native/OpenDDSWrapper/InfoRepoDiscovery.cpp @@ -24,7 +24,9 @@ ::OpenDDS::DCPS::Discovery *InfoRepoDiscovery_NarrowBase(::OpenDDS::DCPS::InfoRe } ::OpenDDS::DCPS::InfoRepoDiscovery *InfoRepoDiscovery_new(const char *key, const char *ior) { - return new ::OpenDDS::DCPS::InfoRepoDiscovery(key, ior); + ::OpenDDS::DCPS::InfoRepoDiscovery* infoRepo = new ::OpenDDS::DCPS::InfoRepoDiscovery(key); + TheServiceParticipant->set_repo_ior(ior, key, false); + return infoRepo; } CORBA::Long InfoRepoDiscovery_GetBitTransportPort(::OpenDDS::DCPS::InfoRepoDiscovery *idr) { diff --git a/Native/OpenDDSWrapper/MulticastInst.cpp b/Native/OpenDDSWrapper/MulticastInst.cpp index 2f419bbe0..7f508c151 100644 --- a/Native/OpenDDSWrapper/MulticastInst.cpp +++ b/Native/OpenDDSWrapper/MulticastInst.cpp @@ -33,58 +33,64 @@ CORBA::Boolean MulticastInst_GetIsReliable(::OpenDDS::DCPS::MulticastInst *mi) { } CORBA::Boolean MulticastInst_GetReliable(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->reliable_; + return mi->reliable(); } void MulticastInst_SetReliable(::OpenDDS::DCPS::MulticastInst *mi, CORBA::Boolean value) { - mi->reliable_ = value; + mi->reliable(value); } CORBA::Boolean MulticastInst_GetDefaultToIpv6(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->default_to_ipv6_; + return mi->default_to_ipv6(); } void MulticastInst_SetDefaultToIpv6(::OpenDDS::DCPS::MulticastInst *mi, CORBA::Boolean value) { - mi->default_to_ipv6_ = value; + mi->default_to_ipv6(value); } CORBA::UShort MulticastInst_GetPortOffset(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->port_offset_; + return mi->port_offset(); } void MulticastInst_SetPortOffset(::OpenDDS::DCPS::MulticastInst *mi, CORBA::UShort value) { - mi->port_offset_ = value; + mi->port_offset(value); } char *MulticastInst_GetGroupAddress(::OpenDDS::DCPS::MulticastInst *mi) { - char *buffer = new char[512]; - mi->group_address_.addr_to_string(buffer, 512); - - return CORBA::string_dup(buffer); + const std::string addr_str = ::OpenDDS::DCPS::LogAddr(mi->group_address()).str(); + if (addr_str.empty()) { + return CORBA::string_dup(""); + } + return CORBA::string_dup(addr_str.c_str()); } void MulticastInst_SetGroupAddress(::OpenDDS::DCPS::MulticastInst *mi, char *value) { - mi->group_address_.set(value); + const ::OpenDDS::DCPS::NetworkAddress addr_obj(value); + mi->group_address(addr_obj); } char *MulticastInst_GetLocalAddress(::OpenDDS::DCPS::MulticastInst *mi) { - return CORBA::string_dup(mi->local_address_.c_str()); + const char * addr = CORBA::string_dup(mi->local_address().c_str()); + if (addr == NULL) { + return CORBA::string_dup(""); + } + return CORBA::string_dup(addr); } void MulticastInst_SetLocalAddress(::OpenDDS::DCPS::MulticastInst *mi, char *value) { - mi->local_address_ = value; + mi->local_address(value); } CORBA::Double MulticastInst_GetSynBackoff(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->syn_backoff_; + return mi->syn_backoff(); } void MulticastInst_SetSynBackoff(::OpenDDS::DCPS::MulticastInst *mi, CORBA::Double value) { - mi->syn_backoff_ = value; + mi->syn_backoff(value); } TimeValueWrapper MulticastInst_GetSynInterval(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->syn_interval_; + return mi->syn_interval_.get(); } void MulticastInst_SetSynInterval(::OpenDDS::DCPS::MulticastInst *mi, TimeValueWrapper value) { @@ -92,7 +98,7 @@ void MulticastInst_SetSynInterval(::OpenDDS::DCPS::MulticastInst *mi, TimeValueW } TimeValueWrapper MulticastInst_GetSynTimeout(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->syn_timeout_; + return mi->syn_timeout_.get(); } void MulticastInst_SetSynTimeout(::OpenDDS::DCPS::MulticastInst *mi, TimeValueWrapper value) { @@ -100,7 +106,7 @@ void MulticastInst_SetSynTimeout(::OpenDDS::DCPS::MulticastInst *mi, TimeValueWr } size_t MulticastInst_GetNakDepth(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->nak_depth_; + return mi->nak_depth_.get(); } void MulticastInst_SetNakDepth(::OpenDDS::DCPS::MulticastInst *mi, size_t value) { @@ -108,7 +114,7 @@ void MulticastInst_SetNakDepth(::OpenDDS::DCPS::MulticastInst *mi, size_t value) } TimeValueWrapper MulticastInst_GetNakInterval(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->nak_interval_; + return mi->nak_interval_.get(); } void MulticastInst_SetNakInterval(::OpenDDS::DCPS::MulticastInst *mi, TimeValueWrapper value) { @@ -116,7 +122,7 @@ void MulticastInst_SetNakInterval(::OpenDDS::DCPS::MulticastInst *mi, TimeValueW } size_t MulticastInst_GetNakDelayIntervals(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->nak_delay_intervals_; + return mi->nak_delay_intervals_.get(); } void MulticastInst_SetNakDelayIntervals(::OpenDDS::DCPS::MulticastInst *mi, size_t value) { @@ -124,7 +130,7 @@ void MulticastInst_SetNakDelayIntervals(::OpenDDS::DCPS::MulticastInst *mi, size } size_t MulticastInst_GetNakMax(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->nak_max_; + return mi->nak_max_.get(); } void MulticastInst_SetNakMax(::OpenDDS::DCPS::MulticastInst *mi, size_t value) { @@ -132,7 +138,7 @@ void MulticastInst_SetNakMax(::OpenDDS::DCPS::MulticastInst *mi, size_t value) { } TimeValueWrapper MulticastInst_GetNakTimeout(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->nak_timeout_; + return mi->nak_timeout_.get(); } void MulticastInst_SetNakTimeout(::OpenDDS::DCPS::MulticastInst *mi, TimeValueWrapper value) { @@ -140,7 +146,7 @@ void MulticastInst_SetNakTimeout(::OpenDDS::DCPS::MulticastInst *mi, TimeValueWr } CORBA::Octet MulticastInst_GetTtl(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->ttl_; + return mi->ttl_.get(); } void MulticastInst_SetTtl(::OpenDDS::DCPS::MulticastInst *mi, CORBA::Octet value) { @@ -148,7 +154,7 @@ void MulticastInst_SetTtl(::OpenDDS::DCPS::MulticastInst *mi, CORBA::Octet value } size_t MulticastInst_GetRcvBufferSize(::OpenDDS::DCPS::MulticastInst *mi) { - return mi->rcv_buffer_size_; + return mi->rcv_buffer_size_.get(); } void MulticastInst_SetRcvBufferSize(::OpenDDS::DCPS::MulticastInst *mi, size_t value) { diff --git a/Native/OpenDDSWrapper/MulticastInst.h b/Native/OpenDDSWrapper/MulticastInst.h index c07783f57..56f3c5bb7 100644 --- a/Native/OpenDDSWrapper/MulticastInst.h +++ b/Native/OpenDDSWrapper/MulticastInst.h @@ -26,6 +26,7 @@ along with OpenDDSharp. If not, see . #include #include #include +#include EXTERN_METHOD_EXPORT ::OpenDDS::DCPS::MulticastInst *MulticastInst_new(::OpenDDS::DCPS::TransportInst *inst); diff --git a/Native/OpenDDSWrapper/RtpsDiscovery.cpp b/Native/OpenDDSWrapper/RtpsDiscovery.cpp index 106cfe48e..3b2cda0ae 100644 --- a/Native/OpenDDSWrapper/RtpsDiscovery.cpp +++ b/Native/OpenDDSWrapper/RtpsDiscovery.cpp @@ -92,38 +92,30 @@ void RtpsDiscovery_SetTtl(::OpenDDS::RTPS::RtpsDiscovery *d, CORBA::Octet value) } char *RtpsDiscovery_GetSedpLocalAddress(::OpenDDS::RTPS::RtpsDiscovery *d) { - char *buffer = new char[1024]; - - if (d->sedp_local_address().addr_to_string(buffer, 1024) < 0) { + const std::string addr_str = ::OpenDDS::DCPS::LogAddr(d->sedp_local_address()).str(); + if (addr_str.empty()) { return CORBA::string_dup(""); } - std::string ret = CORBA::string_dup(buffer); - delete[] buffer; - - return CORBA::string_dup(ret.c_str()); + return CORBA::string_dup(addr_str.c_str()); } void RtpsDiscovery_SetSedpLocalAddress(::OpenDDS::RTPS::RtpsDiscovery *d, char *value) { - const ACE_INET_Addr addr = static_cast(value); + const ::OpenDDS::DCPS::NetworkAddress addr(value); d->sedp_local_address(addr); } char *RtpsDiscovery_GetSpdpLocalAddress(::OpenDDS::RTPS::RtpsDiscovery *d) { - char *buffer = new char[1024]; - - if (d->spdp_local_address().addr_to_string(buffer, 1024) < 0) { + const std::string addr_str = ::OpenDDS::DCPS::LogAddr(d->spdp_local_address()).str(); + if (addr_str.empty()) { return CORBA::string_dup(""); } - std::string ret = CORBA::string_dup(buffer); - delete[] buffer; - - return CORBA::string_dup(ret.c_str()); + return CORBA::string_dup(addr_str.c_str()); } void RtpsDiscovery_SetSpdpLocalAddress(::OpenDDS::RTPS::RtpsDiscovery *d, char *value) { - const ACE_INET_Addr addr = static_cast(value); + const ::OpenDDS::DCPS::NetworkAddress addr(value); d->spdp_local_address(addr); } @@ -143,33 +135,29 @@ void RtpsDiscovery_SetMulticastInterface(::OpenDDS::RTPS::RtpsDiscovery *d, char d->multicast_interface(value); } -char *RtpsDiscovery_GetDefaultMulticastGroup(::OpenDDS::RTPS::RtpsDiscovery *d) { - char *buffer = new char[1024]; - - if (d->default_multicast_group().addr_to_string(buffer, 1024) < 0) { +char *RtpsDiscovery_GetDefaultMulticastGroup(::OpenDDS::RTPS::RtpsDiscovery *d, int domain_id) { + const std::string addr_str = ::OpenDDS::DCPS::LogAddr(d->default_multicast_group(domain_id)).str(); + if (addr_str.empty()) { return CORBA::string_dup(""); } - std::string ret = CORBA::string_dup(buffer); - delete[] buffer; - - return CORBA::string_dup(ret.c_str()); + return CORBA::string_dup(addr_str.c_str()); } void RtpsDiscovery_SetDefaultMulticastGroup(::OpenDDS::RTPS::RtpsDiscovery *d, char *value) { - const ACE_INET_Addr addr = static_cast(value); + const ::OpenDDS::DCPS::NetworkAddress addr(value); d->default_multicast_group(addr); } void *RtpsDiscovery_GetSpdpSendAddrs(::OpenDDS::RTPS::RtpsDiscovery *d) { - std::vector addrs = d->spdp_send_addrs(); + ::OpenDDS::DCPS::NetworkAddressSet addrs = d->spdp_send_addrs(); size_t size = addrs.size(); TAO::unbounded_basic_string_sequence seq(static_cast(size)); int i = 0; for (auto inst = addrs.begin(); inst != addrs.end(); ++inst) { - seq[i] = inst->c_str(); + seq[i] = ::OpenDDS::DCPS::LogAddr(inst->to_addr()).c_str(); i++; } diff --git a/Native/OpenDDSWrapper/RtpsDiscovery.h b/Native/OpenDDSWrapper/RtpsDiscovery.h index 59c7c25b5..720c3f356 100644 --- a/Native/OpenDDSWrapper/RtpsDiscovery.h +++ b/Native/OpenDDSWrapper/RtpsDiscovery.h @@ -25,6 +25,7 @@ along with OpenDDSharp. If not, see . #include #include +#include #include EXTERN_METHOD_EXPORT @@ -106,7 +107,7 @@ EXTERN_METHOD_EXPORT void RtpsDiscovery_SetMulticastInterface(::OpenDDS::RTPS::RtpsDiscovery *d, char *value); EXTERN_METHOD_EXPORT -char *RtpsDiscovery_GetDefaultMulticastGroup(::OpenDDS::RTPS::RtpsDiscovery *d); +char *RtpsDiscovery_GetDefaultMulticastGroup(::OpenDDS::RTPS::RtpsDiscovery *d, int domain_id); EXTERN_METHOD_EXPORT void RtpsDiscovery_SetDefaultMulticastGroup(::OpenDDS::RTPS::RtpsDiscovery *d, char *value); diff --git a/Native/OpenDDSWrapper/RtpsUdpInst.cpp b/Native/OpenDDSWrapper/RtpsUdpInst.cpp index 2cedb1268..eacee4076 100644 --- a/Native/OpenDDSWrapper/RtpsUdpInst.cpp +++ b/Native/OpenDDSWrapper/RtpsUdpInst.cpp @@ -37,97 +37,100 @@ CORBA::Boolean RtpsUdpInst_GetRequiresCdr(::OpenDDS::DCPS::RtpsUdpInst *ri) { } CORBA::Int32 RtpsUdpInst_GetSendBufferSize(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->send_buffer_size_; + return ri->send_buffer_size_.get(); } void RtpsUdpInst_SetSendBufferSize(::OpenDDS::DCPS::RtpsUdpInst *ri, CORBA::Int32 value) { - ri->send_buffer_size_ = value; + ri->send_buffer_size(value); } CORBA::Int32 RtpsUdpInst_GetRcvBufferSize(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->rcv_buffer_size_; + return ri->rcv_buffer_size(); } void RtpsUdpInst_SetRcvBufferSize(::OpenDDS::DCPS::RtpsUdpInst *ri, CORBA::Int32 value) { - ri->rcv_buffer_size_ = value; + ri->rcv_buffer_size(value); } size_t RtpsUdpInst_GetNakDepth(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->nak_depth_; + return ri->nak_depth(); } void RtpsUdpInst_SetNakDepth(::OpenDDS::DCPS::RtpsUdpInst *ri, size_t value) { - ri->nak_depth_ = value; + ri->nak_depth(value); } CORBA::Boolean RtpsUdpInst_GetUseMulticast(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->use_multicast_; + return ri->use_multicast(); } void RtpsUdpInst_SetUseMulticast(::OpenDDS::DCPS::RtpsUdpInst *ri, CORBA::Boolean value) { - ri->use_multicast_ = value; + ri->use_multicast(value); } CORBA::Octet RtpsUdpInst_GetTtl(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->ttl_; + return ri->ttl(); } void RtpsUdpInst_SetTtl(::OpenDDS::DCPS::RtpsUdpInst *ri, CORBA::Octet value) { - ri->ttl_ = value; + ri->ttl(value); } -char *RtpsUdpInst_GetMulticastGroupAddress(::OpenDDS::DCPS::RtpsUdpInst *ri) { - char *buffer = new char[512]; - ri->multicast_group_address().to_addr().addr_to_string(buffer, 512); +char *RtpsUdpInst_GetMulticastGroupAddress(::OpenDDS::DCPS::RtpsUdpInst *ri, int domain_id) { + const std::string addr_str = ::OpenDDS::DCPS::LogAddr(ri->multicast_group_address(domain_id)).str(); + if (addr_str.empty()) { + return CORBA::string_dup(""); + } - return CORBA::string_dup(buffer); + return CORBA::string_dup(addr_str.c_str()); } void RtpsUdpInst_SetMulticastGroupAddress(::OpenDDS::DCPS::RtpsUdpInst *ri, char *value) { - const OpenDDS::DCPS::NetworkAddress addr = static_cast(value); + const OpenDDS::DCPS::NetworkAddress addr(value); ri->multicast_group_address(addr); } char *RtpsUdpInst_GetMulticastInterface(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return CORBA::string_dup(ri->multicast_interface_.c_str()); + return CORBA::string_dup(ri->multicast_interface().c_str()); } void RtpsUdpInst_SetMulticastInterface(::OpenDDS::DCPS::RtpsUdpInst *ri, char *value) { - ri->multicast_interface_ = value; + ri->multicast_interface(value); } char *RtpsUdpInst_GetLocalAddress(::OpenDDS::DCPS::RtpsUdpInst *ri) { - char *buffer = new char[512]; - ri->local_address().to_addr().addr_to_string(buffer, 512); - - return CORBA::string_dup(buffer); + const std::string addr_str = ::OpenDDS::DCPS::LogAddr(ri->local_address()).str(); + if (addr_str.empty()) { + return CORBA::string_dup(""); + } + return CORBA::string_dup(addr_str.c_str()); } void RtpsUdpInst_SetLocalAddress(::OpenDDS::DCPS::RtpsUdpInst *ri, char *value) { - const OpenDDS::DCPS::NetworkAddress addr = static_cast(value); + const OpenDDS::DCPS::NetworkAddress addr(value); ri->local_address(addr); } TimeValueWrapper RtpsUdpInst_GetNakResponseDelay(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->nak_response_delay_; + return ri->nak_response_delay(); } void RtpsUdpInst_SetNakResponseDelay(::OpenDDS::DCPS::RtpsUdpInst *ri, TimeValueWrapper value) { - ri->nak_response_delay_ = value; + ri->nak_response_delay(value); } TimeValueWrapper RtpsUdpInst_GetHeartbeatPeriod(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->heartbeat_period_; + return ri->heartbeat_period(); } void RtpsUdpInst_SetHeartbeatPeriod(::OpenDDS::DCPS::RtpsUdpInst *ri, TimeValueWrapper value) { - ri->heartbeat_period_ = value; + ri->heartbeat_period(value); } TimeValueWrapper RtpsUdpInst_GetReceiveAddressDuration(::OpenDDS::DCPS::RtpsUdpInst *ri) { - return ri->receive_address_duration_; + return ri->receive_address_duration(); } void RtpsUdpInst_SetReceiveAddressDuration(::OpenDDS::DCPS::RtpsUdpInst *ri, TimeValueWrapper value) { - ri->receive_address_duration_ = value; + ri->receive_address_duration(value); } \ No newline at end of file diff --git a/Native/OpenDDSWrapper/RtpsUdpInst.h b/Native/OpenDDSWrapper/RtpsUdpInst.h index 83f1ccb1e..395b6e334 100644 --- a/Native/OpenDDSWrapper/RtpsUdpInst.h +++ b/Native/OpenDDSWrapper/RtpsUdpInst.h @@ -26,6 +26,7 @@ along with OpenDDSharp. If not, see . #include #include #include +#include EXTERN_METHOD_EXPORT ::OpenDDS::DCPS::RtpsUdpInst *RtpsUdpInst_new(::OpenDDS::DCPS::TransportInst *inst); @@ -67,7 +68,7 @@ EXTERN_METHOD_EXPORT void RtpsUdpInst_SetTtl(::OpenDDS::DCPS::RtpsUdpInst *ri, CORBA::Octet value); EXTERN_METHOD_EXPORT -char *RtpsUdpInst_GetMulticastGroupAddress(::OpenDDS::DCPS::RtpsUdpInst *ri); +char *RtpsUdpInst_GetMulticastGroupAddress(::OpenDDS::DCPS::RtpsUdpInst *ri, int domain_id); EXTERN_METHOD_EXPORT void RtpsUdpInst_SetMulticastGroupAddress(::OpenDDS::DCPS::RtpsUdpInst *ri, char *value); diff --git a/Native/OpenDDSWrapper/ShmemInst.cpp b/Native/OpenDDSWrapper/ShmemInst.cpp index 4e2e31da9..c90a522db 100644 --- a/Native/OpenDDSWrapper/ShmemInst.cpp +++ b/Native/OpenDDSWrapper/ShmemInst.cpp @@ -33,19 +33,19 @@ CORBA::Boolean ShmemInst_GetIsReliable(::OpenDDS::DCPS::ShmemInst *si) { } size_t ShmemInst_GetPoolSize(::OpenDDS::DCPS::ShmemInst *si) { - return si->pool_size_; + return si->pool_size(); } void ShmemInst_SetPoolSize(::OpenDDS::DCPS::ShmemInst *si, size_t value) { - si->pool_size_ = value; + si->pool_size(value); } size_t ShmemInst_GetDatalinkControlSize(::OpenDDS::DCPS::ShmemInst *si) { - return si->datalink_control_size_; + return si->datalink_control_size(); } void ShmemInst_SetDatalinkControlSize(::OpenDDS::DCPS::ShmemInst *si, size_t value) { - si->datalink_control_size_ = value; + si->datalink_control_size(value); } char *ShmemInst_GetHostName(::OpenDDS::DCPS::ShmemInst *si) { diff --git a/Native/OpenDDSWrapper/TcpInst.cpp b/Native/OpenDDSWrapper/TcpInst.cpp index 96601420e..976f11663 100644 --- a/Native/OpenDDSWrapper/TcpInst.cpp +++ b/Native/OpenDDSWrapper/TcpInst.cpp @@ -33,63 +33,63 @@ CORBA::Boolean TcpInst_GetIsReliable(::OpenDDS::DCPS::TcpInst *ti) { } CORBA::Boolean TcpInst_GetEnableNagleAlgorithm(::OpenDDS::DCPS::TcpInst *ti) { - return ti->enable_nagle_algorithm_; + return ti->enable_nagle_algorithm(); } void TcpInst_SetEnableNagleAlgorithm(::OpenDDS::DCPS::TcpInst *ti, CORBA::Boolean value) { - ti->enable_nagle_algorithm_ = value; + ti->enable_nagle_algorithm(value); } CORBA::Long TcpInst_GetConnRetryInitialDelay(::OpenDDS::DCPS::TcpInst *ti) { - return ti->conn_retry_initial_delay_; + return ti->conn_retry_initial_delay(); } void TcpInst_SetConnRetryInitialDelay(::OpenDDS::DCPS::TcpInst *ti, CORBA::Long value) { - ti->conn_retry_initial_delay_ = value; + ti->conn_retry_initial_delay(value); } CORBA::Double TcpInst_GetConnRetryBackoffMultiplier(::OpenDDS::DCPS::TcpInst *ti) { - return ti->conn_retry_backoff_multiplier_; + return ti->conn_retry_backoff_multiplier(); } void TcpInst_SetConnRetryBackoffMultiplier(::OpenDDS::DCPS::TcpInst *ti, CORBA::Double value) { - ti->conn_retry_backoff_multiplier_ = value; + ti->conn_retry_backoff_multiplier(value); } CORBA::Long TcpInst_GetConnRetryAttempts(::OpenDDS::DCPS::TcpInst *ti) { - return ti->conn_retry_attempts_; + return ti->conn_retry_attempts(); } void TcpInst_SetConnRetryAttempts(::OpenDDS::DCPS::TcpInst *ti, CORBA::Long value) { - ti->conn_retry_attempts_ = value; + ti->conn_retry_attempts(value); } CORBA::Long TcpInst_GetMaxOutputPausePeriod(::OpenDDS::DCPS::TcpInst *ti) { - return ti->max_output_pause_period_; + return ti->max_output_pause_period(); } void TcpInst_SetMaxOutputPausePeriod(::OpenDDS::DCPS::TcpInst *ti, CORBA::Long value) { - ti->max_output_pause_period_ = value; + ti->max_output_pause_period(value); } CORBA::Long TcpInst_GetPassiveReconnectDuration(::OpenDDS::DCPS::TcpInst *ti) { - return ti->passive_reconnect_duration_; + return ti->passive_reconnect_duration(); } void TcpInst_SetPassiveReconnectDuration(::OpenDDS::DCPS::TcpInst *ti, CORBA::Long value) { - ti->passive_reconnect_duration_ = value; + ti->passive_reconnect_duration(value); } char *TcpInst_GetPublicAddress(::OpenDDS::DCPS::TcpInst *ti) { - return CORBA::string_dup(ti->get_public_address().c_str()); + return CORBA::string_dup(ti->pub_address_str().c_str()); } void TcpInst_SetPublicAddress(::OpenDDS::DCPS::TcpInst *ti, char *value) { - ti->pub_address_str_ = value; + ti->pub_address_str(value); } char *TcpInst_GetLocalAddress(::OpenDDS::DCPS::TcpInst *ti) { - return CORBA::string_dup(ti->local_address_string().c_str()); + return CORBA::string_dup(ti->local_address().c_str()); } void TcpInst_SetLocalAddress(::OpenDDS::DCPS::TcpInst *ti, char *value) { diff --git a/Native/OpenDDSWrapper/TimeValueWrapper.h b/Native/OpenDDSWrapper/TimeValueWrapper.h index 3714f35ec..43c1edc90 100644 --- a/Native/OpenDDSWrapper/TimeValueWrapper.h +++ b/Native/OpenDDSWrapper/TimeValueWrapper.h @@ -19,20 +19,17 @@ along with OpenDDSharp. If not, see . **********************************************************************/ #pragma once -#include "Utils.h" -#include "dds/DCPS/TimeDuration.h" +#include -EXTERN_STRUCT_EXPORT TimeValueWrapper { - ::CORBA::LongLong sec; - ::CORBA::Long microsec; +static_assert(true); +#pragma pack(push) +#pragma pack(1) +extern "C" struct TimeValueWrapper { + ::CORBA::LongLong sec = 0; + ::CORBA::Long microsec = 0; public: - TimeValueWrapper() { - sec = 0; - microsec = 0; - } - TimeValueWrapper(const ::OpenDDS::DCPS::TimeDuration td) { sec = td.value().sec(); microsec = td.value().usec(); @@ -42,3 +39,4 @@ EXTERN_STRUCT_EXPORT TimeValueWrapper { return ::OpenDDS::DCPS::TimeDuration(sec, microsec); } }; +#pragma pack(pop) diff --git a/Native/OpenDDSWrapper/TransportConfig.cpp b/Native/OpenDDSWrapper/TransportConfig.cpp index 1e27db4f3..83de0b4a6 100644 --- a/Native/OpenDDSWrapper/TransportConfig.cpp +++ b/Native/OpenDDSWrapper/TransportConfig.cpp @@ -38,11 +38,12 @@ void TransportConfig_SetSwapBytes(::OpenDDS::DCPS::TransportConfig *cfg, CORBA:: } CORBA::UInt32 TransportConfig_GetPassiveConnectDuration(::OpenDDS::DCPS::TransportConfig *cfg) { - return cfg->passive_connect_duration_; + return cfg->passive_connect_duration_.get().value().msec(); } void TransportConfig_SetPassiveConnectDuration(::OpenDDS::DCPS::TransportConfig *cfg, CORBA::UInt32 value) { - cfg->passive_connect_duration_ = value; + ::OpenDDS::DCPS::TimeDuration td(value); + cfg->passive_connect_duration(td); } char *TransportConfig_GetName(::OpenDDS::DCPS::TransportConfig *cfg) { diff --git a/Native/OpenDDSWrapper/TransportConfig.h b/Native/OpenDDSWrapper/TransportConfig.h index 0576ae98e..7f434345e 100644 --- a/Native/OpenDDSWrapper/TransportConfig.h +++ b/Native/OpenDDSWrapper/TransportConfig.h @@ -24,6 +24,7 @@ along with OpenDDSharp. If not, see . #include #include #include +#include "TimeValueWrapper.h" EXTERN_METHOD_EXPORT void TransportConfig_Insert(::OpenDDS::DCPS::TransportConfig *cfg, ::OpenDDS::DCPS::TransportInst *inst); diff --git a/Native/OpenDDSWrapper/UdpInst.cpp b/Native/OpenDDSWrapper/UdpInst.cpp index e1c6a24ca..d2ae5328c 100644 --- a/Native/OpenDDSWrapper/UdpInst.cpp +++ b/Native/OpenDDSWrapper/UdpInst.cpp @@ -33,26 +33,25 @@ CORBA::Boolean UdpInst_GetIsReliable(::OpenDDS::DCPS::UdpInst *ui) { } CORBA::Int32 UdpInst_GetSendBufferSize(::OpenDDS::DCPS::UdpInst *ui) { - return ui->send_buffer_size_; + return ui->send_buffer_size(); } void UdpInst_SetSendBufferSize(::OpenDDS::DCPS::UdpInst *ui, CORBA::Int32 value) { - ui->send_buffer_size_ = value; + ui->send_buffer_size(value); } CORBA::Int32 UdpInst_GetRcvBufferSize(::OpenDDS::DCPS::UdpInst *ui) { - return ui->rcv_buffer_size_; + return ui->rcv_buffer_size(); } void UdpInst_SetRcvBufferSize(::OpenDDS::DCPS::UdpInst *ui, CORBA::Int32 value) { - ui->rcv_buffer_size_ = value; + ui->rcv_buffer_size(value); } char *UdpInst_GetLocalAddress(::OpenDDS::DCPS::UdpInst *ui) { - char *buffer = new char[512]; - ui->local_address().addr_to_string(buffer, 512); + const char* addr_str = CORBA::string_dup(ui->local_address().c_str()); - return CORBA::string_dup(buffer); + return CORBA::string_dup(addr_str); } void UdpInst_SetLocalAddress(::OpenDDS::DCPS::UdpInst *ui, char *value) { diff --git a/Native/OpenDDSWrapper/Utils.h b/Native/OpenDDSWrapper/Utils.h index 435336c9c..155bf0986 100644 --- a/Native/OpenDDSWrapper/Utils.h +++ b/Native/OpenDDSWrapper/Utils.h @@ -22,15 +22,15 @@ along with OpenDDSharp. If not, see . #include "dds/DdsDcpsDomainC.h" #ifndef EXTERN_METHOD_EXPORT -#ifdef _WIN32 -#define EXTERN_METHOD_EXPORT extern "C" __declspec(dllexport) -#else -#define EXTERN_METHOD_EXPORT extern "C" -#endif + #ifdef _WIN32 + #define EXTERN_METHOD_EXPORT extern "C" __declspec(dllexport) + #else + #define EXTERN_METHOD_EXPORT extern "C" + #endif #endif #ifndef EXTERN_STRUCT_EXPORT -#define EXTERN_STRUCT_EXPORT extern "C" struct + #define EXTERN_STRUCT_EXPORT extern "C" struct #endif EXTERN_METHOD_EXPORT void Utils_CreateOctetSeq(unsigned char bytes[], ::DDS::OctetSeq *seq); diff --git a/Native/OpenDDSharp.IdlGenerator.nuspec b/Native/OpenDDSharp.IdlGenerator.nuspec index 5eb688908..a259b9a1f 100644 --- a/Native/OpenDDSharp.IdlGenerator.nuspec +++ b/Native/OpenDDSharp.IdlGenerator.nuspec @@ -13,7 +13,7 @@ false OpenDDSharp IDL Generator Jose Morato - OpenDDSharp OpenDDS DDS IDL CodeGenerator + OpenDDSharp;OpenDDS;DDS;IDL;CodeGenerator @@ -30,6 +30,7 @@ + @@ -37,6 +38,7 @@ + @@ -48,6 +50,7 @@ + @@ -55,15 +58,18 @@ + + + @@ -74,6 +80,7 @@ + @@ -81,6 +88,7 @@ + @@ -91,6 +99,7 @@ + @@ -98,6 +107,7 @@ + diff --git a/Native/OpenDDSharp.IdlGenerator.targets b/Native/OpenDDSharp.IdlGenerator.targets index d05952694..7ec024caf 100644 --- a/Native/OpenDDSharp.IdlGenerator.targets +++ b/Native/OpenDDSharp.IdlGenerator.targets @@ -188,11 +188,11 @@ - + - + diff --git a/Native/OpenDDSharp.IdlGenerator/CMakeLists.txt b/Native/OpenDDSharp.IdlGenerator/CMakeLists.txt index 3622a08a5..a8d78a35c 100644 --- a/Native/OpenDDSharp.IdlGenerator/CMakeLists.txt +++ b/Native/OpenDDSharp.IdlGenerator/CMakeLists.txt @@ -1,8 +1,11 @@ project(openddsharp_idl CXX) cmake_minimum_required(VERSION 3.8.2) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + if (APPLE) - set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) endif () diff --git a/Patches/ConditionImpl.h.patch b/Patches/ConditionImpl.h.patch deleted file mode 100644 index 6cb6ab937..000000000 --- a/Patches/ConditionImpl.h.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/dds/DCPS/ConditionImpl.h b/dds/DCPS/ConditionImpl.h -index e2fc6dd22..20374395a 100644 ---- a/dds/DCPS/ConditionImpl.h -+++ b/dds/DCPS/ConditionImpl.h -@@ -24,7 +24,7 @@ OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL - namespace OpenDDS { - namespace DCPS { - --class ConditionImpl -+class OpenDDS_Dcps_Export ConditionImpl - : public virtual OpenDDS::DCPS::LocalObject { - public: - DDS::ReturnCode_t attach_to_ws(DDS::WaitSet_ptr ws); diff --git a/Patches/RtpsDiscoveryConfig.patch b/Patches/RtpsDiscoveryConfig.patch new file mode 100644 index 000000000..d6986c308 --- /dev/null +++ b/Patches/RtpsDiscoveryConfig.patch @@ -0,0 +1,70 @@ +From 476821173b736c5d3c99f87f92e78979389229e8 Mon Sep 17 00:00:00 2001 +From: jose_morato +Date: Thu, 27 Jun 2024 15:51:29 +0200 +Subject: [PATCH 1/2] [fix] RtpsDiscoveryConfig RESEND_PERIOD + +--- + dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp b/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp +index cb31a6e9b..2d9f9e25d 100644 +--- a/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp ++++ b/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp +@@ -32,7 +32,7 @@ RtpsDiscoveryConfig::resend_period() const + // see RTPS v2.1 9.6.1.4.2 + return TheServiceParticipant->config_store()->get(config_key("RESEND_PERIOD").c_str(), + TimeDuration(30 /*seconds*/), +- DCPS::ConfigStoreImpl::Format_IntegerSeconds); ++ DCPS::ConfigStoreImpl::Format_IntegerMilliseconds); + } + + void +@@ -40,7 +40,7 @@ RtpsDiscoveryConfig::resend_period(const DCPS::TimeDuration& period) + { + TheServiceParticipant->config_store()->set(config_key("RESEND_PERIOD").c_str(), + period, +- DCPS::ConfigStoreImpl::Format_IntegerSeconds); ++ DCPS::ConfigStoreImpl::Format_IntegerMilliseconds); + } + + double +-- +2.39.3 (Apple Git-146) + + +From a9f90c6bb57372210b7ccc1d7672ffe85b729f7a Mon Sep 17 00:00:00 2001 +From: jose_morato +Date: Thu, 27 Jun 2024 17:42:33 +0200 +Subject: [PATCH 2/2] Use Format_FractionalSeconds instead of + Format_IntegerMilliseconds + +--- + dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp b/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp +index 2d9f9e25d..b3b142ff2 100644 +--- a/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp ++++ b/dds/DCPS/RTPS/RtpsDiscoveryConfig.cpp +@@ -32,7 +32,7 @@ RtpsDiscoveryConfig::resend_period() const + // see RTPS v2.1 9.6.1.4.2 + return TheServiceParticipant->config_store()->get(config_key("RESEND_PERIOD").c_str(), + TimeDuration(30 /*seconds*/), +- DCPS::ConfigStoreImpl::Format_IntegerMilliseconds); ++ DCPS::ConfigStoreImpl::Format_FractionalSeconds); + } + + void +@@ -40,7 +40,7 @@ RtpsDiscoveryConfig::resend_period(const DCPS::TimeDuration& period) + { + TheServiceParticipant->config_store()->set(config_key("RESEND_PERIOD").c_str(), + period, +- DCPS::ConfigStoreImpl::Format_IntegerMilliseconds); ++ DCPS::ConfigStoreImpl::Format_FractionalSeconds); + } + + double +-- +2.39.3 (Apple Git-146) + diff --git a/Patches/WaitSetLivelinessLost.patch b/Patches/WaitSetLivelinessLost.patch deleted file mode 100644 index 7a12b8c50..000000000 --- a/Patches/WaitSetLivelinessLost.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: dds/DCPS/DataWriterImpl.cpp -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/dds/DCPS/DataWriterImpl.cpp b/dds/DCPS/DataWriterImpl.cpp ---- a/dds/DCPS/DataWriterImpl.cpp (revision 0d85140f59fcda8fa38064ca280e73e1b99702bf) -+++ b/dds/DCPS/DataWriterImpl.cpp (revision 608c8f4d46107373bc66e7cbd4b638e4533b3440) -@@ -2521,6 +2521,9 @@ - ++liveliness_lost_status_.total_count; - ++liveliness_lost_status_.total_count_change; - -+ set_status_changed_flag(DDS::LIVELINESS_LOST_STATUS, true); -+ notify_status_condition(); -+ - DDS::DataWriterListener_var listener = listener_for(DDS::LIVELINESS_LOST_STATUS); - - if (!CORBA::is_nil(listener.in())) { diff --git a/Patches/configure.patch b/Patches/configure.patch new file mode 100644 index 000000000..0adf7b38a --- /dev/null +++ b/Patches/configure.patch @@ -0,0 +1,22 @@ +From df9e1b8a7b69a2a577ad7342d722c46acce02ae5 Mon Sep 17 00:00:00 2001 +From: Adam Mitz +Date: Thu, 6 Jun 2024 21:27:47 +0000 +Subject: [PATCH] configure: updated for Visual Studio 2022 17.10 version of cl + +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 619d7ae87f..7b7732633b 100755 +--- a/configure ++++ b/configure +@@ -62,7 +62,7 @@ my %platforminfo = + 'cl_versions' => {13.1 => 'vc71', 14 => 'vc8', 15 => 'vc9', + 16 => 'vc10', 17 => 'vc11', 18 => 'vc12', + 19 => 'vc14', 19.1 => 'vs2017', +- 19.2 => 'vs2019', 19.3 => 'vs2022'}, ++ 19.2 => 'vs2019', 19.3 => 'vs2022', 19.4 => 'vs2022'}, + 'cl_archs' => {'x64' => 1, 'Win32' => 1, 'ARM64' => 0, 'ARM' => 0}, # 1 if supported + }, + 'macos' => { diff --git a/README.md b/README.md index 422757206..ddcfa6598 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ OpenDDS Website: [https://www.opendds.org](https://www.opendds.org) OpenDDS Repository: [https://github.com/OpenDDS/OpenDDS](https://github.com/OpenDDS/OpenDDS) OpenDDS Documentation: [https://opendds.readthedocs.io](https://opendds.readthedocs.io/en/latest/) -OpenDDSharp has been compiled with OpenDDS v3.25 +OpenDDSharp has been compiled with OpenDDS v3.28.1 | Package | NuGet | |----------------------------------------------------------|------------------------------------------------------------------| diff --git a/Sources/OpenDDSharp.BuildTasks/OpenDDSharp.BuildTasks.csproj b/Sources/OpenDDSharp.BuildTasks/OpenDDSharp.BuildTasks.csproj index 7227c0919..b205b5a75 100644 --- a/Sources/OpenDDSharp.BuildTasks/OpenDDSharp.BuildTasks.csproj +++ b/Sources/OpenDDSharp.BuildTasks/OpenDDSharp.BuildTasks.csproj @@ -10,11 +10,11 @@ - - + + - + all @@ -25,7 +25,7 @@ all - + all diff --git a/Sources/OpenDDSharp.Marshaller/OpenDDSharp.Marshaller.csproj b/Sources/OpenDDSharp.Marshaller/OpenDDSharp.Marshaller.csproj index 303c033ac..a3cb73725 100644 --- a/Sources/OpenDDSharp.Marshaller/OpenDDSharp.Marshaller.csproj +++ b/Sources/OpenDDSharp.Marshaller/OpenDDSharp.Marshaller.csproj @@ -23,7 +23,7 @@ https://github.com/jmmorato/openddsharp https://github.com/jmmorato/openddsharp/blob/master/NEWS.md icon_128.png - OpenDDSharp DDS OpenDDS + OpenDDSharp;DDS;OpenDDS false @@ -35,12 +35,12 @@ - + - + all @@ -51,7 +51,7 @@ all - + all diff --git a/Sources/OpenDDSharp.Native/OpenDDSharp.Native.csproj b/Sources/OpenDDSharp.Native/OpenDDSharp.Native.csproj index addf86525..2b93ffb5a 100644 --- a/Sources/OpenDDSharp.Native/OpenDDSharp.Native.csproj +++ b/Sources/OpenDDSharp.Native/OpenDDSharp.Native.csproj @@ -28,7 +28,7 @@ https://github.com/jmmorato/openddsharp https://github.com/jmmorato/openddsharp/blob/master/NEWS.md icon_128.png - OpenDDSharp DDS OpenDDS + OpenDDSharp;DDS;OpenDDS false 1.0.0 LICENSE.txt diff --git a/Sources/OpenDDSharp.Templates/OpenDDSharp.Templates.csproj b/Sources/OpenDDSharp.Templates/OpenDDSharp.Templates.csproj index be7a8ecc1..f16128896 100644 --- a/Sources/OpenDDSharp.Templates/OpenDDSharp.Templates.csproj +++ b/Sources/OpenDDSharp.Templates/OpenDDSharp.Templates.csproj @@ -9,7 +9,7 @@ Jose Morato Project templates for OpenDDSharp git - IDL, OpenDDS, OpenDDSharp, DDS + IDL;OpenDDS;OpenDDSharp;DDS OpenDDSharp Copyright © Jose Morato 2018. All rights reserved. https://www.openddsharp.com diff --git a/Sources/OpenDDSharp/OpenDDS/DCPS/RtpsUdpInst.cs b/Sources/OpenDDSharp/OpenDDS/DCPS/RtpsUdpInst.cs index b7f8e27dd..dd9d0ebbb 100644 --- a/Sources/OpenDDSharp/OpenDDS/DCPS/RtpsUdpInst.cs +++ b/Sources/OpenDDSharp/OpenDDS/DCPS/RtpsUdpInst.cs @@ -53,7 +53,7 @@ public class RtpsUdpInst : TransportInst public bool RequiresCdr => GetRequiresCdr(); /// - /// Gets or sets the total send bufer size in bytes for UDP payload. + /// Gets or sets the total send buffer size in bytes for UDP payload. /// The default value is the platform value of /// ACE_DEFAULT_MAX_SOCKET_BUFSIZ. /// @@ -64,7 +64,7 @@ public int SendBufferSize } /// - /// Gets or sets the total receive bufer size in bytes for UDP payload. + /// Gets or sets the total receive buffer size in bytes for UDP payload. /// The default value is the platform value of /// ACE_DEFAULT_MAX_SOCKET_BUFSIZ. /// @@ -99,7 +99,7 @@ public bool UseMulticast /// /// Gets or sets the value of the time-to-live (ttl) field of any - /// multicast datagrams sent. This value specifes the + /// multicast datagrams sent. This value specifies the /// number of hops the datagram will traverse before /// being discarded by the network. The default value /// of 1 means that all data is restricted to the local @@ -111,19 +111,6 @@ public byte Ttl set => SetTtl(value); } - /// - /// Gets or sets the multicast group address. - /// When the transport is set to multicast, this is the - /// multicast network address that should be used. If - /// no port is specified for the network address, port - /// 7401 will be used. The default value is 239.255.0.2:7401. - /// - public string MulticastGroupAddress - { - get => GetMulticastGroupAddress(); - set => SetMulticastGroupAddress(value); - } - /// /// Gets or sets the network interface to be used by this /// transport instance. This uses a platform-specific @@ -169,7 +156,7 @@ public TimeValue HeartbeatPeriod } /// - /// Gets or sets the receive address timeout. + /// Gets or sets the reception address timeout. /// The default value is 5 seconds. /// public TimeValue ReceiveAddressDuration @@ -198,6 +185,39 @@ public RtpsUdpInst(TransportInst inst) : base(inst?.ToNative() ?? IntPtr.Zero) #endregion #region Methods + /// + /// Gets or sets the multicast group address. + /// When the transport is set to multicast, this is the + /// multicast network address that should be used. If + /// no port is specified for the network address, port + /// 7401 will be used. The default value is 239.255.0.2:7401. + /// + /// The domain ID. + /// The string representation of the address. + public string GetMulticastGroupAddress(int domainId) + { + return Marshal.PtrToStringAnsi(UnsafeNativeMethods.GetMulticastGroupAddress(_native, domainId)); + } + + /// + /// Sets the multicast group address. + /// When the transport is set to multicast, this is the + /// multicast network address that should be used. If + /// no port is specified for the network address, port + /// 7401 will be used. The default value is 239.255.0.2:7401. + /// + /// The string representation of the address. + public void SetMulticastGroupAddress(string value) + { + var full = value; + if (!full.Contains(":")) + { + full += ":0"; + } + + UnsafeNativeMethods.SetMulticastGroupAddress(_native, full); + } + private bool GetIsReliable() { return UnsafeNativeMethods.RtpsUdpInstGetIsReliable(_native); @@ -258,22 +278,6 @@ private void SetTtl(byte value) UnsafeNativeMethods.RtpsUdpInstSetTtl(_native, value); } - private string GetMulticastGroupAddress() - { - return Marshal.PtrToStringAnsi(UnsafeNativeMethods.GetMulticastGroupAddress(_native)); - } - - private void SetMulticastGroupAddress(string value) - { - string full = value; - if (!full.Contains(":")) - { - full += ":0"; - } - - UnsafeNativeMethods.SetMulticastGroupAddress(_native, full); - } - private string GetMulticastInterface() { return Marshal.PtrToStringAnsi(UnsafeNativeMethods.GetMulticastInterface(_native)); @@ -408,7 +412,7 @@ internal static partial class UnsafeNativeMethods [SuppressUnmanagedCodeSecurity] [LibraryImport(MarshalHelper.API_DLL, EntryPoint = "RtpsUdpInst_GetMulticastGroupAddress")] [UnmanagedCallConv(CallConvs = new[] { typeof(CallConvCdecl) })] - public static partial IntPtr GetMulticastGroupAddress(IntPtr ird); + public static partial IntPtr GetMulticastGroupAddress(IntPtr ird, int domainId); [SuppressUnmanagedCodeSecurity] [LibraryImport(MarshalHelper.API_DLL, EntryPoint = "RtpsUdpInst_SetMulticastGroupAddress", StringMarshalling = StringMarshalling.Utf8)] @@ -519,7 +523,7 @@ internal static partial class UnsafeNativeMethods [SuppressUnmanagedCodeSecurity] [DllImport(MarshalHelper.API_DLL, EntryPoint = "RtpsUdpInst_GetMulticastGroupAddress", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern IntPtr GetMulticastGroupAddress(IntPtr ird); + public static extern IntPtr GetMulticastGroupAddress(IntPtr ird, int domainId); [SuppressUnmanagedCodeSecurity] [DllImport(MarshalHelper.API_DLL, EntryPoint = "RtpsUdpInst_SetMulticastGroupAddress", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)] diff --git a/Sources/OpenDDSharp/OpenDDS/RTPS/RtpsDiscovery.cs b/Sources/OpenDDSharp/OpenDDS/RTPS/RtpsDiscovery.cs index c0582c3b1..a985cfe23 100644 --- a/Sources/OpenDDSharp/OpenDDS/RTPS/RtpsDiscovery.cs +++ b/Sources/OpenDDSharp/OpenDDS/RTPS/RtpsDiscovery.cs @@ -98,7 +98,7 @@ public ushort DG /// The default value is 2. /// /// - /// The port gain assists in confguring SPDP Unicast + /// The port gain assists in configuring SPDP Unicast /// ports and serves as an offset multiplier as /// participants are assigned addresses using the /// formula: PB + DG * domainId + d1 + PG * participantId. @@ -129,7 +129,7 @@ public ushort D0 /// The default value is 10. /// /// - /// The offset one assists in providing an ofset + /// The offset one assists in providing an offset /// for calculating an assignable port in SPDP Unicast /// configurations. The formula used is: PB + DG * domainId + d1 + PG * participantId. /// @@ -196,7 +196,7 @@ public string SpdpLocalAddress /// /// Gets or sets a value indicating whether - /// Multicast is used for the SEDP trafic. When set to true, + /// Multicast is used for the SEDP traffic. When set to true, /// Multicast is used. When set to false Unicast for /// SEDP is used. The default value is true. /// @@ -217,31 +217,13 @@ public string MulticastInterface set => SetMulticastInterface(value); } - /// - /// Gets or sets a network address specifying the multicast group to - /// be used for SPDP discovery. The default value is 239.255.0.1. - /// - /// - /// This overrides the interoperability group of the specification. - /// It can be used, for example, to specify use of a routed group - /// address to provide a larger discovery scope. - /// - public string DefaultMulticastGroup - { - get => GetDefaultMulticastGroup(); - set => SetDefaultMulticastGroup(value); - } - /// /// Gets a list (comma or whitespace separated) of host:port /// pairs used as destinations for SPDP content. This /// can be a combination of Unicast and Multicast /// addresses. /// - public IEnumerable SpdpSendAddrs - { - get => GetSpdpSendAddrs(); - } + public IEnumerable SpdpSendAddrs => GetSpdpSendAddrs(); /// /// Gets or sets the specific network interface to use when @@ -273,6 +255,42 @@ public RtpsDiscovery(string key) #endregion #region Methods + /// + /// Gets the network address specifying the multicast group to + /// be used for SPDP discovery. The default value is '239.255.0.1'. + /// + /// The domain Id. + /// + /// This overrides the interoperability group of the specification. + /// It can be used, for example, to specify use of a routed group + /// address to provide a larger discovery scope. + /// + /// The network address string representation + public string GetDefaultMulticastGroup(int domainId) + { + return Marshal.PtrToStringAnsi(UnsafeNativeMethods.GetDefaultMulticastGroup(_native, domainId)); + } + + /// + /// Sets the network address specifying the multicast group to + /// be used for SPDP discovery. The default value is '239.255.0.1'. + /// + /// The network address string represenation + /// + /// This overrides the interoperability group of the specification. + /// It can be used, for example, to specify use of a routed group + /// address to provide a larger discovery scope. + /// + public void SetDefaultMulticastGroup(string value) + { + var full = value; + if (!full.Contains(":")) + { + full += ":0"; + } + UnsafeNativeMethods.SetDefaultMulticastGroup(_native, full); + } + private TimeValue GetResendPeriod() { return UnsafeNativeMethods.GetResendPeriod(_native); @@ -403,21 +421,6 @@ private void SetMulticastInterface(string value) UnsafeNativeMethods.SetMulticastInterface(_native, value); } - private string GetDefaultMulticastGroup() - { - return Marshal.PtrToStringAnsi(UnsafeNativeMethods.GetDefaultMulticastGroup(_native)); - } - - private void SetDefaultMulticastGroup(string value) - { - string full = value; - if (!full.Contains(":")) - { - full += ":0"; - } - UnsafeNativeMethods.SetDefaultMulticastGroup(_native, full); - } - private IEnumerable GetSpdpSendAddrs() { IList addrs = new List(); @@ -586,7 +589,7 @@ internal static partial class UnsafeNativeMethods [SuppressUnmanagedCodeSecurity] [LibraryImport(MarshalHelper.API_DLL, EntryPoint = "RtpsDiscovery_GetDefaultMulticastGroup")] [UnmanagedCallConv(CallConvs = new[] { typeof(CallConvCdecl) })] - public static partial IntPtr GetDefaultMulticastGroup(IntPtr ird); + public static partial IntPtr GetDefaultMulticastGroup(IntPtr ird, int domainId); [SuppressUnmanagedCodeSecurity] [LibraryImport(MarshalHelper.API_DLL, EntryPoint = "RtpsDiscovery_SetDefaultMulticastGroup", StringMarshalling = StringMarshalling.Utf8)] @@ -716,7 +719,7 @@ internal static partial class UnsafeNativeMethods [SuppressUnmanagedCodeSecurity] [DllImport(MarshalHelper.API_DLL, EntryPoint = "RtpsDiscovery_GetDefaultMulticastGroup", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr GetDefaultMulticastGroup(IntPtr ird); + public static extern IntPtr GetDefaultMulticastGroup(IntPtr ird, int domainId); [SuppressUnmanagedCodeSecurity] [DllImport(MarshalHelper.API_DLL, EntryPoint = "RtpsDiscovery_SetDefaultMulticastGroup", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)] diff --git a/Sources/OpenDDSharp/OpenDDSharp.csproj b/Sources/OpenDDSharp/OpenDDSharp.csproj index 3ce529d87..12d25946c 100644 --- a/Sources/OpenDDSharp/OpenDDSharp.csproj +++ b/Sources/OpenDDSharp/OpenDDSharp.csproj @@ -30,7 +30,7 @@ https://github.com/jmmorato/openddsharp https://github.com/jmmorato/openddsharp/blob/master/NEWS.md icon_128.png - OpenDDSharp DDS OpenDDS + OpenDDSharp;DDS;OpenDDS false @@ -42,7 +42,7 @@ - + all @@ -53,11 +53,11 @@ all - + all - + all diff --git a/Sources/OpenDDSharp/TimeValue.cs b/Sources/OpenDDSharp/TimeValue.cs index 90990087a..b7f98f78e 100644 --- a/Sources/OpenDDSharp/TimeValue.cs +++ b/Sources/OpenDDSharp/TimeValue.cs @@ -25,19 +25,32 @@ namespace OpenDDSharp; /// /// Structure for time value representation. /// -[StructLayout(LayoutKind.Sequential)] +[StructLayout(LayoutKind.Sequential, Pack = 1)] public struct TimeValue : IEquatable { + [MarshalAs(UnmanagedType.I8)] + private long _seconds; + [MarshalAs(UnmanagedType.I4)] + private int _microSeconds; + #region Properties /// /// Gets or sets the seconds. /// - public long Seconds { get; set; } + public long Seconds + { + get => _seconds; + set => _seconds = value; + } /// /// Gets or sets the microseconds. /// - public int MicroSeconds { get; set; } + public int MicroSeconds + { + get => _microSeconds; + set => _microSeconds = value; + } #endregion #region IEquatable Members diff --git a/Tests.runsettings b/Tests.runsettings index 99f02d530..d18c1a324 100644 --- a/Tests.runsettings +++ b/Tests.runsettings @@ -16,7 +16,7 @@ cobertura,lcov [OpenDDSharp*]OpenDDSharp.* - [TestIdlStandard]*,[*]OpenDDSharp.BuildTasks.*,[*]OpenDDSharp.UnitTest.* + [TestIdl]*,[*]OpenDDSharp.BuildTasks[*],[*]OpenDDSharp.UnitTest[*],[TestSupportProcessCore]*,[*]BenchmarkPerformance[*],[*]OpenDDSharp.Doc[*] GeneratedCodeAttribute,ExcludeFromCodeCoverageAttribute true true diff --git a/Tests/BenchmarkPerformance/BenchmarkPerformance.csproj b/Tests/BenchmarkPerformance/BenchmarkPerformance.csproj index eb54f70cf..f9c4590de 100644 --- a/Tests/BenchmarkPerformance/BenchmarkPerformance.csproj +++ b/Tests/BenchmarkPerformance/BenchmarkPerformance.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Tests/OpenDDSharp.UnitTest/MulticastInstTest.cs b/Tests/OpenDDSharp.UnitTest/MulticastInstTest.cs index 777864ebf..c4ffc30d4 100644 --- a/Tests/OpenDDSharp.UnitTest/MulticastInstTest.cs +++ b/Tests/OpenDDSharp.UnitTest/MulticastInstTest.cs @@ -162,7 +162,17 @@ public void TestNonDefaultValues() Assert.IsNotNull(mi.SynTimeout); Assert.AreEqual(10, mi.SynTimeout.Seconds); Assert.AreEqual(500000, mi.SynTimeout.MicroSeconds); - Assert.IsTrue(mi.AsyncSend); + + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + Assert.IsTrue(mi.AsyncSend); + } + else + { + // AsyncSend is not supported on Unix platforms and should always be false. + Assert.IsFalse(mi.AsyncSend); + } + Assert.AreEqual(2, mi.Ttl); Assert.AreEqual(64U, mi.DatalinkControlChunks); Assert.AreEqual(20000, mi.DatalinkReleaseDelay); diff --git a/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj b/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj index 2316729ab..865a0c6e3 100644 --- a/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj +++ b/Tests/OpenDDSharp.UnitTest/OpenDDSharp.UnitTest.csproj @@ -3,8 +3,6 @@ true true - net462;net47;net471;net472;net48;net6.0;net7.0;net8.0; - net6.0;net7.0;net8.0; false ..\..\OpenDDSharpRules.ruleset true @@ -15,6 +13,8 @@ true true OpenDDSharp.UnitTest + net462;net47;net471;net472;net48;net6.0;net7.0;net8.0; + net6.0;net7.0;net8.0; false @@ -57,13 +57,13 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + @@ -73,7 +73,7 @@ - + all @@ -81,11 +81,11 @@ all - + all - + all diff --git a/Tests/OpenDDSharp.UnitTest/RtpsDiscoveryTest.cs b/Tests/OpenDDSharp.UnitTest/RtpsDiscoveryTest.cs index 8b46b8b2f..ec72d1210 100644 --- a/Tests/OpenDDSharp.UnitTest/RtpsDiscoveryTest.cs +++ b/Tests/OpenDDSharp.UnitTest/RtpsDiscoveryTest.cs @@ -58,7 +58,7 @@ public void TestDefaultValues() Assert.AreEqual("0.0.0.0:0", disc.SpdpLocalAddress); Assert.IsNotNull(disc.SpdpSendAddrs); Assert.AreEqual(0, disc.SpdpSendAddrs.Count()); - Assert.AreEqual("239.255.0.1:0", disc.DefaultMulticastGroup); + Assert.AreEqual("239.255.0.1:0", disc.GetDefaultMulticastGroup(0)); Assert.AreEqual(1, disc.Ttl); Assert.AreEqual(string.Empty, disc.MulticastInterface); Assert.AreEqual(string.Empty, disc.GuidInterface); @@ -76,7 +76,7 @@ public void TestNonDefaultValues() { ResendPeriod = new TimeValue { - Seconds = 1, + Seconds = 2, MicroSeconds = 500000, }, PB = 8400, @@ -89,14 +89,15 @@ public void TestNonDefaultValues() SedpMulticast = false, SedpLocalAddress = "127.0.0.1", SpdpLocalAddress = "127.0.0.1", - DefaultMulticastGroup = "239.255.42.1", MulticastInterface = "eth0", GuidInterface = "eth0", }; + disc.SetDefaultMulticastGroup("239.255.42.1"); + Assert.IsNotNull(disc.ResendPeriod); - Assert.AreEqual(1, disc.ResendPeriod.Seconds); - Assert.AreEqual(500000, disc.ResendPeriod.MicroSeconds); + Assert.AreEqual(2, disc.ResendPeriod.Seconds); + Assert.AreEqual(50_0000, disc.ResendPeriod.MicroSeconds); Assert.AreEqual(8400, disc.PB); Assert.AreEqual(500, disc.DG); Assert.AreEqual(4, disc.PG); @@ -106,7 +107,7 @@ public void TestNonDefaultValues() Assert.AreEqual(false, disc.SedpMulticast); Assert.AreEqual("127.0.0.1:0", disc.SedpLocalAddress); Assert.AreEqual("127.0.0.1:0", disc.SpdpLocalAddress); - Assert.AreEqual("239.255.42.1:0", disc.DefaultMulticastGroup); + Assert.AreEqual("239.255.42.1:0", disc.GetDefaultMulticastGroup(0)); Assert.AreEqual(2, disc.Ttl); Assert.AreEqual("eth0", disc.MulticastInterface); Assert.AreEqual("eth0", disc.GuidInterface); diff --git a/Tests/OpenDDSharp.UnitTest/RtpsUdpInstTest.cs b/Tests/OpenDDSharp.UnitTest/RtpsUdpInstTest.cs index 46afa547a..9cab05b50 100644 --- a/Tests/OpenDDSharp.UnitTest/RtpsUdpInstTest.cs +++ b/Tests/OpenDDSharp.UnitTest/RtpsUdpInstTest.cs @@ -46,7 +46,7 @@ public void TestDefaultValues() var inst = TransportRegistry.Instance.CreateInst(INSTANCE_NAME, TRANSPORT_TYPE); var rui = new RtpsUdpInst(inst); Assert.IsTrue(rui.UseMulticast); - Assert.AreEqual("239.255.0.2:7401", rui.MulticastGroupAddress); + Assert.AreEqual("239.255.0.2:7401", rui.GetMulticastGroupAddress(0)); Assert.AreEqual(string.Empty, rui.MulticastInterface); Assert.AreEqual("0.0.0.0:0", rui.LocalAddress); Assert.AreEqual(0U, rui.NakDepth); @@ -94,7 +94,6 @@ public void TestNonDefaultValues() var rui = new RtpsUdpInst(inst) { UseMulticast = false, - MulticastGroupAddress = "239.255.0.1:7402", LocalAddress = "127.0.0.1:", MulticastInterface = "eth0", NakDepth = 64U, @@ -124,8 +123,10 @@ public void TestNonDefaultValues() }, }; + rui.SetMulticastGroupAddress("239.255.0.1:7402"); + Assert.IsFalse(rui.UseMulticast); - Assert.AreEqual("239.255.0.1:7402", rui.MulticastGroupAddress); + Assert.AreEqual("239.255.0.1:7402", rui.GetMulticastGroupAddress(0)); Assert.AreEqual("eth0", rui.MulticastInterface); Assert.AreEqual("127.0.0.1:0", rui.LocalAddress); Assert.AreEqual(64U, rui.NakDepth); diff --git a/Tests/OpenDDSharp.UnitTest/UdpInstTest.cs b/Tests/OpenDDSharp.UnitTest/UdpInstTest.cs index 0466b7d36..ae43213dc 100644 --- a/Tests/OpenDDSharp.UnitTest/UdpInstTest.cs +++ b/Tests/OpenDDSharp.UnitTest/UdpInstTest.cs @@ -45,7 +45,7 @@ public void TestDefaultValues() { var inst = TransportRegistry.Instance.CreateInst(INSTANCE_NAME, TRANSPORT_TYPE); var udpInst = new UdpInst(inst); - Assert.AreEqual("0.0.0.0:0", udpInst.LocalAddress); + Assert.AreEqual(string.Empty, udpInst.LocalAddress); Assert.AreEqual(32U, udpInst.DatalinkControlChunks); Assert.AreEqual(10000, udpInst.DatalinkReleaseDelay); Assert.IsFalse(udpInst.IsReliable); diff --git a/Tests/TestIdlCdr/TestIdlCdr.csproj b/Tests/TestIdlCdr/TestIdlCdr.csproj index 3961c8464..193116837 100644 --- a/Tests/TestIdlCdr/TestIdlCdr.csproj +++ b/Tests/TestIdlCdr/TestIdlCdr.csproj @@ -192,11 +192,11 @@ - + - + diff --git a/Tests/TestIdlJson/TestIdlJson.csproj b/Tests/TestIdlJson/TestIdlJson.csproj index cd86caf76..47c14e18a 100644 --- a/Tests/TestIdlJson/TestIdlJson.csproj +++ b/Tests/TestIdlJson/TestIdlJson.csproj @@ -183,11 +183,11 @@ - + - + diff --git a/Tests/TestSupportProcessCore/TestSupportProcessCore.csproj b/Tests/TestSupportProcessCore/TestSupportProcessCore.csproj index f6f0d2acc..7b7150746 100644 --- a/Tests/TestSupportProcessCore/TestSupportProcessCore.csproj +++ b/Tests/TestSupportProcessCore/TestSupportProcessCore.csproj @@ -36,7 +36,7 @@ - + all @@ -48,11 +48,11 @@ all - + all - + all diff --git a/global.json b/global.json index 5df8a9149..561353861 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.201", + "version": "8.0.302", "rollForward": "latestFeature", "allowPrerelease": false }