/// <summary> /// Serializes this instance to the specified XML writer. /// </summary> /// <param name="writer">The writer.</param> /// <param name="rootElementName">Name of the root element.</param> public void ToXml(XmlWriter writer, string rootElementName) { IgniteArgumentCheck.NotNull(writer, "writer"); IgniteArgumentCheck.NotNullOrEmpty(rootElementName, "rootElementName"); IgniteConfigurationXmlSerializer.Serialize(this, writer, rootElementName); }
/// <summary> /// Reads XML from the configuration file. /// </summary> /// <param name="reader">The reader object, which reads from the configuration file.</param> protected override void DeserializeSection(XmlReader reader) { IgniteArgumentCheck.NotNull(reader, "reader"); IgniteClientConfiguration = IgniteConfigurationXmlSerializer .Deserialize <IgniteClientConfiguration>(reader); }
/// <summary> /// Checks the schema validation. /// </summary> private static void CheckSchemaValidation() { var sb = new StringBuilder(); using (var xmlWriter = XmlWriter.Create(sb)) { IgniteConfigurationXmlSerializer.Serialize(GetTestConfig(), xmlWriter, "igniteConfiguration"); } CheckSchemaValidation(sb.ToString()); }
/// <summary> /// Serializes and deserializes a config. /// </summary> private static IgniteConfiguration SerializeDeserialize(IgniteConfiguration cfg) { var sb = new StringBuilder(); using (var xmlWriter = XmlWriter.Create(sb)) { IgniteConfigurationXmlSerializer.Serialize(cfg, xmlWriter, "igniteConfig"); } var xml = sb.ToString(); using (var xmlReader = XmlReader.Create(new StringReader(xml))) { xmlReader.MoveToContent(); return(IgniteConfigurationXmlSerializer.Deserialize(xmlReader)); } }
/// <summary> /// Creates an XML string containing an unmerged view of the <see cref="ConfigurationSection" /> /// object as a single section to write to a file. /// </summary> /// <param name="parentElement">The <see cref="ConfigurationElement" /> /// instance to use as the parent when performing the un-merge.</param> /// <param name="name">The name of the section to create.</param> /// <param name="saveMode">The <see cref="ConfigurationSaveMode" /> instance /// to use when writing to a string.</param> /// <returns> /// An XML string containing an unmerged view of the <see cref="ConfigurationSection" /> object. /// </returns> protected override string SerializeSection(ConfigurationElement parentElement, string name, ConfigurationSaveMode saveMode) { IgniteArgumentCheck.NotNull(parentElement, "parentElement"); IgniteArgumentCheck.NotNullOrEmpty(name, "name"); if (IgniteConfiguration == null) { return(string.Format("<{0} />", name)); } var sb = new StringBuilder(); using (var xmlWriter = XmlWriter.Create(sb)) { IgniteConfigurationXmlSerializer.Serialize(IgniteConfiguration, xmlWriter, name); return(sb.ToString()); } }
/// <summary> /// Deserializes IgniteConfiguration from the XML reader. /// </summary> /// <param name="reader">The reader.</param> /// <returns>Deserialized instance.</returns> public static IgniteConfiguration FromXml(XmlReader reader) { IgniteArgumentCheck.NotNull(reader, "reader"); return(IgniteConfigurationXmlSerializer.Deserialize(reader)); }
public void TestPredefinedXml() { var xml = @"<igniteConfig workDirectory='c:' JvmMaxMemoryMb='1024' MetricsLogFrequency='0:0:10' isDaemon='true' isLateAffinityAssignment='false' springConfigUrl='c:\myconfig.xml'> <localhost>127.1.1.1</localhost> <binaryConfiguration compactFooter='false'> <defaultNameMapper type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+NameMapper, Apache.Ignite.Core.Tests' bar='testBar' /> <types> <string>Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+FooClass, Apache.Ignite.Core.Tests</string> </types> </binaryConfiguration> <discoverySpi type='TcpDiscoverySpi' joinTimeout='0:1:0' localAddress='192.168.1.1' localPort='6655'> <ipFinder type='TcpDiscoveryMulticastIpFinder' addressRequestAttempts='7' /> </discoverySpi> <communicationSpi type='TcpCommunicationSpi' ackSendThreshold='33' idleConnectionTimeout='0:1:2' /> <jvmOptions><string>-Xms1g</string><string>-Xmx4g</string></jvmOptions> <lifecycleBeans> <iLifecycleBean type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+LifecycleBean, Apache.Ignite.Core.Tests' foo='15' /> </lifecycleBeans> <cacheConfiguration> <cacheConfiguration cacheMode='Replicated' readThrough='true' writeThrough='true'> <queryEntities> <queryEntity keyType='System.Int32' valueType='System.String'> <fields> <queryField name='length' fieldType='System.Int32' /> </fields> <aliases> <queryAlias fullName='somefield.field' alias='shortField' /> </aliases> <indexes> <queryIndex name='idx' indexType='Geospatial'> <fields> <queryIndexField name='indexFld' isDescending='true' /> </fields> </queryIndex> </indexes> </queryEntity> </queryEntities> <evictionPolicy type='LruEvictionPolicy' batchSize='1' maxSize='2' maxMemorySize='3' /> <nearConfiguration nearStartSize='7'> <evictionPolicy type='FifoEvictionPolicy' batchSize='10' maxSize='20' maxMemorySize='30' /> </nearConfiguration> </cacheConfiguration> <cacheConfiguration name='secondCache' /> </cacheConfiguration> <includedEventTypes> <int>42</int> <int>TaskFailed</int> <int>JobFinished</int> </includedEventTypes> <userAttributes><pair key='myNode' value='true' /></userAttributes> <atomicConfiguration backups='2' cacheMode='Local' atomicSequenceReserveSize='250' /> <transactionConfiguration defaultTransactionConcurrency='Optimistic' defaultTransactionIsolation='RepeatableRead' defaultTimeout='0:1:2' pessimisticTransactionLogSize='15' pessimisticTransactionLogLinger='0:0:33' /> </igniteConfig>"; var reader = XmlReader.Create(new StringReader(xml)); var cfg = IgniteConfigurationXmlSerializer.Deserialize(reader); Assert.AreEqual("c:", cfg.WorkDirectory); Assert.AreEqual("127.1.1.1", cfg.Localhost); Assert.IsTrue(cfg.IsDaemon); Assert.IsFalse(cfg.IsLateAffinityAssignment); Assert.AreEqual(1024, cfg.JvmMaxMemoryMb); Assert.AreEqual(TimeSpan.FromSeconds(10), cfg.MetricsLogFrequency); Assert.AreEqual(TimeSpan.FromMinutes(1), ((TcpDiscoverySpi)cfg.DiscoverySpi).JoinTimeout); Assert.AreEqual("192.168.1.1", ((TcpDiscoverySpi)cfg.DiscoverySpi).LocalAddress); Assert.AreEqual(6655, ((TcpDiscoverySpi)cfg.DiscoverySpi).LocalPort); Assert.AreEqual(7, ((TcpDiscoveryMulticastIpFinder)((TcpDiscoverySpi)cfg.DiscoverySpi).IpFinder).AddressRequestAttempts); Assert.AreEqual(new[] { "-Xms1g", "-Xmx4g" }, cfg.JvmOptions); Assert.AreEqual(15, ((LifecycleBean)cfg.LifecycleBeans.Single()).Foo); Assert.AreEqual("testBar", ((NameMapper)cfg.BinaryConfiguration.DefaultNameMapper).Bar); Assert.AreEqual( "Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+FooClass, Apache.Ignite.Core.Tests", cfg.BinaryConfiguration.Types.Single()); Assert.IsFalse(cfg.BinaryConfiguration.CompactFooter); Assert.AreEqual(new[] { 42, EventType.TaskFailed, EventType.JobFinished }, cfg.IncludedEventTypes); Assert.AreEqual(@"c:\myconfig.xml", cfg.SpringConfigUrl); Assert.AreEqual("secondCache", cfg.CacheConfiguration.Last().Name); var cacheCfg = cfg.CacheConfiguration.First(); Assert.AreEqual(CacheMode.Replicated, cacheCfg.CacheMode); Assert.IsTrue(cacheCfg.ReadThrough); Assert.IsTrue(cacheCfg.WriteThrough); var queryEntity = cacheCfg.QueryEntities.Single(); Assert.AreEqual(typeof(int), queryEntity.KeyType); Assert.AreEqual(typeof(string), queryEntity.ValueType); Assert.AreEqual("length", queryEntity.Fields.Single().Name); Assert.AreEqual(typeof(int), queryEntity.Fields.Single().FieldType); Assert.AreEqual("somefield.field", queryEntity.Aliases.Single().FullName); Assert.AreEqual("shortField", queryEntity.Aliases.Single().Alias); Assert.AreEqual(QueryIndexType.Geospatial, queryEntity.Indexes.Single().IndexType); Assert.AreEqual("indexFld", queryEntity.Indexes.Single().Fields.Single().Name); Assert.AreEqual(true, queryEntity.Indexes.Single().Fields.Single().IsDescending); var nearCfg = cacheCfg.NearConfiguration; Assert.IsNotNull(nearCfg); Assert.AreEqual(7, nearCfg.NearStartSize); var plc = nearCfg.EvictionPolicy as FifoEvictionPolicy; Assert.IsNotNull(plc); Assert.AreEqual(10, plc.BatchSize); Assert.AreEqual(20, plc.MaxSize); Assert.AreEqual(30, plc.MaxMemorySize); var plc2 = cacheCfg.EvictionPolicy as LruEvictionPolicy; Assert.IsNotNull(plc2); Assert.AreEqual(1, plc2.BatchSize); Assert.AreEqual(2, plc2.MaxSize); Assert.AreEqual(3, plc2.MaxMemorySize); Assert.AreEqual(new Dictionary <string, object> { { "myNode", "true" } }, cfg.UserAttributes); var atomicCfg = cfg.AtomicConfiguration; Assert.AreEqual(2, atomicCfg.Backups); Assert.AreEqual(CacheMode.Local, atomicCfg.CacheMode); Assert.AreEqual(250, atomicCfg.AtomicSequenceReserveSize); var tx = cfg.TransactionConfiguration; Assert.AreEqual(TransactionConcurrency.Optimistic, tx.DefaultTransactionConcurrency); Assert.AreEqual(TransactionIsolation.RepeatableRead, tx.DefaultTransactionIsolation); Assert.AreEqual(new TimeSpan(0, 1, 2), tx.DefaultTimeout); Assert.AreEqual(15, tx.PessimisticTransactionLogSize); Assert.AreEqual(TimeSpan.FromSeconds(33), tx.PessimisticTransactionLogLinger); var comm = cfg.CommunicationSpi as TcpCommunicationSpi; Assert.IsNotNull(comm); Assert.AreEqual(33, comm.AckSendThreshold); Assert.AreEqual(new TimeSpan(0, 1, 2), comm.IdleConnectionTimeout); }
/// <summary> /// Deserializes IgniteClientConfiguration from the XML string. /// </summary> /// <param name="xml">Xml string.</param> /// <returns>Deserialized instance.</returns> public static IgniteClientConfiguration FromXml(string xml) { return(IgniteConfigurationXmlSerializer.Deserialize <IgniteClientConfiguration>(xml)); }
/// <summary> /// Deserializes IgniteClientConfiguration from the XML reader. /// </summary> /// <param name="reader">The reader.</param> /// <returns>Deserialized instance.</returns> public static IgniteClientConfiguration FromXml(XmlReader reader) { return(IgniteConfigurationXmlSerializer.Deserialize <IgniteClientConfiguration>(reader)); }
/// <summary> /// Serializes this instance to an XML string. /// </summary> public string ToXml() { return(IgniteConfigurationXmlSerializer.Serialize(this, "igniteClientConfiguration")); }
/// <summary> /// Serializes this instance to the specified XML writer. /// </summary> /// <param name="writer">The writer.</param> /// <param name="rootElementName">Name of the root element.</param> public void ToXml(XmlWriter writer, string rootElementName) { IgniteConfigurationXmlSerializer.Serialize(this, writer, rootElementName); }
public void TestPredefinedXml() { var xml = @"<igniteConfig workDirectory='c:' JvmMaxMemoryMb='1024' MetricsLogFrequency='0:0:10'> <localhost>127.1.1.1</localhost> <binaryConfiguration compactFooter='false'> <defaultNameMapper type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+NameMapper, Apache.Ignite.Core.Tests' bar='testBar' /> <types> <string>Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+FooClass, Apache.Ignite.Core.Tests</string> </types> </binaryConfiguration> <discoverySpi type='TcpDiscoverySpi' joinTimeout='0:1:0'> <ipFinder type='TcpDiscoveryMulticastIpFinder' addressRequestAttempts='7' /> </discoverySpi> <jvmOptions><string>-Xms1g</string><string>-Xmx4g</string></jvmOptions> <lifecycleBeans> <iLifecycleBean type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+LifecycleBean, Apache.Ignite.Core.Tests' foo='15' /> </lifecycleBeans> <cacheConfiguration> <cacheConfiguration cacheMode='Replicated' readThrough='true' writeThrough='true'> <queryEntities> <queryEntity keyType='System.Int32' valueType='System.String'> <fields> <queryField name='length' fieldType='System.Int32' /> </fields> <aliases> <queryAlias fullName='somefield.field' alias='shortField' /> </aliases> <indexes> <queryIndex name='idx' indexType='Geospatial'> <fields> <queryIndexField name='indexFld' isDescending='true' /> </fields> </queryIndex> </indexes> </queryEntity> </queryEntities> </cacheConfiguration> <cacheConfiguration name='secondCache' /> </cacheConfiguration> <includedEventTypes> <int>42</int> <int>TaskFailed</int> <int>JobFinished</int> </includedEventTypes> </igniteConfig>"; var reader = XmlReader.Create(new StringReader(xml)); var cfg = IgniteConfigurationXmlSerializer.Deserialize(reader); Assert.AreEqual("c:", cfg.WorkDirectory); Assert.AreEqual("127.1.1.1", cfg.Localhost); Assert.AreEqual(1024, cfg.JvmMaxMemoryMb); Assert.AreEqual(TimeSpan.FromSeconds(10), cfg.MetricsLogFrequency); Assert.AreEqual(TimeSpan.FromMinutes(1), ((TcpDiscoverySpi)cfg.DiscoverySpi).JoinTimeout); Assert.AreEqual(7, ((TcpDiscoveryMulticastIpFinder)((TcpDiscoverySpi)cfg.DiscoverySpi).IpFinder).AddressRequestAttempts); Assert.AreEqual(new[] { "-Xms1g", "-Xmx4g" }, cfg.JvmOptions); Assert.AreEqual(15, ((LifecycleBean)cfg.LifecycleBeans.Single()).Foo); Assert.AreEqual("testBar", ((NameMapper)cfg.BinaryConfiguration.DefaultNameMapper).Bar); Assert.AreEqual( "Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+FooClass, Apache.Ignite.Core.Tests", cfg.BinaryConfiguration.Types.Single()); Assert.IsFalse(cfg.BinaryConfiguration.CompactFooter); Assert.AreEqual(new[] { 42, EventType.TaskFailed, EventType.JobFinished }, cfg.IncludedEventTypes); Assert.AreEqual("secondCache", cfg.CacheConfiguration.Last().Name); var cacheCfg = cfg.CacheConfiguration.First(); Assert.AreEqual(CacheMode.Replicated, cacheCfg.CacheMode); Assert.IsTrue(cacheCfg.ReadThrough); Assert.IsTrue(cacheCfg.WriteThrough); var queryEntity = cacheCfg.QueryEntities.Single(); Assert.AreEqual(typeof(int), queryEntity.KeyType); Assert.AreEqual(typeof(string), queryEntity.ValueType); Assert.AreEqual("length", queryEntity.Fields.Single().Name); Assert.AreEqual(typeof(int), queryEntity.Fields.Single().FieldType); Assert.AreEqual("somefield.field", queryEntity.Aliases.Single().FullName); Assert.AreEqual("shortField", queryEntity.Aliases.Single().Alias); Assert.AreEqual(QueryIndexType.Geospatial, queryEntity.Indexes.Single().IndexType); Assert.AreEqual("indexFld", queryEntity.Indexes.Single().Fields.Single().Name); Assert.AreEqual(true, queryEntity.Indexes.Single().Fields.Single().IsDescending); }