blob: e3d68066e91b19c0ba91ad3fb2248b09cdf8d9f4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Apache.Ignite.Examples.Shared
{
using System;
using System.Collections.Generic;
using Apache.Ignite.Core;
using Apache.Ignite.Core.Cache;
using Apache.Ignite.Core.Client;
using Apache.Ignite.Core.Client.Cache;
using Apache.Ignite.Core.Deployment;
using Apache.Ignite.Core.Discovery.Tcp;
using Apache.Ignite.Core.Discovery.Tcp.Multicast;
using Apache.Ignite.Core.Log;
using Apache.Ignite.Examples.Shared.Models;
using Apache.Ignite.Examples.Shared.Services;
/// <summary>
/// Common configuration and sample data.
/// </summary>
public static class Utils
{
/// <summary>
/// Initializes the <see cref="Utils"/> class.
/// </summary>
static Utils()
{
// Only necessary during Ignite development.
Environment.SetEnvironmentVariable("IGNITE_NATIVE_TEST_CLASSPATH", "true");
}
/// <summary>
/// Gets the server node configuration.
/// </summary>
public static IgniteConfiguration GetServerNodeConfiguration()
{
// None of the options below are mandatory for the examples to work.
// * Discovery and localhost settings improve startup time
// * Logging options reduce console output
return new IgniteConfiguration
{
Localhost = "127.0.0.1",
DiscoverySpi = new TcpDiscoverySpi
{
IpFinder = new TcpDiscoveryMulticastIpFinder
{
Endpoints = new[]
{
"127.0.0.1:47500..47502"
}
}
},
JvmOptions = new[]
{
"-DIGNITE_QUIET=true",
"-DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true"
},
Logger = new ConsoleLogger
{
MinLevel = LogLevel.Error
},
PeerAssemblyLoadingMode = PeerAssemblyLoadingMode.CurrentAppDomain
};
}
/// <summary>
/// Gets the thick client node configuration.
/// </summary>
public static IgniteConfiguration GetClientNodeConfiguration()
{
return new IgniteConfiguration(GetServerNodeConfiguration())
{
ClientMode = true
};
}
/// <summary>
/// Gets the thin client node configuration.
/// </summary>
public static IgniteClientConfiguration GetThinClientConfiguration()
{
return new IgniteClientConfiguration
{
Endpoints = new[]
{
"127.0.0.1"
}
};
}
/// <summary>
/// Populates the cache with employee data.
/// </summary>
public static void PopulateCache(ICache<int, Employee> cache)
{
var id = 0;
foreach (var employee in GetSampleEmployees())
cache.Put(id++, employee);
}
/// <summary>
/// Populates the cache with employee data.
/// </summary>
public static void PopulateCache(ICacheClient<int, Employee> cache)
{
var id = 0;
foreach (var employee in GetSampleEmployees())
cache.Put(id++, employee);
}
/// <summary>
/// Gets the sample employee data.
/// </summary>
public static IEnumerable<Employee> GetSampleEmployees()
{
yield return new Employee(
"James Wilson",
12500,
new Address("1096 Eddy Street, San Francisco, CA", 94109),
new[] {"Human Resources", "Customer Service"},
1);
yield return new Employee(
"Daniel Adams",
11000,
new Address("184 Fidler Drive, San Antonio, TX", 78130),
new[] {"Development", "QA"},
1);
yield return new Employee(
"Cristian Moss",
12500,
new Address("667 Jerry Dove Drive, Florence, SC", 29501),
new[] {"Logistics"},
1);
yield return new Employee(
"Allison Mathis",
25300,
new Address("2702 Freedom Lane, San Francisco, CA", 94109),
new[] {"Development"},
2);
yield return new Employee(
"Breana Robbin",
6500,
new Address("3960 Sundown Lane, Austin, TX", 78130),
new[] {"Sales"},
2);
yield return new Employee(
"Philip Horsley",
19800,
new Address("2803 Elsie Drive, Sioux Falls, SD", 57104),
new[] {"Sales"},
2);
yield return new Employee(
"Brian Peters",
10600,
new Address("1407 Pearlman Avenue, Boston, MA", 12110),
new[] {"Development", "QA"},
2);
}
/// <summary>
/// Deploys default services.
/// </summary>
public static void DeployDefaultServices(IIgnite ignite)
{
ignite.GetServices().DeployNodeSingleton("default-map-service", new MapService<int, string>());
}
}
}