} // proc OnBeginReadConfiguration /// <summary></summary> /// <param name="config"></param> protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); // register client application packages clientApplicationInfos.Clear(); var appSource = UnsafeChildren.OfType <HttpFileWorker>().FirstOrDefault(c => c.Name == "appSource"); if (appSource != null) { RegisterInitializationTask(1000, "Read Client Applications", () => RefreshClientApplicationInfosAsync(appSource.DirectoryBase, appSource.VirtualRoot)); } else { Log.Info("No application Source defined (HttpFileWorker 'app' is missing)."); } // set the configuration BeginEndConfigurationData(config); BeginEndConfigurationUser(config); lastConfigurationTimeStamp = config.LastWrite; databaseLibrary.ClearCache(); // restart main thread initializationProcess = Task.Run(new Action(InitializeApplication)); } // proc OnEndReadConfiguration
public bool LoadConfigExtension(IDEConfigLoading config, XElement load, string currentNamespace) { try { var type = configuration[load.Name]?.ClassType; if (type == null) { if (!String.IsNullOrEmpty(currentNamespace) && load.Name.NamespaceName != currentNamespace) { Log.LogMsg(LogMsgType.Warning, "Typ für Element '{0}' wurde nicht im Schema gefunden.", load.Name); } return(false); } // Suche die Methode if (miRegisterSubItem == null) { miRegisterSubItem = config.GetType().GetMethod("RegisterSubItem"); } // Erzeuge die Method var mi = miRegisterSubItem.MakeGenericMethod(type); mi.Invoke(config, new object[] { load }); return(true); } catch (Exception e) { Log.LogMsg(LogMsgType.Error, e.GetMessageString(), load.Name); return(false); } } // proc LoadConfigExtensions
} // func GetFullName protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); if (config.ConfigOld == null) // LogDatei darf nur einmal initialisiert werden { if (String.IsNullOrEmpty(Server.LogPath)) { throw new ArgumentNullException("logPath", "LogPath muss gesetzt sein."); } // Lege die Logdatei an logFile = new DELogFile(LogFileName); logFile.LinesAdded += (sender, e) => OnLinesAdded(); ConfigLogItemCount++; } // Lese die Parameter für die Logdatei var xLog = config.ConfigNew.Element(DEConfigurationConstants.xnLog); if (xLog != null) { SetLogSize(xLog.GetAttribute("min", logFile.MinimumSize), xLog.GetAttribute("max", logFile.MaximumSize)); } } // proc OnBeginReadConfiguration
} // proc OnBeginReadConfiguration protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); ReadLastTimeStamp(); // reset the parameters fileSystemWatcher.Path = Config.GetAttribute("path", null); fileSystemWatcher.Filter = Config.GetAttribute("filter", "*.*"); fileSystemWatcher.IncludeSubdirectories = Config.GetAttribute("recursive", false); notifyMethod = Config.GetAttribute <NotifyMethod>("method", NotifyMethod.None); switch (notifyMethod) { case NotifyMethod.ArchiveBit: fileSystemWatcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.FileName; break; case NotifyMethod.TimeStamp: fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName; break; default: fileSystemWatcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.LastWrite | NotifyFilters.FileName; break; } // run Server.Queue.RegisterIdle(notifyCheck); fileSystemWatcher.EnableRaisingEvents = true; } // proc OnEndReadConfiguration
} // func IsSubConfigurationElement protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); // refresh cron service queue.ExecuteEvent(DEServerEvent.Reconfiguration); } // proc OnEndReadConfiguration
} // proc Dispose protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // Lade die Scripte var i = 0; var scriptRemove = (from s in scripts where s is LuaFileScript select(LuaFileScript) s).ToArray(); var luaScriptDefinition = Server.Configuration[xnLuaScript]; foreach (var cur in config.ConfigNew.Elements(xnLuaScript)) { try { var configNode = new XConfigNode(luaScriptDefinition, cur); LoadScript(configNode, scriptRemove); } catch (Exception e) { Log.LogMsg(LogMsgType.Error, String.Format("script[{0}]: {1}", i, e.GetMessageString())); } i++; } // Lösche die Scripte for (i = 0; i < scriptRemove.Length; i++) { if (scriptRemove[i] != null) { try { scriptRemove[i].Dispose(); } catch (Exception e) { Log.LogMsg(LogMsgType.Error, e.Message); } } } } // proc OnBeginReadConfiguration
} // proc protected override void OnEndReadConfiguration(IDEConfigLoading config) { VirtualRoot = ConfigNode.GetAttribute <string>("base") ?? String.Empty; Priority = ConfigNode.GetAttribute <int>("priority"); client = config.Tags.GetProperty <HttpClient>(nameof(client), null); base.OnEndReadConfiguration(config); } // proc OnEndReadConfiguration
} // ctor protected override void OnBeginReadConfiguration(IDEConfigLoading config) { config.Tags.SetProperty(nameof(client), new HttpClient(new HttpClientHandler(), true) { BaseAddress = new Uri(config.ConfigNew.GetAttribute("target", null), UriKind.Absolute) }); base.OnBeginReadConfiguration(config); } // proc
} // proc OnBeginReadConfiguration /// <summary></summary> /// <param name="config"></param> protected override void OnEndReadConfiguration(IDEConfigLoading config) { if (DataSetDefinition == null) { Application.RegisterInitializationTask(12000, "Bind documents", BindDataSetDefinitonAsync); } base.OnEndReadConfiguration(config); } // proc OnEndReadConfiguration
} // ctor protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); this.useSsl = Config.GetAttribute("ssl", useSsl); this.targetHost = Config.GetAttribute("addr", String.Empty); this.targetPort = Config.GetAttribute("port", useSsl ? 3305 : 6619); this.endPoint = null; this.channelName = null; } // proc OnEndReadConfiguration
} // proc Dispose protected override void OnBeginReadConfiguration(IDEConfigLoading config) { // unregister the user if (userName != null) { Server.UnregisterUser(this); } base.OnBeginReadConfiguration(config); } // proc OnBeginReadConfiguration
} // ctor protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); this.useSsl = Config.GetAttribute("ssl", useSsl); this.targetHost = Config.GetAttribute("addr", String.Empty); this.targetPort = Config.GetAttribute("port", useSsl ? 3305 : 6619); this.endPoint = null; this.channelName = null; } // proc OnEndReadConfiguration
} // proc Dispose protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // validate path ValidateDirectory(config.ConfigNew, "path"); // stop fileSystemWatcher.EnableRaisingEvents = false; Server.Queue.CancelCommand(notifyCheck); } // proc OnBeginReadConfiguration
} // ctor /// <summary></summary> /// <param name="config"></param> protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); var cfg = ConfigNode; directoryBase = cfg.GetAttribute <DirectoryInfo>("directory"); allowListing = cfg.GetAttribute <bool>("allowListing"); filterPattern = cfg.GetAttribute <string>("filter"); defaultReadEncoding = cfg.GetAttribute <Encoding>("encoding"); } // proc OnEndReadConfiguration
} // ctor protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); virtualBase = Config.GetAttribute("base", String.Empty); if (virtualBase.StartsWith("/")) { virtualBase = virtualBase.Substring(1); } priority = Config.GetAttribute("priority", priority); } // proc OnEndReadConfiguration
} // ctor /// <summary></summary> /// <param name="config"></param> protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // dispose scripts connections if (currentAttachedScripts != null) { Array.ForEach(currentAttachedScripts, s => s.Dispose()); currentAttachedScripts = null; } } // proc OnBeginReadConfiguration
} // ctor /// <summary></summary> /// <param name="config"></param> protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); var cfg = ConfigNode; virtualBase = cfg.GetAttribute <string>("base") ?? String.Empty; if (virtualBase.StartsWith("/")) { virtualBase = virtualBase.Substring(1); } priority = cfg.GetAttribute <int>("priority"); } // proc OnEndReadConfiguration
} // proc OnBeginReadConfiguration protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); // register the debug listener var http = this.GetService <IDEHttpServer>(true); if (!debugSocketRegistered) { http.RegisterWebSocketProtocol(this); debugSocketRegistered = true; } } // proc
} // ctor /// <summary></summary> /// <param name="config"></param> protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // check the id's if (String.IsNullOrEmpty(config.ConfigNew.GetAttribute("destination", String.Empty))) { throw new ArgumentNullException("@destination id is missing."); } // check the directories ValidateDirectory(config.ConfigNew, "in", true); ValidateDirectory(config.ConfigNew, "out", true); } // OnBeginReadConfiguration
} // ctor protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // load assembly var assemblyName = config.ConfigNew.GetAttribute("assembly", String.Empty); if (String.IsNullOrEmpty(assemblyName)) { Log.LogMsg(LogMsgType.Error, "Assembly name missing."); } else { try { assembly = Assembly.Load(assemblyName); assemblyStamp = File.GetLastWriteTimeUtc(assembly.Location); } catch (Exception e) { Log.LogMsg(LogMsgType.Error, String.Format("Assembly not loaded: {0}", assemblyName), e); } } // Load namespace namespaceRoot = config.ConfigNew.GetAttribute("namespace", String.Empty); if (String.IsNullOrEmpty(namespaceRoot)) { namespaceRoot = null; Log.LogMsg(LogMsgType.Error, "No namespace configured."); } else { namespaceRoot = namespaceRoot + "."; } // load alternative nonePresentAlternativeExtensions = config.ConfigNew.GetAttribute("nonePresentAlternativeExtensions", String.Empty).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (nonePresentAlternativeExtensions != null && nonePresentAlternativeExtensions.Length == 0) { nonePresentAlternativeExtensions = null; } alternativeRoots = config.ConfigNew.Elements(xnAlternativeRoot).Where(x => !String.IsNullOrEmpty(x.Value)).Select(x => x.Value).ToArray(); if (alternativeRoots != null && alternativeRoots.Length == 0) { alternativeRoots = null; } } // proc OnBeginReadConfiguration
} // proc OnBeginReadConfiguration protected override void OnEndReadConfiguration(IDEConfigLoading config) { // get user name userName = Config.GetAttribute("userName", Name); var domain = Config.GetAttribute("domain", String.Empty); if (!String.IsNullOrEmpty(domain)) { userName = domain + '\\' + userName; } // register the user again Server.RegisterUser(this); base.OnEndReadConfiguration(config); } // proc OnEndReadConfiguration
} // OnBeginReadConfiguration /// <summary></summary> /// <param name="config"></param> protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); // read the attributes var x = XConfigNode.Create(Server.Configuration, config.ConfigNew); this.destinationId = x.GetAttribute <string>("destination").ToUpper(); this.priority = x.GetAttribute <int>("priority"); this.fileNameFilter = x.GetAttribute <string>("inFilter").Split(new char[] { ' ', ';' }, StringSplitOptions.RemoveEmptyEntries); // set directories this.directoryIn = x.GetAttribute <DirectoryInfo>("in"); this.directoryOut = x.GetAttribute <DirectoryInfo>("out"); } // proc OnEndReadConfiguration
} // OnBeginReadConfiguration /// <summary></summary> /// <param name="config"></param> protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); // read the attributes var x = XConfigNode.Create(Server.Configuration, config.ConfigNew); destinationId = x.GetAttribute <string>("destination").ToUpper(); priority = x.GetAttribute <int>("priority"); fileNameFilter = x.GetAttribute <string[]>("inFilter"); // set directories directoryIn = x.GetAttribute <DirectoryInfo>("in"); directoryOut = x.GetAttribute <DirectoryInfo>("out"); } // proc OnEndReadConfiguration
} // proc Dispose protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // is there the tcp listener serverTcp = this.GetService<IServerTcp>(true); var useSsl = config.ConfigNew.GetAttribute("ssl", String.Empty); if (String.IsNullOrEmpty(useSsl)) serverCertificate = null; else { Log.Info("Try to locate certificate: {0}", useSsl); serverCertificate = ProcsDE.FindCertificate(useSsl).FirstOrDefault(); // todo: select server certificate if (serverCertificate == null) throw new ArgumentException("Server certificate not found."); } } // proc OnBeginReadConfiguration
} // ctor /// <summary></summary> /// <param name="config"></param> protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // shutdown the init UpdateInitializationState("Shutdown previous init"); if (!(initializationProcess?.IsCompleted ?? true)) { initializationProcess.Wait(); } UpdateInitializationState("Read configuration"); // parse the configuration BeginReadConfigurationData(config); BeginReadConfigurationUser(config); BeginReadConfigurationReport(config); } // proc OnBeginReadConfiguration
} // proc Dispose protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // read the border cronBound = new CronBound(config.ConfigNew.GetAttribute("bound", String.Empty)); var attr = config.ConfigNew.Attribute("runTimeSlice"); runTimeSlice = attr == null ? null : new TimeSpan?(TimeSpan.Parse(attr.Value)); // initialize run after runAfterJob = config.ConfigNew.Elements(DEConfigurationConstants.xnCronRunAfter) .Where(c => !String.IsNullOrEmpty(c.Value)) .Select(c => c.Value.Trim()).ToArray(); if (runAfterJob.Length == 0) { runAfterJob = null; } } // proc OnBeginReadConfiguration
} // proc Dispose protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); if (Config.GetAttribute("autostart", false)) { if (IsProcessRunning) { if (Config.GetAttribute("configrestart", false)) { StopProcess(); StartProcess(); } } else { StartProcess(); } } } // proc OnEnReadConfiguration
} // proc OnBeginReadConfiguration protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); var listenerAddress = Config.GetAttribute("address", "0.0.0.0"); var listenerPort = Config.GetAttribute("port", serverCertificate == null ? 3305 : 6619); skipInvalidCertificate = Config.GetAttribute("skipInvalidCertificate", false); clientCertificateRequired = Config.GetAttribute("clientCertificateRequired", true); sslProtocols = (SslProtocols)Config.GetAttribute("sslProtocols", (int)defaultSslProtocols); Log.Info("Register Listener (port={0}, addr={1}, ssl={2})", listenerPort, listenerAddress, serverCertificate == null ? "<plain>" : serverCertificate.Subject); var endPoint = new IPEndPoint(IPAddress.Parse(listenerAddress), listenerPort); // start the listener Procs.FreeAndNil(ref currentListener); currentListener = serverTcp.RegisterListener(endPoint, serverCertificate != null ? new Action<Stream>(CreateSslHandler) : new Action<Stream>(CreateHandler) ); } // proc OnEndReadConfiguration
} // proc OnBeginReadConfiguration protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); var listenerAddress = Config.GetAttribute("address", "0.0.0.0"); var listenerPort = Config.GetAttribute("port", serverCertificate == null ? 3305 : 6619); skipInvalidCertificate = Config.GetAttribute("skipInvalidCertificate", false); clientCertificateRequired = Config.GetAttribute("clientCertificateRequired", true); sslProtocols = (SslProtocols)Config.GetAttribute("sslProtocols", (int)defaultSslProtocols); Log.Info("Register Listener (port={0}, addr={1}, ssl={2})", listenerPort, listenerAddress, serverCertificate == null ? "<plain>" : serverCertificate.Subject); var endPoint = new IPEndPoint(IPAddress.Parse(listenerAddress), listenerPort); // start the listener Procs.FreeAndNil(ref currentListener); currentListener = serverTcp.RegisterListener(endPoint, serverCertificate != null ? new Action <Stream>(CreateSslHandler) : new Action <Stream>(CreateHandler) ); } // proc OnEndReadConfiguration
} // class PpsReportSession #endregion private void BeginReadConfigurationReport(IDEConfigLoading config) { var currentNode = XConfigNode.Create(Server.Configuration, config.ConfigNew).Element(PpsStuff.xnReports); var systemPath = currentNode.GetAttribute <string>("system") ?? throw new DEConfigurationException(currentNode.Data, "@system is empty."); var basePath = currentNode.GetAttribute <string>("base") ?? throw new DEConfigurationException(currentNode.Data, "@base is empty."); var logPath = currentNode.GetAttribute <string>("logs"); var workPath = currentNode.GetAttribute <string>("work"); // check for recreate the reporting engine if (reporting == null || !ProcsDE.IsPathEqual(reporting.EnginePath, systemPath) || !ProcsDE.IsPathEqual(reporting.BasePath, basePath) || (logPath != null && !ProcsDE.IsPathEqual(reporting.LogPath, logPath)) || (workPath != null && !ProcsDE.IsPathEqual(reporting.WorkingPath, workPath))) { reporting = new PpsReportEngine(systemPath, basePath, reportProvider, CreateReportSession, reportWorkingPath: workPath, reportLogPath: logPath); } // update values reporting.CleanBaseDirectoryAfter = currentNode.GetAttribute <int>("cleanBaseDirectory"); reporting.ZipLogFiles = currentNode.GetAttribute <bool>("zipLogFiles"); reporting.StoreSuccessLogs = currentNode.GetAttribute <bool>("storeSuccessLogs"); } // proc BeginReadConfigurationReport
} // proc Dispose protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // is there the tcp listener serverTcp = this.GetService <IServerTcp>(true); var useSsl = config.ConfigNew.GetAttribute("ssl", String.Empty); if (String.IsNullOrEmpty(useSsl)) { serverCertificate = null; } else { Log.Info("Try to locate certificate: {0}", useSsl); serverCertificate = (from crt in ProcsDE.FindCertificate(useSsl) orderby crt.NotAfter descending select crt).FirstOrDefault(); if (serverCertificate == null) { throw new ArgumentException("Server certificate not found."); } Log.Info("Locate certificate: {0} {1}", serverCertificate.Thumbprint, serverCertificate.Subject); } } // proc OnBeginReadConfiguration
protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); }
} // ctor protected override void OnBeginReadConfiguration(IDEConfigLoading config) { base.OnBeginReadConfiguration(config); // check the id's if (String.IsNullOrEmpty(config.ConfigNew.GetAttribute("destination", String.Empty))) throw new ArgumentNullException("@destination id is missing."); // check the directories ValidateDirectory(config.ConfigNew, "in", true); ValidateDirectory(config.ConfigNew, "out", true); } // OnBeginReadConfiguration
} // OnBeginReadConfiguration protected override void OnEndReadConfiguration(IDEConfigLoading config) { base.OnEndReadConfiguration(config); // read the attributes var x = new XConfigNode(Server.Configuration[config.ConfigNew.Name], config.ConfigNew); this.destinationId = x.GetAttribute<string>("destination").ToUpper(); this.priority = x.GetAttribute<int>("priority"); this.fileNameFilter = x.GetAttribute<string>("inFilter").Split(new char[] { ' ', ';' }, StringSplitOptions.RemoveEmptyEntries); // set directories this.directoryIn = x.GetAttribute<DirectoryInfo>("in"); this.directoryOut = x.GetAttribute<DirectoryInfo>("out"); } // proc OnEndReadConfiguration
} // proc InitUser private void BeginReadConfigurationUser(IDEConfigLoading config) { } // proc BeginReadConfigurationUser
} // proc BeginReadConfigurationUser private void BeginEndConfigurationUser(IDEConfigLoading config) { // read the user data RegisterInitializationTask(11000, "Register users", () => RefreshUserDataAsync(true)); } // proc BeginEndConfigurationUser