コード例 #1
0
ファイル: JiraPlugin.cs プロジェクト: asek-ll/tst
        private async void BuildAndRestartRemoteServer(JiraRemoteServerController serverController)
        {
            var plugins        = _pluginModuleManager.GetSelectedPlugins();
            var isSuccessBuild = await _pomReader.Build(plugins);

            if (isSuccessBuild)
            {
                await serverController.Kill();

                foreach (var plugin in plugins)
                {
                    var fileUrl = GetFileUrl(plugin.PomPath);
                    serverController.CopyPlugin(fileUrl);
                }
                await serverController.Startup();
            }
        }
コード例 #2
0
ファイル: JiraPlugin.cs プロジェクト: asek-ll/tst
        public void OnInit()
        {
            _pluginModuleManager.PluginsUpdated += (plugin) => FetchPluginModuleJiraState(plugin);

            _mainForm.AddAction("Do", BuildAndRestart);

            _mainForm.AddAction("Enable", EnablePlugins);
            _mainForm.AddAction("Disable", DisablePlugins);
            _mainForm.AddAction("Redeploy", BuildAndRedeploy);

            _mainForm.AddAction("Startup", async() =>
            {
                await _controller.Startup();
            });

            _mainForm.AddAction("Shutdown", async() =>
            {
                await _controller.Shutdown();
            });
            _mainForm.AddAction("Kill", async() =>
            {
                await _controller.Kill();
            });

            _mainForm.AddAction("Restart", async() =>
            {
                await _controller.Kill();
                await _controller.Startup();
            });

            _mainForm.AddAction("Logs", async() =>
            {
                await _controller.OpenLogsDir();
            });

            _mainForm.AddAction("Copy", () =>
            {
                CopyPluginsToJira(_pluginModuleManager.GetSelectedPlugins());
            });

            _mainForm.AddAction("Update", () =>
            {
                FetchPluginModuleJiraState(_pluginModuleManager.Plugins);
            });

            var servers = _config.GetProperties <JObject>("servers");

            if (servers != null)
            {
                var deployRemote = new ToolStripMenuItem
                {
                    Text = "Deploy to remote"
                };
                _mainForm.contextMenu.Items.Add(deployRemote);

                var serversMenu = new ToolStripMenuItem
                {
                    Text = "Copy and restart",
                    Name = "remoteServersMenu"
                };

                _mainForm.menuStrip1.Items.Add(serversMenu);

                foreach (var entry in servers)
                {
                    var remoteServer = entry.ToObject <RemoteServerEntry>();

                    var remoteServerReloadItem = new ToolStripMenuItem
                    {
                        Text = remoteServer.Title
                    };
                    remoteServerReloadItem.Click += (s, e) =>
                    {
                        var serverController = new JiraRemoteServerController(_logger, _utils, remoteServer);

                        BuildAndRestartRemoteServer(serverController);
                    };

                    serversMenu.DropDownItems.Add(remoteServerReloadItem);

                    var server = remoteServer.Title;

                    _logger.Log("Register remote server: " + server);

                    var openItem = new ToolStripMenuItem
                    {
                        Text = server
                    };

                    openItem.Click += (o, e) =>
                    {
                        var manager = new JiraManager(new JiraRestApiHelper(
                                                          server,
                                                          _config.GetProperty <string>("jira.user.key"),
                                                          _config.GetProperty <string>("jira.user.password")
                                                          ));

                        BuildAndRedeploy(manager);
                    };

                    deployRemote.DropDownItems.Add(openItem);
                }
            }


            FetchPluginModuleJiraState(_pluginModuleManager.Plugins);
        }