Exemple #1
0
        private void validate(JasperRuntime runtime, SubscriptionsInput input)
        {
            var files = new FileSystem();
            var dict  = new Dictionary <string, ServiceCapabilities>();

            files.FindFiles(input.DirectoryFlag, FileSet.Shallow("*.capabilities.json"))
            .Each(file =>
            {
                try
                {
                    Console.WriteLine("Reading " + file);

                    var capabilities = ServiceCapabilities.ReadFromFile(file);
                    if (dict.ContainsKey(capabilities.ServiceName))
                    {
                        ConsoleWriter.Write(ConsoleColor.Yellow,
                                            $"Duplicate service name '{capabilities.ServiceName}' from file {file}");
                    }
                    else
                    {
                        dict.Add(capabilities.ServiceName, capabilities);
                    }
                }
                catch (Exception e)
                {
                    ConsoleWriter.Write(ConsoleColor.Yellow, "Failed to read capabilities from file " + file);
                    Console.WriteLine(e);
                }
            });

            if (dict.ContainsKey(runtime.ServiceName))
            {
                dict[runtime.ServiceName] = runtime.Capabilities;
            }
            else
            {
                dict.Add(runtime.ServiceName, runtime.Capabilities);
            }

            var messaging = new MessagingGraph(dict.Values.ToArray());

            Console.WriteLine(messaging.ToJson());

            if (input.FileFlag.IsNotEmpty())
            {
                Console.WriteLine("Writing the messaging graph to " + input.FileFlag);
                messaging.WriteToFile(input.FileFlag);
            }

            if (messaging.HasAnyErrors())
            {
                ConsoleWriter.Write(ConsoleColor.Yellow, "Messaging errors detected!");

                if (!input.IgnoreFailuresFlag)
                {
                    throw new Exception("Validation failures detected.");
                }
            }
            else
            {
                ConsoleWriter.Write(ConsoleColor.Green, "All messages have matching, valid publishers and subscribers");
            }
        }
Exemple #2
0
 public override void SetUp()
 {
     _graph = Context.State.Retrieve <MessagingGraph>();
 }