# HG changeset patch # User cin # Date 2021-04-26 12:47:10 # Node ID 28af686e24f7946f34802aca38bbe415380e0c88 # Parent abef3ebaa230b48a972cb0099e5ec52558d43210 Fixed promise rejection when there is not specified error handler in the reaction. FIXED SPELLING IN THE XML CONTAINER CONFIGURATION signleton->singleton Code cleanup Update tests make them working on dotnet core diff --git a/Implab.ServiceHost.Test/Implab.ServiceHost.Test.csproj b/Implab.ServiceHost.Test/Implab.ServiceHost.Test.csproj --- a/Implab.ServiceHost.Test/Implab.ServiceHost.Test.csproj +++ b/Implab.ServiceHost.Test/Implab.ServiceHost.Test.csproj @@ -1,29 +1,28 @@ - - netcoreapp2.0;net46 - /usr/lib/mono/4.5/ - - - - netcoreapp2.0;net46 - - - - false - + + net5.0 + + false + - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + - - - - + \ No newline at end of file diff --git a/Implab.ServiceHost/Implab.ServiceHost.csproj b/Implab.ServiceHost/Implab.ServiceHost.csproj --- a/Implab.ServiceHost/Implab.ServiceHost.csproj +++ b/Implab.ServiceHost/Implab.ServiceHost.csproj @@ -6,11 +6,11 @@ The configurable application host. Provides simple and flexible Xml configuration for UnityContainer. - 2012-2018 Sergey Smirnov - 1.0.3 - https://bitbucket.org/wozard/implabnet/src/v3/Implab/license.txt - https://bitbucket.org/wozard/implabnet - https://bitbucket.org/wozard/implabnet + 2012-2021 Sergey Smirnov + 1.0.4 + https://code.implab.org/implab/ImplabNet/files/default/Implab/license.txt + https://code.implab.org/implab/ImplabNet/ + https://code.implab.org/implab/ImplabNet/ mercurial Implab;Xml configuration;IoC;Unity container diff --git a/Implab.ServiceHost/src/Unity/AbstractRegistration.cs b/Implab.ServiceHost/src/Unity/AbstractRegistration.cs --- a/Implab.ServiceHost/src/Unity/AbstractRegistration.cs +++ b/Implab.ServiceHost/src/Unity/AbstractRegistration.cs @@ -1,7 +1,6 @@ using System; using System.Xml.Serialization; using Unity.Lifetime; -using Unity.Registration; namespace Implab.ServiceHost.Unity { @@ -18,7 +17,7 @@ namespace Implab.ServiceHost.Unity get; set; } - [XmlElement("signleton", typeof(SingletonLifetimeElement))] + [XmlElement("singleton", typeof(SingletonLifetimeElement))] [XmlElement("context", typeof(ContextLifetimeElement))] [XmlElement("container", typeof(ContainerLifetimeElement))] [XmlElement("hierarchy", typeof(HierarchicalLifetimeElement))] diff --git a/Implab.ServiceHost/src/Unity/ContainerConfigurationSchema.cs b/Implab.ServiceHost/src/Unity/ContainerConfigurationSchema.cs --- a/Implab.ServiceHost/src/Unity/ContainerConfigurationSchema.cs +++ b/Implab.ServiceHost/src/Unity/ContainerConfigurationSchema.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; using System.Xml; using System.Xml.Serialization; using Implab.Components; diff --git a/Implab.ServiceHost/src/Unity/ProvidesElement.cs b/Implab.ServiceHost/src/Unity/ProvidesElement.cs --- a/Implab.ServiceHost/src/Unity/ProvidesElement.cs +++ b/Implab.ServiceHost/src/Unity/ProvidesElement.cs @@ -8,7 +8,7 @@ namespace Implab.ServiceHost.Unity { [XmlAttribute("name")] public string RegistrationName { get; set; } - [XmlElement("signleton", typeof(SingletonLifetimeElement))] + [XmlElement("singleton", typeof(SingletonLifetimeElement))] [XmlElement("context", typeof(ContextLifetimeElement))] [XmlElement("container", typeof(ContainerLifetimeElement))] [XmlElement("hierarchy", typeof(HierarchicalLifetimeElement))] diff --git a/Implab.ServiceHost/src/Unity/SingletonLifetimeElement.cs b/Implab.ServiceHost/src/Unity/SingletonLifetimeElement.cs --- a/Implab.ServiceHost/src/Unity/SingletonLifetimeElement.cs +++ b/Implab.ServiceHost/src/Unity/SingletonLifetimeElement.cs @@ -1,7 +1,6 @@ using Unity.Lifetime; -namespace Implab.ServiceHost.Unity -{ +namespace Implab.ServiceHost.Unity { public class SingletonLifetimeElement : LifetimeElement { public override LifetimeManager GetLifetime(ContainerBuilder builder) { return new SingletonLifetimeManager(); diff --git a/Implab.Test/Implab.Test.csproj b/Implab.Test/Implab.Test.csproj --- a/Implab.Test/Implab.Test.csproj +++ b/Implab.Test/Implab.Test.csproj @@ -1,24 +1,24 @@ - - netcoreapp2.0;net46 - /usr/lib/mono/4.5/ - + + net5.0 - - netcoreapp2.0;net46 - + false + - - false - + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + - - - - - - - - - + + + + diff --git a/Implab/Implab.csproj b/Implab/Implab.csproj --- a/Implab/Implab.csproj +++ b/Implab/Implab.csproj @@ -7,8 +7,8 @@ JSON pull-parser, ECMA-style promises, lightweight synchonization routines Signal and SharedLock, Trace helpers on top of System.Diagnostics, ObjectPool etc. - 2012-2018 Sergey Smirnov - 3.0.14 + 2012-2021 Sergey Smirnov + 3.0.16 https://bitbucket.org/wozard/implabnet/src/v3/Implab/license.txt https://bitbucket.org/wozard/implabnet https://bitbucket.org/wozard/implabnet @@ -20,7 +20,7 @@ - + diff --git a/Implab/src/AbstractEvent.cs b/Implab/src/AbstractEvent.cs --- a/Implab/src/AbstractEvent.cs +++ b/Implab/src/AbstractEvent.cs @@ -1,8 +1,6 @@ using System; using Implab.Parallels; using System.Threading; -using System.Reflection; -using System.Diagnostics; namespace Implab { /// diff --git a/Implab/src/Automaton/IAlphabet.cs b/Implab/src/Automaton/IAlphabet.cs --- a/Implab/src/Automaton/IAlphabet.cs +++ b/Implab/src/Automaton/IAlphabet.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Collections.Generic; namespace Implab.Automaton { /// diff --git a/Implab/src/Automaton/IDFATableBuilder.cs b/Implab/src/Automaton/IDFATableBuilder.cs --- a/Implab/src/Automaton/IDFATableBuilder.cs +++ b/Implab/src/Automaton/IDFATableBuilder.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; namespace Implab.Automaton { public interface IDFATableBuilder : IDFATable, ICollection { diff --git a/Implab/src/Automaton/IndexedAlphabetBase.cs b/Implab/src/Automaton/IndexedAlphabetBase.cs --- a/Implab/src/Automaton/IndexedAlphabetBase.cs +++ b/Implab/src/Automaton/IndexedAlphabetBase.cs @@ -1,8 +1,5 @@ -using Implab; -using System; +using System; using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; namespace Implab.Automaton { /// diff --git a/Implab/src/CustomEqualityComparer.cs b/Implab/src/CustomEqualityComparer.cs --- a/Implab/src/CustomEqualityComparer.cs +++ b/Implab/src/CustomEqualityComparer.cs @@ -1,9 +1,5 @@ -using Implab; -using System; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Implab { /// diff --git a/Implab/src/Diagnostics/Trace.cs b/Implab/src/Diagnostics/Trace.cs --- a/Implab/src/Diagnostics/Trace.cs +++ b/Implab/src/Diagnostics/Trace.cs @@ -2,12 +2,11 @@ #define TRACE using System; -using System.Collections.Generic; using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; + +#if NETFX_TRACE_BUG + using System.Threading; +#endif namespace Implab.Diagnostics { /// diff --git a/Implab/src/Diagnostics/TraceRegistry.cs b/Implab/src/Diagnostics/TraceRegistry.cs --- a/Implab/src/Diagnostics/TraceRegistry.cs +++ b/Implab/src/Diagnostics/TraceRegistry.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using Implab.Parallels; namespace Implab.Diagnostics { diff --git a/Implab/src/Diagnostics/TraceSourceChannel`1.cs b/Implab/src/Diagnostics/TraceSourceChannel`1.cs --- a/Implab/src/Diagnostics/TraceSourceChannel`1.cs +++ b/Implab/src/Diagnostics/TraceSourceChannel`1.cs @@ -1,6 +1,5 @@ using System; using System.Threading; -using TraceSource = System.Diagnostics.TraceSource; namespace Implab.Diagnostics { /// diff --git a/Implab/src/Formats/CharMap.cs b/Implab/src/Formats/CharMap.cs --- a/Implab/src/Formats/CharMap.cs +++ b/Implab/src/Formats/CharMap.cs @@ -1,10 +1,7 @@ using Implab.Automaton; -using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace Implab.Formats { public class CharMap : IAlphabet { diff --git a/Implab/src/Formats/FastInpurScanner.cs b/Implab/src/Formats/FastInpurScanner.cs --- a/Implab/src/Formats/FastInpurScanner.cs +++ b/Implab/src/Formats/FastInpurScanner.cs @@ -1,11 +1,6 @@ using Implab.Automaton; -using System; -using System.Collections.Generic; using System.Diagnostics; -using System.Linq; using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace Implab.Formats { diff --git a/Implab/src/Formats/Grammar.cs b/Implab/src/Formats/Grammar.cs --- a/Implab/src/Formats/Grammar.cs +++ b/Implab/src/Formats/Grammar.cs @@ -1,5 +1,4 @@ -using Implab; -using System; +using System; using System.Collections.Generic; using System.Linq; using Implab.Automaton; diff --git a/Implab/src/Formats/InputScanner.cs b/Implab/src/Formats/InputScanner.cs --- a/Implab/src/Formats/InputScanner.cs +++ b/Implab/src/Formats/InputScanner.cs @@ -1,10 +1,5 @@ using Implab.Automaton; -using System; -using System.Collections.Generic; -using System.Linq; using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace Implab.Formats { public class InputScanner { diff --git a/Implab/src/Formats/Json/JsonReader.cs b/Implab/src/Formats/Json/JsonReader.cs --- a/Implab/src/Formats/Json/JsonReader.cs +++ b/Implab/src/Formats/Json/JsonReader.cs @@ -7,7 +7,6 @@ using System.Linq; using Implab.Components; using System.Collections.Generic; using System.Text; -using System.Globalization; namespace Implab.Formats.Json { /// diff --git a/Implab/src/Formats/Json/JsonScanner.cs b/Implab/src/Formats/Json/JsonScanner.cs --- a/Implab/src/Formats/Json/JsonScanner.cs +++ b/Implab/src/Formats/Json/JsonScanner.cs @@ -1,9 +1,6 @@ -using System; -using System.Globalization; -using Implab.Automaton; +using Implab.Automaton; using System.Text; using Implab.Components; -using System.IO; namespace Implab.Formats.Json { /// diff --git a/Implab/src/Formats/Json/JsonStringScanner.cs b/Implab/src/Formats/Json/JsonStringScanner.cs --- a/Implab/src/Formats/Json/JsonStringScanner.cs +++ b/Implab/src/Formats/Json/JsonStringScanner.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Implab.Formats.Json { public class JsonStringScanner : JsonScanner { diff --git a/Implab/src/Formats/Json/JsonTextScanner.cs b/Implab/src/Formats/Json/JsonTextScanner.cs --- a/Implab/src/Formats/Json/JsonTextScanner.cs +++ b/Implab/src/Formats/Json/JsonTextScanner.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; +using System.IO; using System.Text; -using System.Threading.Tasks; namespace Implab.Formats.Json { public class JsonTextScanner : JsonScanner { diff --git a/Implab/src/Formats/Json/StringTranslator.cs b/Implab/src/Formats/Json/StringTranslator.cs --- a/Implab/src/Formats/Json/StringTranslator.cs +++ b/Implab/src/Formats/Json/StringTranslator.cs @@ -1,11 +1,5 @@ -using Implab; -using Implab.Formats; -using System; -using System.Collections.Generic; -using System.Diagnostics; +using System.Diagnostics; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Implab.Formats.Json { /// diff --git a/Implab/src/IPromise.cs b/Implab/src/IPromise.cs --- a/Implab/src/IPromise.cs +++ b/Implab/src/IPromise.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace Implab { public interface IPromise { diff --git a/Implab/src/IPromiseT.cs b/Implab/src/IPromiseT.cs --- a/Implab/src/IPromiseT.cs +++ b/Implab/src/IPromiseT.cs @@ -1,6 +1,4 @@ -using System; - -namespace Implab { +namespace Implab { public interface IPromise : IPromise { void Then(IResolvable next); diff --git a/Implab/src/Parallels/AsyncQueue.cs b/Implab/src/Parallels/AsyncQueue.cs --- a/Implab/src/Parallels/AsyncQueue.cs +++ b/Implab/src/Parallels/AsyncQueue.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System; using System.Collections; -using System.Diagnostics; using System.Runtime.CompilerServices; namespace Implab.Parallels { diff --git a/Implab/src/Parallels/SharedLock.cs b/Implab/src/Parallels/SharedLock.cs --- a/Implab/src/Parallels/SharedLock.cs +++ b/Implab/src/Parallels/SharedLock.cs @@ -1,6 +1,5 @@ using System; using System.Threading; -using System.Diagnostics; namespace Implab.Parallels { /// diff --git a/Implab/src/Parallels/Signal.cs b/Implab/src/Parallels/Signal.cs --- a/Implab/src/Parallels/Signal.cs +++ b/Implab/src/Parallels/Signal.cs @@ -1,5 +1,4 @@ -using System; -using System.Threading; +using System.Threading; namespace Implab.Parallels { /// diff --git a/Implab/src/Parallels/SimpleAsyncQueue.cs b/Implab/src/Parallels/SimpleAsyncQueue.cs --- a/Implab/src/Parallels/SimpleAsyncQueue.cs +++ b/Implab/src/Parallels/SimpleAsyncQueue.cs @@ -1,6 +1,5 @@ using System.Threading; using System.Collections.Generic; -using System; using System.Collections; namespace Implab.Parallels { @@ -39,7 +38,7 @@ namespace Implab.Parallels { public void Enqueue(T value) { var next = new Node(value); - // Interlocaked.CompareExchange implies Thread.MemoryBarrier(); + // Interlocked.CompareExchange implies Thread.MemoryBarrier(); // to ensure that the next node is completely constructed var last = Interlocked.Exchange(ref m_last, next); diff --git a/Implab/src/Promise.cs b/Implab/src/Promise.cs --- a/Implab/src/Promise.cs +++ b/Implab/src/Promise.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Threading; -using System.Threading.Tasks; using Implab.Parallels; namespace Implab { diff --git a/Implab/src/PromiseActionReaction.cs b/Implab/src/PromiseActionReaction.cs --- a/Implab/src/PromiseActionReaction.cs +++ b/Implab/src/PromiseActionReaction.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Implab { class PromiseActionReaction : IResolvable { @@ -39,7 +38,7 @@ namespace Implab { } public void Reject(Exception error) { - if (m_fulfilled != null) { + if (m_rejected != null) { if (m_dispatcher != null) m_dispatcher.Enqueue(RejectImpl, error); else diff --git a/Implab/src/PromiseActionReaction`1.cs b/Implab/src/PromiseActionReaction`1.cs --- a/Implab/src/PromiseActionReaction`1.cs +++ b/Implab/src/PromiseActionReaction`1.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Implab { class PromiseActionReaction : IResolvable { @@ -38,7 +37,7 @@ namespace Implab { } public void Reject(Exception error) { - if (m_fulfilled != null) { + if (m_rejected != null) { if (m_dispatcher != null) m_dispatcher.Enqueue(RejectImpl, error); else diff --git a/Implab/src/PromiseExtensions.cs b/Implab/src/PromiseExtensions.cs --- a/Implab/src/PromiseExtensions.cs +++ b/Implab/src/PromiseExtensions.cs @@ -1,8 +1,4 @@ -using System.Threading; -using System; -using Implab.Diagnostics; -using System.Collections.Generic; -using System.Linq; +using System; namespace Implab { public static class PromiseExtensions { diff --git a/Implab/src/PromiseFuncReaction`1.cs b/Implab/src/PromiseFuncReaction`1.cs --- a/Implab/src/PromiseFuncReaction`1.cs +++ b/Implab/src/PromiseFuncReaction`1.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Implab { class PromiseFuncReaction : IResolvable { @@ -38,7 +37,7 @@ namespace Implab { } public void Reject(Exception error) { - if (m_fulfilled != null) { + if (m_rejected != null) { if (m_dispatcher != null) m_dispatcher.Enqueue(RejectImpl, error); else diff --git a/Implab/src/PromiseFuncReaction`2.cs b/Implab/src/PromiseFuncReaction`2.cs --- a/Implab/src/PromiseFuncReaction`2.cs +++ b/Implab/src/PromiseFuncReaction`2.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Implab { class PromiseFuncReaction : IResolvable { @@ -43,7 +42,7 @@ namespace Implab { } public void Reject(Exception error) { - if (m_fulfilled != null) { + if (m_rejected != null) { if (m_dispatcher != null) m_dispatcher.Enqueue(RejectImpl, error); else diff --git a/Implab/src/Promise`1.cs b/Implab/src/Promise`1.cs --- a/Implab/src/Promise`1.cs +++ b/Implab/src/Promise`1.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; using System.Reflection; using Implab.Parallels; diff --git a/Implab/src/Safe.cs b/Implab/src/Safe.cs --- a/Implab/src/Safe.cs +++ b/Implab/src/Safe.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Diagnostics; using System.Collections; @@ -13,8 +11,7 @@ using System.Threading; using System.Threading.Tasks; #endif -namespace Implab -{ +namespace Implab { public static class Safe { [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/Implab/src/Xml/JsonXmlCaseTransform.cs b/Implab/src/Xml/JsonXmlCaseTransform.cs --- a/Implab/src/Xml/JsonXmlCaseTransform.cs +++ b/Implab/src/Xml/JsonXmlCaseTransform.cs @@ -1,11 +1,7 @@ -using System; - -namespace Implab.Xml -{ - public enum JsonXmlCaseTransform - { - None, - UcFirst, - LcFirst - } +namespace Implab.Xml { + public enum JsonXmlCaseTransform { + None, + UcFirst, + LcFirst + } } \ No newline at end of file diff --git a/Implab/src/Xml/JsonXmlReader.cs b/Implab/src/Xml/JsonXmlReader.cs --- a/Implab/src/Xml/JsonXmlReader.cs +++ b/Implab/src/Xml/JsonXmlReader.cs @@ -1,7 +1,6 @@ using Implab.Formats.Json; using System; using System.Collections.Generic; -using System.Globalization; using System.IO; using System.Linq; using System.Xml; diff --git a/Implab/src/Xml/JsonXmlReaderPosition.cs b/Implab/src/Xml/JsonXmlReaderPosition.cs --- a/Implab/src/Xml/JsonXmlReaderPosition.cs +++ b/Implab/src/Xml/JsonXmlReaderPosition.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Implab.Xml { +namespace Implab.Xml { enum JsonXmlReaderPosition { Initial, Declaration, diff --git a/Implab/src/Xml/SerializationHelpers.cs b/Implab/src/Xml/SerializationHelpers.cs --- a/Implab/src/Xml/SerializationHelpers.cs +++ b/Implab/src/Xml/SerializationHelpers.cs @@ -1,10 +1,5 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; +using System.IO; using System.Reflection; -using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; using System.Xml.Serialization; diff --git a/Implab/src/Xml/SerializersPool.cs b/Implab/src/Xml/SerializersPool.cs --- a/Implab/src/Xml/SerializersPool.cs +++ b/Implab/src/Xml/SerializersPool.cs @@ -1,10 +1,6 @@ using Implab.Components; using System; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Serialization; diff --git a/Implab/src/Xml/XmlNameContext.cs b/Implab/src/Xml/XmlNameContext.cs --- a/Implab/src/Xml/XmlNameContext.cs +++ b/Implab/src/Xml/XmlNameContext.cs @@ -1,8 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; namespace Implab.Xml { diff --git a/Implab/src/Xml/XmlSimpleAttribute.cs b/Implab/src/Xml/XmlSimpleAttribute.cs --- a/Implab/src/Xml/XmlSimpleAttribute.cs +++ b/Implab/src/Xml/XmlSimpleAttribute.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml; +using System.Xml; namespace Implab.Xml { public class XmlSimpleAttribute { diff --git a/Implab/src/Xml/XmlToJson.cs b/Implab/src/Xml/XmlToJson.cs --- a/Implab/src/Xml/XmlToJson.cs +++ b/Implab/src/Xml/XmlToJson.cs @@ -1,10 +1,8 @@ -using System; using System.IO; using System.Reflection; using System.Xml; using System.Xml.Xsl; using Implab.Components; -using Implab.Formats.Json; namespace Implab.Xml { public class XmlToJson {