If there are problems with loading a plugin, the server should "note" (at least output a message to the log) that a specific plugin failed to load, but the remainder of plugins should be loaded, and server startup should complete.
Example: if there is circular dependency between the services of two different plugins, those plugins should fail to load, but the server should complete its startup.
The error is logged and startup does not continue. The nodeServer process does not stop, but the nodeServer is not fully initialized to server Zowe ZLUX (desktop)
Server Log:
could not start the server: Error: Cyclic dependency, node was:{"identifier":"org.zowe.zlux.sample.iframe","apiVersion":"1.0.0","pluginVersion":"1.0.0","pluginType":"application","webContent":{"framework":"iframe","launchDefinition":{"pluginShortNameKey":"sampleiframe","pluginShortNameDefault":"IFrame Sample","imageSrc":"assets/icon.png"},"descriptionKey":"Sample App Showcasing IFrame Adapter","descriptionDefault":"Sample App Showcasing IFrame Adapter","startingPage":"html/index.html","isSingleWindowApp":true,"defaultWindowStyle":{"width":800,"height":445,"x":200,"y":50},"path":"..\\..\\sample-iframe-app\\web"},"dataServices":[{"type":"import","sourcePlugin":"org.zowe.zlux.sample.angular","sourceName":"hello","localName":"hello"}],"configuration":{"contents":{}},"location":"../../sample-iframe-app","dataServicesGrouped":{"router":[],"import":[{"configuration":{"contents":{}},"type":"import","sourcePlugin":"org.zowe.zlux.sample.angular","sourceName":"hello","localName":"hello"}],"node":[],"proxy":[],"external":[]}}
at visit (C:\repos\zowe\zlux\zlux-proxy-server\js\node_modules\toposort\index.js:45:13)
at visit (C:\repos\zowe\zlux\zlux-proxy-server\js\node_modules\toposort\index.js:62:9)
etc.
Problem is logged, offending plugin(s) do not finish loading, or are removed if they are already loaded.
Additional NOTE: If the server cannot come "all the way up" it should exit, rather than stop partway.