This is an automated email from the ASF dual-hosted git repository.
gvvinblade pushed a change to branch ignite-12248
in repository https://gitbox.apache.org/repos/asf/ignite.git.
from 7cae85b IGNITE-12446: Calcite integration. Fix javadocs and code
style. This closes #7173
add b422ed4 Minor javadoc update for checking commit permit.
add 8dcd0f1 IGNITE-12441 Refactor SystemViewRowAttributeWalker
registration for system views (#7136)
add 6c7fe05 IGNITE-12395 Optimize configuration when starting client
nodes - Fixes #7112.
add a835bdf IGNITE-12444: SQL: Query reduce can fail with NPE on retry.
This closes #7138.
add 4ede2ee IGNITE-12430 Move PagePool to a separate class
add 2057141 IGNITE-12412 Fixed ABA issue in PagePool#releaseFreePage
add 8eafafe IGNITE-12424 Fix broken default query timeout support for
thin JDBC driver by making this timeout effectively unsupported for thin JDBC -
Fixes #7122.
add a09d128 IGNITE-12434 Dump checkpoint readLock holder threads if
writeLock can`t take lock more than threshold timeout. - Fixes #7124.
add 3f16c67 IGNITE-12450: Transaction operations metrics (#7141)
add 44075e0 IGNITE-12387 .NET Thin Client: Handle unsupported features
gracefully
add 7a55bb1 IGNITE-9913 Prevent data updates blocking in case of backup
BLT server node leave (#7069)
add 564d5db IGNITE-11320: Support for individual reconnect in case of
best effort affinity mode added. (#7152)
add a4b7225 IGNITE- 12461 Failover connections support for JDBC thin
driver added. This closes #7154.
add 6464cc4 IGNITE-12457 Increase NetworkTimeout in
IgniteCache150ClientsTest (fix for Cache 6 suite)- Fixes #7142.
add a2041ce IGNITE-12473 .NET: Fix ClientServerCompatibilityTest - set
Java version in pom.xml
add 7b638a5 IGNITE-11705: Ability to control affinity cache size. added.
add 9f19e01 IGNITE-12462: JDBC thin: Add JDBC URL properties support for
query timeout and for connection timeout. This closes #7156.
add dec87bf IGNITE-12442 Fix unnecessary sync on PagesList.PagesCache -
Fixes #7147.
add 6facbc7 IGNITE-12481 .NET: Fix verify-nuget.ps1 for multi-digit
versions
add 607cdb0 .NET: Fix Resharper inspection warnings
add 0d5a325 IGNITE-12427 .NET: Fix Mono issues
add 4012749 .NET: Fix Maven call in build.ps1
add 7272bb1 IGNITE-12466 Monitor query pool starvation - Fixes #7161.
add 77d21ea IGNITE-12301 Free-lists system view - Fixes #6991.
add 89cf265 IGNITE-12489 Fix log levels in GridCacheWriteBehindStore and
CassandraSessionImpl - Fixes #7170.
add 8fafd92 IGNITE-12476 Speedup Continuous Query 1 tests - Fixes #7176.
add 349846c IGNITE-12477 Speedup Queries 1 test suite - Fixes #7177.
add db0e507 IGNITE-12469: Sensitive data hidden for
CorruptedTreeException. - Fixes #7163.
add 04999c5 IGNITE-12452 Write pages from checkpoint buffer with higher
priority - Fixes #7145.
add 4aa8851 IGNITE-12440 Sensitive data leak in partition release future
messages - Fixes #7132.
add de4e7aa IGNITE-12272 Delayed TX recovery (#7172)
add 971b754 Revert "IGNITE-12440 Sensitive data leak in partition release
future messages - Fixes #7132."
add 44240bc IGNITE-12465 Extend test coverage [IGNITE-11995] - Fixes
#7158.
add 23b3804 IGNITE-11923: Migrate IgniteMXBean to the new metrics
framework (#7107)
add 3425c8c IGNITE-12371 Add an explicit method for starting client nodes
to GridAbstractTest - Fixes #7196.
new 908fde0 Merge branch 'ignite-master' into ignite-12248
new f3dafbc fix version
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.gitignore | 2 +
modules/calcite/pom.xml | 2 +-
.../cassandra/session/CassandraSessionImpl.java | 5 +-
.../internal/jdbc2/JdbcMetadataSelfTest.java | 3 +-
.../jdbc/suite/IgniteJdbcDriverTestSuite.java | 2 +
...teJdbcThinDriverAffinityAwarenessTestSuite.java | 2 +
...tyAwarenessReconnectionAndFailoverSelfTest.java | 985 +++++++++++++++++++++
.../thin/JdbcThinAffinityAwarenessSelfTest.java | 165 ++--
.../jdbc/thin/JdbcThinConnectionSelfTest.java | 291 +++---
.../thin/JdbcThinConnectionTimeoutSelfTest.java | 96 +-
.../jdbc/thin/JdbcThinDefaultTimeoutTest.java | 109 +++
.../ignite/jdbc/thin/JdbcThinMetadataSelfTest.java | 35 +-
.../thin/JdbcThinStatementTimeoutSelfTest.java | 62 +-
.../SystemViewRowAttributeWalkerGenerator.java | 38 +
.../org/apache/ignite/IgniteSystemProperties.java | 6 -
.../org/apache/ignite/internal/IgniteFeatures.java | 5 +-
.../org/apache/ignite/internal/IgniteKernal.java | 121 ++-
.../ignite/internal/commandline/Command.java | 20 +
.../ignite/internal/commandline/WalCommands.java | 15 +-
.../ignite/internal/jdbc/thin/AffinityCache.java | 23 +-
.../internal/jdbc/thin/ConnectionProperties.java | 55 ++
.../jdbc/thin/ConnectionPropertiesImpl.java | 76 +-
.../JdbcThinAffinityAwarenessMappingGroup.java | 10 +-
.../internal/jdbc/thin/JdbcThinConnection.java | 635 +++++++++----
.../ignite/internal/jdbc/thin/JdbcThinTcpIo.java | 23 +-
.../managers/discovery/GridDiscoveryManager.java | 3 +-
.../managers/systemview/AbstractSystemView.java | 13 +-
...dapter.java => FiltrableSystemViewAdapter.java} | 67 +-
.../managers/systemview/GridSystemViewManager.java | 108 +--
.../managers/systemview/ScanQuerySystemView.java | 2 +-
.../managers/systemview/SystemViewAdapter.java | 16 +-
.../SystemViewInnerCollectionsAdapter.java | 11 +-
.../walker/CachePagesListViewWalker.java | 78 ++
.../managers/systemview/walker/Filtrable.java} | 31 +-
.../systemview/walker/PagesListViewWalker.java | 68 ++
.../apache/ignite/internal/pagemem/FullPageId.java | 3 +
.../affinity/GridAffinityAssignmentCache.java | 2 +-
.../cache/CacheAffinityChangeMessage.java | 9 +-
.../cache/CacheAffinitySharedManager.java | 284 +++---
.../processors/cache/CacheMetricsImpl.java | 42 +-
.../processors/cache/ClusterCachesInfo.java | 6 +-
.../internal/processors/cache/ExchangeContext.java | 22 +-
.../processors/cache/GridCacheProcessor.java | 77 +-
.../processors/cache/GridCacheSharedContext.java | 17 +-
.../preloader/GridDhtPartitionsExchangeFuture.java | 213 ++++-
.../preloader/GridDhtPartitionsFullMessage.java | 73 +-
.../dht/preloader/GridDhtPreloader.java | 7 +-
.../dht/topology/GridClientPartitionTopology.java | 2 +-
.../dht/topology/GridDhtLocalPartition.java | 10 +-
.../dht/topology/GridDhtPartitionTopology.java | 4 +-
.../dht/topology/GridDhtPartitionTopologyImpl.java | 16 +-
.../GridCacheDatabaseSharedManager.java | 59 +-
.../IgniteCacheDatabaseSharedManager.java | 29 +-
.../cache/persistence/freelist/PagesList.java | 50 +-
.../cache/persistence/pagemem/PageHeader.java | 274 ++++++
.../cache/persistence/pagemem/PageMemoryEx.java | 10 +
.../cache/persistence/pagemem/PageMemoryImpl.java | 499 +----------
.../cache/persistence/pagemem/PagePool.java | 247 ++++++
.../persistence/pagemem/PagesWriteThrottle.java | 9 +-
.../pagemem/PagesWriteThrottlePolicy.java | 7 +
.../cache/store/GridCacheWriteBehindStore.java | 10 +-
.../cache/transactions/IgniteTxAdapter.java | 2 +-
.../cache/transactions/IgniteTxManager.java | 61 +-
.../continuous/GridContinuousProcessor.java | 3 +-
.../processors/metric/GridMetricManager.java | 3 +
.../processors/odbc/ClientListenerProcessor.java | 3 +-
.../internal/processors/odbc/jdbc/JdbcRequest.java | 18 +-
.../processors/odbc/jdbc/JdbcRequestHandler.java | 2 +
.../processors/query/RunningQueryManager.java | 6 +-
.../processors/service/IgniteServiceProcessor.java | 3 +-
.../processors/service/ServiceDeploymentTask.java | 3 +-
.../processors/task/GridTaskProcessor.java | 3 +-
.../apache/ignite/internal/util/GridUnsafe.java | 20 +
.../apache/ignite/internal/util/IgniteUtils.java | 203 +++--
.../org/apache/ignite/mxbean/IgniteMXBean.java | 261 +++++-
.../spi/metric/jmx/ReadOnlyDynamicMBean.java | 2 +
.../ignite/spi/systemview/jmx/SystemViewMBean.java | 124 ++-
.../spi/systemview/view/CachePagesListView.java | 58 ++
.../{SystemView.java => FiltrableSystemView.java} | 26 +-
.../ignite/spi/systemview/view/PagesListView.java | 83 ++
.../ignite/spi/systemview/view/SystemView.java | 3 -
.../view/SystemViewRowAttributeWalker.java | 10 +
.../IgniteClientReconnectFailoverAbstractTest.java | 2 +-
.../ignite/internal/metric/JmxExporterSpiTest.java | 136 +++
.../ignite/internal/metric/SystemViewSelfTest.java | 100 +++
.../cache/CacheConcurrentReadThroughTest.java | 14 +-
.../cache/GridCacheAbstractMetricsSelfTest.java | 2 +-
...dCacheTransactionalAbstractMetricsSelfTest.java | 38 +
.../CacheLateAffinityAssignmentTest.java | 181 +++-
.../GridCacheNodeFailureAbstractTest.java | 4 -
.../distributed/GridExchangeFreeSwitchTest.java | 602 +++++++++++++
.../distributed/IgniteCache150ClientsTest.java | 2 +-
.../GridCachePartitionedTxSalvageSelfTest.java | 258 ------
.../persistence/CheckpointReadLockFailureTest.java | 144 ++-
.../pagemem/IgniteThrottlingUnitTest.java | 17 +-
.../persistence/pagemem/PageMemoryImplTest.java | 142 ++-
.../cache/persistence/pagemem/PagePoolTest.java | 337 +++++++
.../cache/query/CacheScanQueryFailoverTest.java | 17 +-
.../continuous/CacheContinuousBatchAckTest.java | 9 +-
...ntinuousQueryConcurrentPartitionUpdateTest.java | 11 +-
.../CacheContinuousQueryCounterAbstractTest.java | 7 +-
.../CacheContinuousQueryExecuteInPrimaryTest.java | 4 +-
...cheContinuousQueryFailoverAbstractSelfTest.java | 12 +-
...ousQueryFailoverAtomicNearEnabledSelfTest.java} | 2 +-
.../ignite/internal/util/IgniteUtilsSelfTest.java | 19 +
.../apache/ignite/testframework/GridTestUtils.java | 24 +
.../testframework/junits/GridAbstractTest.java | 19 +-
.../ignite/testsuites/IgniteBasicTestSuite.java | 2 +
.../testsuites/IgniteCacheFailoverTestSuite2.java | 2 -
.../ignite/testsuites/IgniteCacheTestSuite5.java | 2 +
.../util/GridCommandHandlerClusterByClassTest.java | 122 ++-
.../processors/query/h2/IgniteH2Indexing.java | 25 -
.../processors/query/h2/SchemaManager.java | 18 +-
.../processors/query/h2/opt/H2CacheRow.java | 8 +-
.../processors/query/h2/sys/SqlSystemIndex.java | 18 +-
.../query/h2/sys/SystemViewH2Adapter.java | 18 +-
.../h2/sys/view/SqlAbstractLocalSystemView.java | 1 -
.../query/h2/sys/view/SqlAbstractSystemView.java | 5 +
.../query/h2/sys/view/SqlSystemView.java | 5 +
.../query/h2/twostep/GridReduceQueryExecutor.java | 14 +-
.../spi/systemview/FiltrableSystemViewLocal.java | 98 ++
.../ignite/spi/systemview/SqlViewExporterSpi.java | 4 +-
.../ignite/spi/systemview/SystemViewLocal.java | 38 +-
.../processors/cache/BigEntryQueryTest.java | 5 +-
.../cache/CacheQueryEvictDataLostTest.java | 4 +-
...tributedPartitionQueryNodeRestartsSelfTest.java | 3 +-
.../processors/cache/index/BasicIndexTest.java | 32 +-
.../index/H2TreeCorruptedTreeExceptionTest.java | 72 +-
.../cache/metric/SqlViewExporterSpiTest.java | 86 +-
...actQueryTableLockAndConnectionPoolSelfTest.java | 2 +-
.../query/IgniteQueryDedicatedPoolTest.java | 124 ++-
.../processors/query/SqlSchemaSelfTest.java | 2 +-
.../h2/twostep/RetryCauseMessageSelfTest.java | 85 ++
.../testsuites/IgniteCacheQuerySelfTestSuite3.java | 24 +-
.../testsuites/IgniteCacheQuerySelfTestSuite4.java | 2 +
.../IgniteSessionStateStoreDataTest.cs | 6 +-
.../IgniteSessionStateStoreProviderTest.cs | 9 +-
.../Apache.Ignite.Core.Tests.DotNetCore.csproj | 23 +-
.../Apache.Ignite.Core.Tests.csproj | 11 +
.../Binary/BinaryBuilderSelfTest.cs | 4 +-
.../Binary/Serializable/ObjectReferenceTests.cs | 1 +
.../Binary/TypeNameParserTest.cs | 1 +
.../Cache/AddArgCacheEntryProcessor.cs | 4 +-
.../Cache/Affinity/AffinityFunctionSpringTest.cs | 1 +
.../Cache/Affinity/AffinityFunctionTest.cs | 1 +
.../Cache/Query/Linq/CacheLinqTest.Base.cs | 3 +-
.../Client/Cache/AffinityAwarenessTest.cs | 4 +-
.../Client/Cache/ListLogger.cs | 96 +-
.../Client/ClientConnectionTest.cs | 32 +-
.../Client/ClientOpExtensionsTest.cs | 59 ++
.../Client/ClientProtocolCompatibilityTest.cs | 189 ++++
.../Client/ClientProtocolVersionTest.cs | 161 ++++
.../Client/ClientReconnectCompatibilityTest.cs | 105 +++
.../Client/ClientServerCompatibilityTest.cs | 132 +++
.../Client/ClientTestBase.cs | 19 +-
.../Client/IgniteClientConfigurationTest.cs | 112 ++-
.../Compute/ComputeApiTest.cs | 2 +
.../Compute/IgniteExceptionTaskSelfTest.cs | 2 -
.../Config/Client/IgniteClientConfiguration.xml | 2 +
.../DataStructures/AtomicReferenceTest.cs | 4 +-
.../PeerAssemblyLoadingVersioningTest.cs | 3 +-
.../Apache.Ignite.Core.Tests/DeploymentTest.cs | 1 +
.../dotnet/Apache.Ignite.Core.Tests/EventsTest.cs | 4 +-
.../Apache.Ignite.Core.Tests/Examples/Example.cs | 3 +-
.../Apache.Ignite.Core.Tests/Examples/PathUtil.cs | 4 +-
.../IgniteConfigurationTest.cs | 3 +-
.../dotnet/Apache.Ignite.Core.Tests/JavaServer.cs | 161 ++++
.../Apache.Ignite.Core.Tests/JavaServer/pom.xml | 42 +
.../JavaServer/src/main/java/Runner.java | 41 +
.../Log/ConsoleLoggerTest.cs | 93 ++
.../Log/FixedDateTimeProvider.cs} | 25 +-
.../Apache.Ignite.Core.Tests/MessagingTest.cs | 1 +
.../Process/IgniteProcess.cs | 30 +-
.../Process/IgniteProcessCompositeOutputReader.cs} | 38 +-
.../Apache.Ignite.Core.Tests/ProcessExtensions.cs | 120 +++
.../Apache.Ignite.Core.Tests/ProjectFilesTest.cs | 28 +-
.../Services/ServicesTest.cs | 2 +
.../dotnet/Apache.Ignite.Core.Tests/TestRunner.cs | 5 +-
.../Apache.Ignite.Core.Tests/TestUtils.Common.cs | 19 +
.../Apache.Ignite.Core.Tests/TestUtils.Windows.cs | 2 +-
.../Apache.Ignite.Core/Apache.Ignite.Core.csproj | 6 +
.../Client/IgniteClientConfiguration.cs | 16 +
.../dotnet/Apache.Ignite.Core/Common/IFactory.cs | 4 +-
.../IgniteClientConfigurationSection.xsd | 12 +
.../Impl/Binary/BinaryArrayEqualityComparer.cs | 4 +-
.../Apache.Ignite.Core/Impl/Binary/BinaryEnum.cs | 4 +-
.../Apache.Ignite.Core/Impl/Binary/BinaryObject.cs | 4 +-
.../Impl/Binary/BinaryObjectHeader.cs | 8 +-
.../Impl/Cache/MutableCacheEntry.cs | 10 +-
.../Impl/Client/ClientFailoverSocket.cs | 34 +-
.../Apache.Ignite.Core/Impl/Client/ClientOp.cs | 9 +
.../Impl/Client/ClientOpExtensions.cs | 71 ++
.../Impl/Client/ClientProtocolVersion.cs | 40 +-
.../Apache.Ignite.Core/Impl/Client/ClientSocket.cs | 67 +-
.../Apache.Ignite.Core/Impl/Client/IgniteClient.cs | 6 +
.../Client/MinVersionAttribute.cs} | 29 +-
.../Common/IgniteConfigurationXmlSerializer.cs | 29 +-
.../Apache.Ignite.Core/Impl/Common/TaskRunner.cs | 2 +-
.../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 14 +-
.../Impl/Log/NoopLogger.cs} | 52 +-
.../Impl/Services/ServiceDescriptor.cs | 4 +-
.../Impl/Unmanaged/Jni/AppDomains.cs | 10 +
.../Apache.Ignite.Core/Impl/Unmanaged/Jni/Env.cs | 2 +
.../Impl/Unmanaged/UnmanagedThread.cs | 32 +-
.../dotnet/Apache.Ignite.Core/Log/ConsoleLogger.cs | 102 +++
.../IFactory.cs => Log/IDateTimeProvider.cs} | 16 +-
.../IFactory.cs => Log/LocalDateTimeProvider.cs} | 27 +-
.../Apache.Ignite.Core/Log/LoggerExtensions.cs | 16 +-
.../Impl/CacheFieldsQueryExecutor.cs | 4 +-
.../Apache.Ignite.Linq/Impl/MethodVisitor.cs | 2 +
.../platforms/dotnet/Apache.Ignite.sln.DotSettings | 1 +
modules/platforms/dotnet/build.ps1 | 122 +--
.../DataStructures/AtomicLongIncrementAction.cs | 1 +
.../DataStructures/AtomicReferenceModifyAction.cs | 1 +
.../AtomicSequenceIncrementAction.cs | 1 +
modules/platforms/dotnet/release/verify-nuget.ps1 | 8 +-
216 files changed, 8990 insertions(+), 2373 deletions(-)
create mode 100644
modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinAffinityAwarenessReconnectionAndFailoverSelfTest.java
create mode 100644
modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinDefaultTimeoutTest.java
copy
modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/{SystemViewAdapter.java
=> FiltrableSystemViewAdapter.java} (50%)
create mode 100644
modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/CachePagesListViewWalker.java
copy
modules/core/src/main/java/org/apache/ignite/{spi/systemview/view/SystemView.java
=> internal/managers/systemview/walker/Filtrable.java} (59%)
create mode 100644
modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/PagesListViewWalker.java
create mode 100644
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageHeader.java
create mode 100644
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagePool.java
create mode 100644
modules/core/src/main/java/org/apache/ignite/spi/systemview/view/CachePagesListView.java
copy
modules/core/src/main/java/org/apache/ignite/spi/systemview/view/{SystemView.java
=> FiltrableSystemView.java} (65%)
create mode 100644
modules/core/src/main/java/org/apache/ignite/spi/systemview/view/PagesListView.java
create mode 100644
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridExchangeFreeSwitchTest.java
delete mode 100644
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
create mode 100644
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagePoolTest.java
rename
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/{CacheContinuousQueryFailoverAtomicNearEnabledSelfSelfTest.java
=> CacheContinuousQueryFailoverAtomicNearEnabledSelfTest.java} (95%)
create mode 100644
modules/indexing/src/main/java/org/apache/ignite/spi/systemview/FiltrableSystemViewLocal.java
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/ClientOpExtensionsTest.cs
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/ClientProtocolCompatibilityTest.cs
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/ClientProtocolVersionTest.cs
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/ClientReconnectCompatibilityTest.cs
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/ClientServerCompatibilityTest.cs
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/JavaServer.cs
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/JavaServer/pom.xml
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/JavaServer/src/main/java/Runner.java
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/ConsoleLoggerTest.cs
copy modules/platforms/dotnet/{Apache.Ignite.Core/Common/IFactory.cs =>
Apache.Ignite.Core.Tests/Log/FixedDateTimeProvider.cs} (65%)
copy
modules/platforms/dotnet/{examples/Apache.Ignite.ExamplesDll/DataStructures/AtomicSequenceIncrementAction.cs
=> Apache.Ignite.Core.Tests/Process/IgniteProcessCompositeOutputReader.cs}
(52%)
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/ClientOpExtensions.cs
copy modules/platforms/dotnet/Apache.Ignite.Core/{Common/IFactory.cs =>
Impl/Client/MinVersionAttribute.cs} (56%)
copy
modules/platforms/dotnet/{Apache.Ignite.Core.Tests/Client/Cache/ListLogger.cs
=> Apache.Ignite.Core/Impl/Log/NoopLogger.cs} (59%)
create mode 100644
modules/platforms/dotnet/Apache.Ignite.Core/Log/ConsoleLogger.cs
copy modules/platforms/dotnet/Apache.Ignite.Core/{Common/IFactory.cs =>
Log/IDateTimeProvider.cs} (69%)
copy modules/platforms/dotnet/Apache.Ignite.Core/{Common/IFactory.cs =>
Log/LocalDateTimeProvider.cs} (58%)