Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
]
},
"docfx": {
"version": "2.65.3",
"version": "2.74.1",
"commands": [
"docfx"
]
Expand Down
18 changes: 12 additions & 6 deletions Hazelcast.Net.sln
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hazelcast.Net.JetBrainsAnno
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{25300DF5-472C-4D9B-898A-820577F2F9C7}"
ProjectSection(SolutionItems) = preProject
build\build.proj = build\build.proj
build\AnalysisRules.props = build\AnalysisRules.props
build\build.proj = build\build.proj
build\certs-root-ca.conf = build\certs-root-ca.conf
build\certs-sub-ca.conf = build\certs-sub-ca.conf
build\certs.ps1 = build\certs.ps1
Expand Down Expand Up @@ -57,17 +57,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{
ProjectSection(SolutionItems) = preProject
.github\workflows\assign-milestones.js = .github\workflows\assign-milestones.js
.github\workflows\assign-milestones.yml = .github\workflows\assign-milestones.yml
.github\workflows\build-branch.yml = .github\workflows\build-branch.yml
.github\workflows\build-and-test.yml = .github\workflows\build-and-test.yml
.github\workflows\build-release.yml = .github\workflows\build-release.yml
.github\workflows\build-branch.yml = .github\workflows\build-branch.yml
.github\workflows\build-guest-pr.yml = .github\workflows\build-guest-pr.yml
.github\workflows\build-pr.yml = .github\workflows\build-pr.yml
.github\workflows\build-release.yml = .github\workflows\build-release.yml
.github\workflows\create-checks.yml = .github\workflows\create-checks.yml
.github\workflows\get-frameworks.yml = .github\workflows\get-frameworks.yml
.github\workflows\jira-label.yml = .github\workflows\jira-label.yml
.github\workflows\release-scripts.js = .github\workflows\release-scripts.js
.github\workflows\trigger-release.yml = .github\workflows\trigger-release.yml
.github\workflows\report-guest-pr.yml = .github\workflows\report-guest-pr.yml
.github\workflows\trigger-release.yml = .github\workflows\trigger-release.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "actions", "actions", "{48E8586E-CD6C-43B8-B353-0B3F3BDCDDCA}"
Expand Down Expand Up @@ -97,12 +97,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "install", "install", "{7A5D
.github\actions\install\action.yml = .github\actions\install\action.yml
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hazelcast.Net.Linq.Async", "src\Hazelcast.Net.Linq.Async\Hazelcast.Net.Linq.Async.csproj", "{1E7F4AE0-25A0-4C8C-9C0C-4C89DCB193F5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hazelcast.Net.Linq.Async", "src\Hazelcast.Net.Linq.Async\Hazelcast.Net.Linq.Async.csproj", "{1E7F4AE0-25A0-4C8C-9C0C-4C89DCB193F5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hazelcast.Net.Caching", "src\Hazelcast.Net.Caching\Hazelcast.Net.Caching.csproj", "{21FAFF1E-B0D6-46E0-8EE3-1D7D1C67CBC8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hazelcast.Net.Caching", "src\Hazelcast.Net.Caching\Hazelcast.Net.Caching.csproj", "{21FAFF1E-B0D6-46E0-8EE3-1D7D1C67CBC8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hazelcast.Net.CodeGenerator", "src\Hazelcast.Net.CodeGenerator\Hazelcast.Net.CodeGenerator.csproj", "{91211959-EC26-4FC9-84A8-E8C924300BF7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "protocol", "protocol", "{3950534A-4217-4138-A7D7-05C0E828221C}"
ProjectSection(SolutionItems) = preProject
protocol\cs\__init__.py = protocol\cs\__init__.py
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -171,6 +176,7 @@ Global
{3C970CF6-DF19-4FD0-9BE3-F63EE72AC4CC} = {48E8586E-CD6C-43B8-B353-0B3F3BDCDDCA}
{295E2764-401E-4604-8C2E-E20B99171705} = {48E8586E-CD6C-43B8-B353-0B3F3BDCDDCA}
{7A5DDB5C-A126-4A4E-914E-87E7E54941DB} = {48E8586E-CD6C-43B8-B353-0B3F3BDCDDCA}
{3950534A-4217-4138-A7D7-05C0E828221C} = {FD4710D4-ECC2-452E-A7C6-0320AFAFF124}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F18DBBE5-FCEE-4B50-AF9E-D01D5B871564}
Expand Down
5 changes: 5 additions & 0 deletions Hazelcast.Net.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,14 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=endianness/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=expirations/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=failover/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=fsync/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Giga/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=letsencrypt/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=merkle/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=multicast/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=nano/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=partitioner/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=preloader/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=reentrant/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=retryable/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=hzconsole/@EntryIndexedValue">True</s:Boolean>
Expand All @@ -50,5 +54,6 @@ distributed under the License is distributed on an "AS IS" BASIS,&#xD;
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#xD;
See the License for the specific language governing permissions and&#xD;
limitations under the License.</s:String>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ringbuffer/@EntryIndexedValue">True</s:Boolean>

</wpf:ResourceDictionary>
50 changes: 48 additions & 2 deletions build/AnalysisRules.props
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,56 @@

<PropertyGroup Condition="'$(ReleaseBranch)'=='True'">
<!--
treat all documented Roslyn Public Analyzer warnings as errors
treat some documented Roslyn Public Analyzer warnings as errors
source: https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/Microsoft.CodeAnalysis.PublicApiAnalyzers.md
-->
<WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027;RS0036;RS0037;RS0041;RS0048;RS0050;RS0051;RS0052;RS0053;RS0054;RS0055;RS0056;RS0057;RS0058;RS0059;RS0060;RS0061</WarningsAsErrors>
<!-- Add public types and members to the declared API -->
<WarningsAsErrors>$(WarningsAsErrors);RS0016</WarningsAsErrors>
<!-- Remove deleted types and members from the declared API -->
<WarningsAsErrors>$(WarningsAsErrors);RS0017</WarningsAsErrors>
<!--Constructor make noninheritable base class inheritable -->
<WarningsAsErrors>$(WarningsAsErrors);RS0022</WarningsAsErrors>
<!-- The contents of the public API files are invalid -->
<WarningsAsErrors>$(WarningsAsErrors);RS0024</WarningsAsErrors>
<!-- Do not duplicate symbols in public API files -->
<WarningsAsErrors>$(WarningsAsErrors);RS0025</WarningsAsErrors>
<!-- Do not add multiple public overloads with optional parameters -->
<WarningsAsErrors>$(WarningsAsErrors);RS0026</WarningsAsErrors>
<!-- API with optional parameter(s) should have the most parameters amongst its public overloads -->
<WarningsAsErrors>$(WarningsAsErrors);RS0027</WarningsAsErrors>
<!-- Annotate nullability of public types and members in the declared API -->
<WarningsAsErrors>$(WarningsAsErrors);RS0036</WarningsAsErrors>
<!-- Enable tracking of nullability of reference types in the declared API -->
<WarningsAsErrors>$(WarningsAsErrors);RS0037</WarningsAsErrors>
<!-- Public members should not use oblivious types -->
<WarningsAsErrors>$(WarningsAsErrors);RS0041</WarningsAsErrors>
<!-- Missing shipped or unshipped public API file -->
<WarningsAsErrors>$(WarningsAsErrors);RS0048</WarningsAsErrors>
<!-- API is marked as removed but it exists in source code -->
<WarningsAsErrors>$(WarningsAsErrors);RS0050</WarningsAsErrors>

<!-- Add internal types and members to the declared API -->
<!--<WarningsAsErrors>$(WarningsAsErrors);RS0051</WarningsAsErrors>-->
<!-- Remove deleted types and members from the declared internal API -->
<!--<WarningsAsErrors>$(WarningsAsErrors);RS0052</WarningsAsErrors>-->
<!-- The contents of the internal API files are invalid -->
<WarningsAsErrors>$(WarningsAsErrors);RS0053</WarningsAsErrors>
<!-- Do not duplicate symbols in internal API files -->
<WarningsAsErrors>$(WarningsAsErrors);RS0054</WarningsAsErrors>
<!-- Annotate nullability of internal types and members in the declared API -->
<WarningsAsErrors>$(WarningsAsErrors);RS0055</WarningsAsErrors>
<!-- Enable tracking of nullability of reference types in the declared API -->
<!--<WarningsAsErrors>$(WarningsAsErrors);RS0056</WarningsAsErrors>-->
<!-- Internal members should not use oblivious types -->
<WarningsAsErrors>$(WarningsAsErrors);RS0057</WarningsAsErrors>
<!-- Missing shipped or unshipped internal API file -->
<WarningsAsErrors>$(WarningsAsErrors);RS0058</WarningsAsErrors>
<!-- Do not add multiple public overloads with optional parameters -->
<!--<WarningsAsErrors>$(WarningsAsErrors);RS0059</WarningsAsErrors>-->
<!-- API with optional parameter(s) should have the most parameters amongst its public overloads -->
<!--<WarningsAsErrors>$(WarningsAsErrors);RS0060</WarningsAsErrors>-->
<!-- Constructor make noninheritable base class inheritable -->
<WarningsAsErrors>$(WarningsAsErrors);RS0061</WarningsAsErrors>
</PropertyGroup>

</Project>
28 changes: 28 additions & 0 deletions doc/dev/doc/dynamic-configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Dynamic Configuration

Starting with version 5.4.0, the Hazelcast .NET client supports dynamic configuration of the cluster as described in the main [Dynamic Configuration for Members](https://docs.hazelcast.com/hazelcast/latest/configuration/dynamic-config) documentation, for the following structures:

* Maps
* Ring buffers

The dynamic configuration feature is accessible via the `IHazelcastClient.DynamicOptions` service. For instance, assuming that `client` is an `IHazelcastClient` instance, the following code can be used to configure a ring buffer:

```
await client.DynamicOptions.ConfigureRingbufferAsync("buffer-name", options =>
{
options.Name = "buffer-name";
options.AsyncBackupCount = 1;
options.BackupCount = 1;
options.Capacity = 1;
options.InMemoryFormat = InMemoryFormat.Binary;
options.MergePolicy.BatchSize = 1;
options.MergePolicy.Policy = "policy";
options.TimeToLiveSeconds = 1;
options.SplitBrainProtectionName = "splitBrainProtectionName";
options.RingbufferStore.Enabled = true;
options.RingbufferStore.ClassName = "classNam";
options.RingbufferStore.FactoryClassName = "factoryClassName";
});
```

Refer to the main [Dynamic Configuration with Programmatic APIs](https://docs.hazelcast.com/hazelcast/latest/configuration/dynamic-config-programmatic-api) for a complete list of options that can be configured, and explainations of their effects. The .NET API closely follows the Java API.
1 change: 1 addition & 0 deletions doc/dev/doc/toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
# [Events](events.md)
# [Data Affinity](data-affinity.md)
# [Transactions](transactions.md)
# [Dynamic COnfiguration](dynamic-configuration.md)
# [Examples](examples.md)
# [Extensions](extensions.md)
## [Dependency Injection](extensions/dependency-injection.md)
Expand Down
14 changes: 11 additions & 3 deletions hz.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,13 @@ $params = @(
@{ name = "yolo"; type = [switch]; default = $false;
desc = "confirms excution of sensitive actions"
},
@{ name="copy-files-source"; type = [string]; default = $null;
@{ name = "copy-files-source"; type = [string]; default = $null;
desc = "source folder to be copied"
},
@{ name="beta"; type = [switch]; default = $false;
@{ name = "publicApi"; type = [switch]; default = $false; alias = "public-api";
desc = "Whether to enforce Roslyn Public API rules"
},
@{ name = "beta"; type = [switch]; default = $false;
desc = "whether to run beta features and tests"
}
)
Expand Down Expand Up @@ -1445,7 +1448,10 @@ function hz-generate-codecs {
remove-item -force $srcDir/Hazelcast.Net/Protocol/CustomCodecs/*.cs

Write-Output "Generate codecs"
$preserve = $pwd
cd $slnRoot/protocol # required for python to pick the correct protocol git commit
python $slnRoot/protocol/generator.py -l cs --no-binary -r $slnRoot
cd $preserve

Write-Output "Cleanup codecs"

Expand Down Expand Up @@ -1571,7 +1577,9 @@ function hz-build {
$buildArgs += "-p:VersionSuffix=$versionSuffix"
}

$buildArgs += "-p:ReleaseBranch=$isReleaseBranch"
if ($isReleaseBranch -or $options.publicApi) {
$buildArgs += "-p:ReleaseBranch=$true"
}

$projs | foreach {
Write-Output ""
Expand Down
5 changes: 5 additions & 0 deletions src/Hazelcast.Net.Testing/Hazelcast.Net.Testing.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@
<DefineConstants>$(DefineConstants);SERVER_CODEC</DefineConstants>
</PropertyGroup>

<PropertyGroup>
<!-- no XML documentation here -->
<NoWarn>$(NoWarn);CS1591</NoWarn>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="ApacheThrift" Version="0.15.0" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
Expand Down
Loading