Esempio n. 1
0
 public DocumentBuilder(
     IEnumerable <Assembly> assemblies,
     ImmutableArray <string> postProcessorNames,
     string templateHash,
     string intermediateFolder = null,
     string commitFromSHA      = null,
     string commitToSHA        = null)
 {
     Logger.LogVerbose("Loading plug-in...");
     using (new LoggerPhaseScope("ImportPlugins", true))
     {
         var assemblyList = assemblies?.ToList();
         _container = GetContainer(assemblyList);
         _container.SatisfyImports(this);
         _currentBuildInfo.CommitFromSHA = commitFromSHA;
         _currentBuildInfo.CommitToSHA   = commitToSHA;
         if (intermediateFolder != null)
         {
             _currentBuildInfo.PluginHash    = ComputePluginHash(assemblyList);
             _currentBuildInfo.TemplateHash  = templateHash;
             _currentBuildInfo.DirectoryName = IncrementalUtility.CreateRandomDirectory(intermediateFolder);
         }
     }
     Logger.LogInfo($"{Processors.Count()} plug-in(s) loaded.");
     foreach (var processor in Processors)
     {
         Logger.LogVerbose($"\t{processor.Name} with build steps ({string.Join(", ", from bs in processor.BuildSteps orderby bs.BuildOrder select bs.Name)})");
     }
     _postProcessors     = GetPostProcessor(postProcessorNames);
     _intermediateFolder = intermediateFolder;
     _lastBuildInfo      = LoadLastBuildInfo();
 }
Esempio n. 2
0
        public DocumentBuilder(
            IEnumerable <Assembly> assemblies,
            ImmutableArray <string> postProcessorNames,
            string templateHash,
            string intermediateFolder = null,
            string commitFromSHA      = null,
            string commitToSHA        = null,
            bool cleanupCacheHistory  = false)
        {
            Logger.LogVerbose("Loading plug-in...");
            using (new LoggerPhaseScope("ImportPlugins", LogLevel.Verbose))
            {
                var assemblyList = assemblies?.ToList() ?? new List <Assembly>();
                assemblyList.Add(typeof(DocumentBuilder).Assembly);
                _container = CompositionContainer.GetContainer(assemblyList);
                _container.SatisfyImports(this);
                _assemblyList = assemblyList;
            }
            Logger.LogInfo($"{Processors.Count()} plug-in(s) loaded.");
            foreach (var processor in Processors)
            {
                Logger.LogVerbose($"\t{processor.Name} with build steps ({string.Join(", ", from bs in processor.BuildSteps orderby bs.BuildOrder select bs.Name)})");
            }

            _commitFromSHA         = commitFromSHA;
            _commitToSHA           = commitToSHA;
            _templateHash          = templateHash;
            _intermediateFolder    = intermediateFolder;
            _cleanupCacheHistory   = cleanupCacheHistory;
            _postProcessorsManager = new PostProcessorsManager(_container, postProcessorNames);
        }
Esempio n. 3
0
 public DocumentBuilder(IEnumerable <Assembly> assemblies = null)
 {
     using (new LoggerPhaseScope(PhaseName))
     {
         Logger.LogInfo("Loading plug-in...");
         GetContainer(DefaultAssemblies.Union(assemblies ?? new Assembly[0])).SatisfyImports(this);
         Logger.LogInfo($"{Processors.Count()} plug-in(s) loaded:");
         foreach (var processor in Processors)
         {
             Logger.LogInfo($"\t{processor.Name} with build steps ({string.Join(", ", from bs in processor.BuildSteps orderby bs.BuildOrder select bs.Name)})");
         }
     }
 }
Esempio n. 4
0
        public DocumentBuilder(IEnumerable <Assembly> assemblies = null)
        {
            Logger.LogVerbose("Loading plug-in...");
            var assemblyList = assemblies?.ToList();

            _container = GetContainer(assemblyList);
            _container.SatisfyImports(this);
            _currentBuildInfo.PluginHash = ComputePluginHash(assemblyList);
            Logger.LogInfo($"{Processors.Count()} plug-in(s) loaded.");
            foreach (var processor in Processors)
            {
                Logger.LogVerbose($"\t{processor.Name} with build steps ({string.Join(", ", from bs in processor.BuildSteps orderby bs.BuildOrder select bs.Name)})");
            }
        }
Esempio n. 5
0
 public DocumentBuilder(
     IEnumerable <Assembly> assemblies,
     ImmutableArray <string> postProcessorNames,
     string templateHash,
     string intermediateFolder = null,
     string commitFromSHA      = null,
     string commitToSHA        = null)
 {
     Logger.LogVerbose("Loading plug-in...");
     using (new LoggerPhaseScope("ImportPlugins", LogLevel.Verbose))
     {
         var assemblyList = assemblies?.ToList() ?? new List <Assembly>();
         assemblyList.Add(typeof(DocumentBuilder).Assembly);
         _container = CompositionUtility.GetContainer(assemblyList);
         _container.SatisfyImports(this);
         _currentBuildInfo.CommitFromSHA = commitFromSHA;
         _currentBuildInfo.CommitToSHA   = commitToSHA;
         if (intermediateFolder != null)
         {
             _currentBuildInfo.PluginHash    = ComputePluginHash(assemblyList);
             _currentBuildInfo.TemplateHash  = templateHash;
             _currentBuildInfo.DirectoryName = IncrementalUtility.CreateRandomDirectory(intermediateFolder);
         }
     }
     Logger.LogInfo($"{Processors.Count()} plug-in(s) loaded.");
     foreach (var processor in Processors)
     {
         Logger.LogVerbose($"\t{processor.Name} with build steps ({string.Join(", ", from bs in processor.BuildSteps orderby bs.BuildOrder select bs.Name)})");
     }
     if (intermediateFolder != null)
     {
         var expanded = Environment.ExpandEnvironmentVariables(intermediateFolder);
         if (expanded.Length == 0)
         {
             expanded = ".";
         }
         _intermediateFolder = Path.GetFullPath(expanded);
     }
     _lastBuildInfo         = BuildInfo.Load(_intermediateFolder);
     _postProcessorsManager = new PostProcessorsManager(_container, postProcessorNames);
 }
Esempio n. 6
0
 public DocumentBuilder(
     IEnumerable <Assembly> assemblies,
     ImmutableArray <string> postProcessorNames,
     string intermediateFolder = null)
 {
     Logger.LogVerbose("Loading plug-in...");
     using (new PerformanceScope("ImportPlugins", LogLevel.Diagnostic))
     {
         var assemblyList = assemblies?.ToList();
         _container = GetContainer(assemblyList);
         _container.SatisfyImports(this);
         _currentBuildInfo.PluginHash = ComputePluginHash(assemblyList);
     }
     Logger.LogInfo($"{Processors.Count()} plug-in(s) loaded.");
     foreach (var processor in Processors)
     {
         Logger.LogVerbose($"\t{processor.Name} with build steps ({string.Join(", ", from bs in processor.BuildSteps orderby bs.BuildOrder select bs.Name)})");
     }
     _postProcessors     = GetPostProcessor(postProcessorNames);
     _intermediateFolder = intermediateFolder;
     _lastBuildInfo      = LoadLastBuildInfo();
 }
Esempio n. 7
0
        private void LogEntryMonitor_NewLogEntry(object sender, DataProcessingServiceLog logEntry)
        {
            Application.Current.Dispatcher.BeginInvoke((Action)(() =>
            {
                var logEntryViewModel = new LogEntryViewModel(logEntry);
                if (IsAppropriateForAllMessagesList(logEntry))
                {
                    AllLogMessages.Add(logEntryViewModel);
                }
                if (logEntryViewModel.IsError)
                {
                    ErrorLogMessages.Add(logEntryViewModel);
                }
                if (logEntryViewModel.ExecutorType.HasValue)
                {
                    switch (logEntryViewModel.ExecutorType.Value)
                    {
                    case DataProcessingServiceExecutorType.Processor:
                        if (logEntryViewModel.ProcessorName != "Unknown")
                        {
                            var matchingProcessor = Processors.SingleOrDefault(p => p.Details.Name == logEntryViewModel.ProcessorName);
                            if (matchingProcessor == null)
                            {
                                matchingProcessor = new ProcessorViewModel(
                                    new ProcessorDetails(
                                        logEntryViewModel.ProcessorName,
                                        logEntryViewModel.InputTypeName,
                                        logEntryViewModel.OutputTypeName)
                                    );
                                // Sort alphabetically
                                var insertIndex = Processors.Count(processor =>
                                                                   processor.Details.Name.CompareTo(matchingProcessor.Details.Name) < 0);
                                Processors.Insert(insertIndex, matchingProcessor);
                            }

                            matchingProcessor.LogEntries.Add(logEntryViewModel);
                        }
                        break;

                    case DataProcessingServiceExecutorType.Task:
                        var matchingTask = Tasks.SingleOrDefault(t => t.Details.Name == logEntryViewModel.ProcessorName);
                        if (matchingTask == null)
                        {
                            matchingTask = new TaskViewModel(new TaskDetails(logEntryViewModel.ProcessorName));
                            // Sort alphabetically
                            var insertIndex = Tasks.Count(task => task.Details.Name.CompareTo(matchingTask.Details.Name) <= 0);
                            Tasks.Insert(insertIndex, matchingTask);
                        }
                        matchingTask.LogEntries.Add(logEntryViewModel);
                        if (logEntry.Details is ExecutionSummaryLogEntryDetails &&
                            (!matchingTask.LastExecutionTime.HasValue || matchingTask.LastExecutionTime < logEntry.Timestamp))
                        {
                            matchingTask.LastExecutionTime = logEntry.Timestamp;
                        }
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }));
        }