You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2017/04/03 13:08:12 UTC

ignite git commit: IGNITE-4902 .NET: Fix StartFromApplicationConfiguration() in ASP.NET

Repository: ignite
Updated Branches:
  refs/heads/master 9bb48ee0f -> ece492846


IGNITE-4902 .NET: Fix StartFromApplicationConfiguration() in ASP.NET


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ece49284
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ece49284
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ece49284

Branch: refs/heads/master
Commit: ece49284638f012c39c1dbf49147edf7650fb13f
Parents: 9bb48ee
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Apr 3 16:08:03 2017 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Apr 3 16:08:03 2017 +0300

----------------------------------------------------------------------
 .../IgniteConfigurationSectionTest.cs           |  7 ++++---
 .../dotnet/Apache.Ignite.Core/Ignition.cs       | 22 +++++++++-----------
 .../Impl/Common/IgniteHome.cs                   | 21 ++++++++++++-------
 3 files changed, 28 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ece49284/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSectionTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSectionTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSectionTest.cs
index fc43f46..b507cff 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSectionTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSectionTest.cs
@@ -34,7 +34,8 @@ namespace Apache.Ignite.Core.Tests
         [Test]
         public void TestRead()
         {
-            var section = (IgniteConfigurationSection) ConfigurationManager.GetSection("igniteConfiguration");
+            var section = (IgniteConfigurationSection) ConfigurationManager.GetSection(
+                Ignition.ConfigurationSectionName);
 
             Assert.AreEqual("myGrid1", section.IgniteConfiguration.IgniteInstanceName);
             Assert.AreEqual("cacheName", section.IgniteConfiguration.CacheConfiguration.Single().Name);
@@ -48,7 +49,7 @@ namespace Apache.Ignite.Core.Tests
         {
             Environment.SetEnvironmentVariable(Classpath.EnvIgniteNativeTestClasspath, "true");
 
-            using (var ignite = Ignition.StartFromApplicationConfiguration("igniteConfiguration"))
+            using (var ignite = Ignition.StartFromApplicationConfiguration(Ignition.ConfigurationSectionName))
             {
                 Assert.AreEqual("myGrid1", ignite.Name);
                 Assert.IsNotNull(ignite.GetCache<int, int>("cacheName"));
@@ -62,7 +63,7 @@ namespace Apache.Ignite.Core.Tests
 
             using (var ignite = Ignition.StartFromApplicationConfiguration())
             {
-                Assert.IsTrue(ignite.Name.StartsWith("myGrid"));
+                Assert.AreEqual("myGrid1", ignite.Name);
             }
 
             using (var ignite = Ignition.StartFromApplicationConfiguration(

http://git-wip-us.apache.org/repos/asf/ignite/blob/ece49284/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
index f590794..13e3f61 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
@@ -53,6 +53,11 @@ namespace Apache.Ignite.Core
     /// </summary>
     public static class Ignition
     {
+        /// <summary>
+        /// Default configuration section name.
+        /// </summary>
+        public const string ConfigurationSectionName = "igniteConfiguration";
+
         /** */
         private static readonly object SyncRoot = new object();
 
@@ -118,22 +123,15 @@ namespace Apache.Ignite.Core
         }
 
         /// <summary>
-        /// Reads <see cref="IgniteConfiguration"/> from first <see cref="IgniteConfigurationSection"/> in the 
-        /// application configuration and starts Ignite.
+        /// Reads <see cref="IgniteConfiguration"/> from application configuration 
+        /// <see cref="IgniteConfigurationSection"/> with <see cref="ConfigurationSectionName"/>
+        /// name and starts Ignite.
         /// </summary>
         /// <returns>Started Ignite.</returns>
         public static IIgnite StartFromApplicationConfiguration()
         {
-            var cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
-
-            var section = cfg.Sections.OfType<IgniteConfigurationSection>().FirstOrDefault();
-
-            if (section == null)
-                throw new ConfigurationErrorsException(
-                    string.Format("Could not find {0} in current application configuration",
-                        typeof(IgniteConfigurationSection).Name));
-
-            return Start(section.IgniteConfiguration);
+            // ReSharper disable once IntroduceOptionalParameters.Global
+            return StartFromApplicationConfiguration(ConfigurationSectionName);
         }
 
         /// <summary>

http://git-wip-us.apache.org/repos/asf/ignite/blob/ece49284/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/IgniteHome.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/IgniteHome.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/IgniteHome.cs
index 08f6d84..0290095 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/IgniteHome.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/IgniteHome.cs
@@ -108,13 +108,20 @@ namespace Apache.Ignite.Core.Impl.Common
         /// <returns>Value indicating whether specified dir looks like a Ignite home.</returns>
         private static bool IsIgniteHome(DirectoryInfo dir)
         {
-            return dir.Exists &&
-                   (dir.EnumerateDirectories().Count(x => x.Name == "examples" || x.Name == "bin") == 2 &&
-                    dir.EnumerateDirectories().Count(x => x.Name == "modules" || x.Name == "platforms") == 1)
-                   || // NuGet home
-                   (dir.EnumerateDirectories().Any(x => x.Name == "Libs") &&
-                    (dir.EnumerateFiles("Apache.Ignite.Core.dll").Any() ||
-                     dir.EnumerateFiles("Apache.Ignite.*.nupkg").Any()));
+            try
+            {
+                return dir.Exists &&
+                       (dir.EnumerateDirectories().Count(x => x.Name == "examples" || x.Name == "bin") == 2 &&
+                        dir.EnumerateDirectories().Count(x => x.Name == "modules" || x.Name == "platforms") == 1)
+                       || // NuGet home
+                       (dir.EnumerateDirectories().Any(x => x.Name == "Libs") &&
+                        (dir.EnumerateFiles("Apache.Ignite.Core.dll").Any() ||
+                         dir.EnumerateFiles("Apache.Ignite.*.nupkg").Any()));
+            }
+            catch (IOException)
+            {
+                return false;
+            }
         }
     }
 }