Merge branch 'master' into ignite-3477-master # Conflicts: # modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java # modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java # modules/platforms/dotnet/Apache.Ignite.Core.Tests/EventsTest.cs # modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs # modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs # modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj # modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs # modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2210635a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2210635a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2210635a Branch: refs/heads/ignite-3477-master Commit: 2210635aea0a39da7b3c9f699cbc268ef6eeece7 Parents: a68045f edfa353 Author: Pavel Tupitsyn <[email protected]> Authored: Tue Apr 11 12:57:38 2017 +0300 Committer: Pavel Tupitsyn <[email protected]> Committed: Tue Apr 11 12:57:38 2017 +0300 ---------------------------------------------------------------------- DEVNOTES.txt | 3 - assembly/dependencies-fabric-lgpl.xml | 3 - assembly/dependencies-fabric.xml | 3 - assembly/dependencies-schema-import.xml | 57 - assembly/release-base.xml | 2 - assembly/release-fabric-base.xml | 9 - assembly/release-schema-import.xml | 50 - bin/ignite-schema-import.bat | 110 - bin/ignite-schema-import.sh | 87 - examples/README-LGPL.txt | 4 +- examples/README.txt | 2 - examples/pom-standalone-lgpl.xml | 1 - examples/pom-standalone.xml | 1 - examples/pom.xml | 1 - examples/schema-import/README.txt | 38 - examples/schema-import/bin/db-init.sql | 28 - examples/schema-import/bin/h2-server.bat | 80 - examples/schema-import/bin/h2-server.sh | 66 - .../schema-import/bin/schema-import.properties | 28 - examples/schema-import/pom-standalone.xml | 90 - examples/schema-import/pom.xml | 101 - .../org/apache/ignite/schema/CacheConfig.java | 36 - .../java/org/apache/ignite/schema/Demo.java | 134 -- .../java/org/apache/ignite/schema/DemoNode.java | 38 - .../ignite/schema/H2DataSourceFactory.java | 35 - .../java/org/apache/ignite/schema/Person.java | 44 - .../org/apache/ignite/schema/PersonKey.java | 37 - .../JettyRestProcessorAbstractSelfTest.java | 3 +- .../org/apache/ignite/IgniteFileSystem.java | 26 +- .../configuration/FileSystemConfiguration.java | 6 +- .../configuration/IgniteConfiguration.java | 4 +- .../configuration/NearCacheConfiguration.java | 56 +- .../ignite/internal/IgniteEventsImpl.java | 8 +- .../org/apache/ignite/internal/IgnitionEx.java | 4 +- .../binary/builder/BinaryObjectBuilderImpl.java | 36 +- .../eventstorage/GridEventStorageManager.java | 12 +- .../processors/cache/GridCacheAtomicFuture.java | 2 +- .../processors/cache/GridCacheMvccManager.java | 84 +- .../cache/GridDeferredAckMessageSender.java | 11 +- .../GridDhtAtomicAbstractUpdateFuture.java | 4 +- .../GridNearAtomicAbstractUpdateFuture.java | 2 +- .../GridNearAtomicSingleUpdateFuture.java | 21 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 23 +- .../cache/transactions/IgniteTxManager.java | 2 +- .../internal/processors/igfs/IgfsAsyncImpl.java | 8 +- .../internal/processors/igfs/IgfsImpl.java | 20 +- .../utils/PlatformConfigurationUtils.java | 28 + .../org/apache/ignite/internal/util/F0.java | 196 +- .../ignite/internal/util/lang/GridFunc.java | 620 +---- .../visor/igfs/VisorIgfsFormatTask.java | 2 +- .../visor/node/VisorIgfsConfiguration.java | 2 +- .../deployment/local/LocalDeploymentSpi.java | 5 +- .../spi/eventstorage/NoopEventStorageSpi.java | 53 + .../test/config/store/jdbc/ignite-jdbc-type.xml | 2 +- .../cache/store/jdbc/model/Organization.java | 2 - .../cache/store/jdbc/model/OrganizationKey.java | 2 - .../ignite/cache/store/jdbc/model/Person.java | 2 - .../store/jdbc/model/PersonComplexKey.java | 4 +- .../cache/store/jdbc/model/PersonKey.java | 2 - .../ignite/igfs/IgfsEventsAbstractSelfTest.java | 2 +- .../igfs/IgfsFragmentizerAbstractSelfTest.java | 2 +- .../ignite/igfs/IgfsFragmentizerSelfTest.java | 2 +- .../GridEventStorageDefaultExceptionTest.java | 94 + ...faultIgfsSecondaryFileSystemTestAdapter.java | 2 +- .../igfs/IgfsAbstractBaseSelfTest.java | 2 +- .../processors/igfs/IgfsAbstractSelfTest.java | 4 +- ...sCachePerBlockLruEvictionPolicySelfTest.java | 2 +- .../igfs/IgfsMetaManagerSelfTest.java | 2 +- .../processors/igfs/IgfsMetricsSelfTest.java | 2 +- .../internal/processors/igfs/IgfsMock.java | 4 +- .../processors/igfs/IgfsProcessorSelfTest.java | 8 +- .../processors/igfs/IgfsStreamsSelfTest.java | 2 +- .../processors/igfs/IgfsTaskSelfTest.java | 2 +- .../IgfsAbstractRecordResolverSelfTest.java | 2 +- .../testframework/junits/GridAbstractTest.java | 56 +- .../testsuites/IgniteComputeGridTestSuite.java | 2 + .../impl/HadoopTaskExecutionSelfTest.java | 2 +- ...opClientProtocolMultipleServersSelfTest.java | 2 +- .../client/HadoopClientProtocolSelfTest.java | 2 +- .../hadoop/impl/igfs/IgfsEventsTestSuite.java | 2 +- modules/log4j2/pom.xml | 4 +- .../ignite/logger/log4j2/Log4J2Logger.java | 23 +- .../Apache.Ignite.Core.Tests/EventsTest.cs | 63 +- .../IgniteConfigurationSerializerTest.cs | 13 +- .../IgniteConfigurationTest.cs | 15 +- .../Apache.Ignite.Core.csproj | 4 + .../Events/IEventStorageSpi.cs | 33 + .../Events/MemoryEventStorageSpi.cs | 100 + .../Events/NoopEventStorageSpi.cs | 27 + .../Apache.Ignite.Core/IgniteConfiguration.cs | 48 +- .../IgniteConfigurationSection.xsd | 22 + .../Plugin/IPluginConfiguration.cs | 4 +- modules/schema-import-db/README.txt | 4 - modules/schema-import-db/pom.xml | 55 - .../apache/ignite/schema/parser/DbColumn.java | 88 - .../ignite/schema/parser/DbMetadataReader.java | 147 -- .../apache/ignite/schema/parser/DbTable.java | 82 - .../parser/dialect/DB2MetadataDialect.java | 33 - .../parser/dialect/DatabaseMetadataDialect.java | 102 - .../parser/dialect/JdbcMetadataDialect.java | 199 -- .../parser/dialect/MySQLMetadataDialect.java | 82 - .../parser/dialect/OracleMetadataDialect.java | 360 --- modules/schema-import/README.txt | 216 -- modules/schema-import/pom.xml | 119 - .../main/java/media/data_connection_48x48.png | Bin 4443 -> 0 bytes .../src/main/java/media/error_48x48.png | Bin 4349 -> 0 bytes .../src/main/java/media/ignite_128x128.png | Bin 4917 -> 0 bytes .../src/main/java/media/ignite_16x16.png | Bin 608 -> 0 bytes .../src/main/java/media/ignite_24x24.png | Bin 930 -> 0 bytes .../src/main/java/media/ignite_32x32.png | Bin 1203 -> 0 bytes .../src/main/java/media/ignite_48x48.png | Bin 1868 -> 0 bytes .../src/main/java/media/ignite_64x64.png | Bin 2453 -> 0 bytes .../src/main/java/media/information_48x48.png | Bin 4102 -> 0 bytes .../src/main/java/media/question_48x48.png | Bin 3857 -> 0 bytes .../src/main/java/media/sign_warning_48x48.png | Bin 2988 -> 0 bytes .../schema-import/src/main/java/media/style.css | 134 -- .../src/main/java/media/text_tree_48x48.png | Bin 2567 -> 0 bytes .../ignite/schema/generator/CodeGenerator.java | 831 ------- .../ignite/schema/generator/GeneratorUtils.java | 70 - .../ignite/schema/generator/XmlGenerator.java | 446 ---- .../ignite/schema/model/PojoDescriptor.java | 497 ---- .../apache/ignite/schema/model/PojoField.java | 461 ---- .../ignite/schema/model/SchemaDescriptor.java | 62 - .../schema/parser/DatabaseMetadataParser.java | 115 - .../ignite/schema/ui/ConfirmCallable.java | 83 - .../org/apache/ignite/schema/ui/Controls.java | 697 ------ .../org/apache/ignite/schema/ui/GridPaneEx.java | 180 -- .../org/apache/ignite/schema/ui/MessageBox.java | 274 --- .../apache/ignite/schema/ui/ModalDialog.java | 50 - .../ignite/schema/ui/SchemaImportApp.java | 2115 ------------------ .../ignite/schema/ui/TextColumnValidator.java | 32 - .../schema/test/AbstractSchemaImportTest.java | 181 -- .../test/generator/CodeGeneratorTest.java | 81 - .../schema/test/generator/XmlGeneratorTest.java | 42 - .../ignite/schema/test/model/CacheConfig.txt | 409 ---- .../apache/ignite/schema/test/model/Objects.txt | 531 ----- .../ignite/schema/test/model/ObjectsKey.txt | 96 - .../ignite/schema/test/model/Primitives.txt | 535 ----- .../ignite/schema/test/model/PrimitivesKey.txt | 96 - .../org/apache/ignite/schema/test/model/Tst.txt | 535 ----- .../apache/ignite/schema/test/model/TstKey.txt | 96 - .../schema/test/model/ignite-type-metadata.xml | 666 ------ .../test/parser/DbMetadataParserTest.java | 134 -- .../testsuites/IgniteSchemaImportTestSuite.java | 42 - .../ignite/internal/GridFactorySelfTest.java | 3 + modules/web-console/web-agent/pom.xml | 12 - .../ignite/console/agent/db/DbColumn.java | 88 + .../console/agent/db/DbMetadataReader.java | 142 ++ .../apache/ignite/console/agent/db/DbTable.java | 82 + .../agent/db/dialect/DB2MetadataDialect.java | 33 + .../db/dialect/DatabaseMetadataDialect.java | 102 + .../agent/db/dialect/JdbcMetadataDialect.java | 199 ++ .../agent/db/dialect/MySQLMetadataDialect.java | 82 + .../agent/db/dialect/OracleMetadataDialect.java | 359 +++ .../agent/handlers/DatabaseListener.java | 20 +- .../dml/IgniteSqlDeleteFilteredBenchmark.java | 5 +- .../dml/IgniteSqlUpdateFilteredBenchmark.java | 5 +- pom.xml | 121 - 158 files changed, 1879 insertions(+), 13246 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/assembly/dependencies-fabric.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/configuration/NearCacheConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java index 46a9899,f1ef625..9c67b56 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java @@@ -79,6 -67,11 +79,9 @@@ import org.apache.ignite.spi.discovery. import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; + import org.apache.ignite.spi.eventstorage.EventStorageSpi; + import org.apache.ignite.spi.eventstorage.NoopEventStorageSpi; + import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi; -import org.apache.ignite.spi.swapspace.SwapSpaceSpi; -import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi; import org.apache.ignite.transactions.TransactionConcurrency; import org.apache.ignite.transactions.TransactionIsolation; @@@ -598,6 -654,39 +601,18 @@@ public class PlatformConfigurationUtil cfg.setTransactionConfiguration(tx); } - byte swapType = in.readByte(); - - switch (swapType) { - case SWAP_TYP_FILE: { - FileSwapSpaceSpi swap = new FileSwapSpaceSpi(); - - swap.setBaseDirectory(in.readString()); - swap.setMaximumSparsity(in.readFloat()); - swap.setMaxWriteQueueSize(in.readInt()); - swap.setReadStripesNumber(in.readInt()); - swap.setWriteBufferSize(in.readInt()); - - cfg.setSwapSpaceSpi(swap); - - break; - } - - default: - assert swapType == SWAP_TYP_NONE; - } - + switch (in.readByte()) { + case 1: + cfg.setEventStorageSpi(new NoopEventStorageSpi()); + break; + + case 2: + cfg.setEventStorageSpi(new MemoryEventStorageSpi() + .setExpireCount(in.readLong()) + .setExpireAgeMs(in.readLong())); + break; + } + readPluginConfiguration(cfg, in); } @@@ -1001,6 -1113,36 +1016,19 @@@ else w.writeBoolean(false); - SwapSpaceSpi swap = cfg.getSwapSpaceSpi(); - - if (swap instanceof FileSwapSpaceSpi) { - w.writeByte(SWAP_TYP_FILE); - - FileSwapSpaceSpi fileSwap = (FileSwapSpaceSpi)swap; - - w.writeString(fileSwap.getBaseDirectory()); - w.writeFloat(fileSwap.getMaximumSparsity()); - w.writeInt(fileSwap.getMaxWriteQueueSize()); - w.writeInt(fileSwap.getReadStripesNumber()); - w.writeInt(fileSwap.getWriteBufferSize()); - } - else { - w.writeByte(SWAP_TYP_NONE); - } - + EventStorageSpi eventStorageSpi = cfg.getEventStorageSpi(); + + if (eventStorageSpi == null) { + w.writeByte((byte) 0); + } else if (eventStorageSpi instanceof NoopEventStorageSpi) { + w.writeByte((byte) 1); + } else if (eventStorageSpi instanceof MemoryEventStorageSpi) { + w.writeByte((byte) 2); + + w.writeLong(((MemoryEventStorageSpi)eventStorageSpi).getExpireCount()); + w.writeLong(((MemoryEventStorageSpi)eventStorageSpi).getExpireAgeMs()); + } + w.writeString(cfg.getIgniteHome()); w.writeLong(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getInit()); http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorIgfsConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractBaseSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsCachePerBlockLruEvictionPolicySelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsProcessorSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/EventsTest.cs ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs ---------------------------------------------------------------------- diff --cc modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs index 58fda7c,1d39e69..89e0d3d --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs @@@ -769,7 -794,20 +775,12 @@@ namespace Apache.Ignite.Core.Test SpringConfigUrl = "test", Logger = new IgniteNLogLogger(), FailureDetectionTimeout = TimeSpan.FromMinutes(2), - PluginConfigurations = new[] {new TestIgnitePluginConfiguration() } - SwapSpaceSpi = new FileSwapSpaceSpi - { - MaximumSparsity = 0.1f, - MaximumWriteQueueSize = 55, - WriteBufferSize = 66, - ReadStripesNumber = 77, - BaseDirectory = "test" - }, + PluginConfigurations = new[] {new TestIgnitePluginConfiguration() }, + EventStorageSpi = new MemoryEventStorageSpi + { + ExpirationTimeout = TimeSpan.FromMilliseconds(12345), + MaxEventCount = 257 + } }; } http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs ---------------------------------------------------------------------- diff --cc modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs index 8358f69,f9f8a61..f642976 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs @@@ -80,6 -82,8 +80,7 @@@ namespace Apache.Ignite.Core.Test CheckDefaultValueAttributes(new LruEvictionPolicy()); CheckDefaultValueAttributes(new AtomicConfiguration()); CheckDefaultValueAttributes(new TransactionConfiguration()); - CheckDefaultValueAttributes(new FileSwapSpaceSpi()); + CheckDefaultValueAttributes(new MemoryEventStorageSpi()); } /// <summary> @@@ -182,8 -194,18 +183,15 @@@ Assert.AreEqual("affKey", typ.AffinityKeyFieldName); Assert.AreEqual(false, typ.KeepDeserialized); - CollectionAssert.AreEqual(new[] {"fld1", "fld2"}, - ((BinaryFieldEqualityComparer)typ.EqualityComparer).FieldNames); - Assert.IsNotNull(resCfg.PluginConfigurations); Assert.AreEqual(cfg.PluginConfigurations, resCfg.PluginConfigurations); + + var eventCfg = cfg.EventStorageSpi as MemoryEventStorageSpi; + var resEventCfg = resCfg.EventStorageSpi as MemoryEventStorageSpi; + Assert.IsNotNull(eventCfg); + Assert.IsNotNull(resEventCfg); + Assert.AreEqual(eventCfg.ExpirationTimeout, resEventCfg.ExpirationTimeout); + Assert.AreEqual(eventCfg.MaxEventCount, resEventCfg.MaxEventCount); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj ---------------------------------------------------------------------- diff --cc modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj index 1a758ce,6553f1a..b52f968 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj @@@ -91,7 -91,12 +91,11 @@@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> - <Compile Include="Binary\BinaryArrayEqualityComparer.cs" /> <Compile Include="Common\ExceptionFactory.cs" /> + <Compile Include="Events\IEventStorageSpi.cs" /> + <Compile Include="Events\MemoryEventStorageSpi.cs" /> + <Compile Include="Events\NoopEventStorageSpi.cs" /> + <Compile Include="Impl\Binary\BinaryFieldEqualityComparer.cs" /> <Compile Include="Binary\BinaryReflectiveSerializer.cs" /> <Compile Include="Common\JavaException.cs" /> <Compile Include="DataStructures\Configuration\Package-Info.cs" /> http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs ---------------------------------------------------------------------- diff --cc modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs index a3f5daf,20e2be8..c40fc6e --- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs @@@ -319,7 -346,36 +320,33 @@@ namespace Apache.Ignite.Cor else writer.WriteBoolean(false); - // Plugins - // Swap space - SwapSpaceSerializer.Write(writer, SwapSpaceSpi); - + // Event storage + if (EventStorageSpi == null) + { + writer.WriteByte(0); + } + else if (EventStorageSpi is NoopEventStorageSpi) + { + writer.WriteByte(1); + } + else + { + var memEventStorage = EventStorageSpi as MemoryEventStorageSpi; + + if (memEventStorage == null) + { + throw new IgniteException(string.Format( + "Unsupported IgniteConfiguration.EventStorageSpi: '{0}'. " + + "Supported implementations: '{1}', '{2}'.", + EventStorageSpi.GetType(), typeof(NoopEventStorageSpi), typeof(MemoryEventStorageSpi))); + } + + writer.WriteByte(2); + + memEventStorage.Write(writer); + } + + // Plugins (should be last) if (PluginConfigurations != null) { var pos = writer.Stream.Position; @@@ -433,6 -508,20 +460,17 @@@ PessimisticTransactionLogLinger = TimeSpan.FromMilliseconds(r.ReadInt()) }; } + - // Swap - SwapSpaceSpi = SwapSpaceSerializer.Read(r); - + // Event storage + switch (r.ReadByte()) + { + case 1: EventStorageSpi = new NoopEventStorageSpi(); + break; + + case 2: + EventStorageSpi = MemoryEventStorageSpi.Read(r); + break; + } } /// <summary> @@@ -867,5 -961,13 +905,13 @@@ /// </summary> [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public ICollection<IPluginConfiguration> PluginConfigurations { get; set; } + + /// <summary> + /// Gets or sets the event storage interface. + /// <para /> - /// Only predefined implementations are supported: ++ /// Only predefined implementations are supported: + /// <see cref="NoopEventStorageSpi"/>, <see cref="MemoryEventStorageSpi"/>. + /// </summary> + public IEventStorageSpi EventStorageSpi { get; set; } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd ---------------------------------------------------------------------- diff --cc modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd index f041a8f,3691aa0..569925f --- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd +++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd @@@ -1139,6 -1171,65 +1139,28 @@@ </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="swapSpaceSpi" minOccurs="0"> - <xs:annotation> - <xs:documentation>Swap space SPI.</xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:attribute name="type" type="xs:string" use="required"> - <xs:annotation> - <xs:documentation>Assembly-qualified type name.</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="baseDirectory" type="xs:string"> - <xs:annotation> - <xs:documentation>Base directory.</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maximumSparsity" type="xs:decimal"> - <xs:annotation> - <xs:documentation>Maximum sparsity. This property defines maximum acceptable wasted file space to whole file size ratio. When this ratio becomes higher than specified number compacting thread starts working.</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maximumWriteQueueSize" type="xs:int"> - <xs:annotation> - <xs:documentation>Maximum size of the write queue in bytes. If there are more values are waiting to be written to disk then specified size, SPI will block on write operation.</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="readStripesNumber" type="xs:int"> - <xs:annotation> - <xs:documentation>Read stripes number. Defines number of file channels to be used concurrently. Defaults to Environment.ProcessorCount.</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="writeBufferSize" type="xs:int"> - <xs:annotation> - <xs:documentation>Size of the write buffer, in bytes. Write to disk occurs only when this buffer is full.</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - </xs:element> + <xs:element name="eventStorageSpi" minOccurs="0"> + <xs:annotation> + <xs:documentation>Event storage space SPI.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:attribute name="type" type="xs:string" use="required"> + <xs:annotation> + <xs:documentation>Assembly-qualified type name.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="expirationTimeout" type="xs:string"> + <xs:annotation> + <xs:documentation>Expiration timeout for stored events. Negative for unlimited.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxEventCount" type="xs:long"> + <xs:annotation> + <xs:documentation>Maximum event count to store.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + </xs:element> <xs:element name="pluginConfigurations" minOccurs="0"> <xs:annotation> <xs:documentation>Plugin configurations.</xs:documentation> http://git-wip-us.apache.org/repos/asf/ignite/blob/2210635a/pom.xml ----------------------------------------------------------------------
