From e89a2acd30d1d4e12f65435016fdffb1643be16b Mon Sep 17 00:00:00 2001 From: Aleksandr Mezin Date: Thu, 24 Oct 2019 20:26:42 +0600 Subject: [PATCH] TelegramBotRunner: stop previous bot session before creating new one (#50) * Upgrade telegrambots dependency to 4.3.1 Latest 4.4.0.1 has some dependency conflicts with jenkins libs, I'm not sure how to resolve them. For 4.3.1, only imports need to be updated. * TelegramBotRunner: stop previous bot session before creating new one Otherwise it seems that the previous session remains alive until I restart Jenkins. --- pom.xml | 2 +- .../telegrambot/telegram/TelegramBot.java | 16 ++++++++-------- .../telegrambot/telegram/TelegramBotRunner.java | 11 ++++++++--- .../telegram/commands/AbstractBotCommand.java | 2 +- .../telegram/commands/HelpCommand.java | 12 ++++++------ .../telegram/commands/StartCommand.java | 12 ++++++------ .../telegram/commands/StatusCommand.java | 12 ++++++------ .../telegram/commands/SubCommand.java | 12 ++++++------ .../telegram/commands/UnsubCommand.java | 12 ++++++------ 9 files changed, 48 insertions(+), 43 deletions(-) diff --git a/pom.xml b/pom.xml index 6266163..e0143fd 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ 0.7.4.201502262128 - 3.6 + 4.3.1 1.68 1.13 2.3 diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBot.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBot.java index 26a783b..f47dd36 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBot.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBot.java @@ -24,14 +24,14 @@ import org.apache.http.util.EntityUtils; import org.jenkinsci.plugins.tokenmacro.MacroEvaluationException; import org.jenkinsci.plugins.tokenmacro.TokenMacro; -import org.telegram.telegrambots.api.methods.BotApiMethod; -import org.telegram.telegrambots.api.methods.send.SendMessage; -import org.telegram.telegrambots.api.objects.Chat; -import org.telegram.telegrambots.api.objects.Message; -import org.telegram.telegrambots.api.objects.Update; -import org.telegram.telegrambots.bots.commandbot.TelegramLongPollingCommandBot; -import org.telegram.telegrambots.exceptions.TelegramApiException; -import org.telegram.telegrambots.exceptions.TelegramApiValidationException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethod; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.extensions.bots.commandbot.TelegramLongPollingCommandBot; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; import java.io.IOException; import java.io.Serializable; diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBotRunner.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBotRunner.java index 8e06793..69bac13 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBotRunner.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/TelegramBotRunner.java @@ -3,9 +3,9 @@ import jenkins.model.GlobalConfiguration; import jenkinsci.plugins.telegrambot.TelegramBotGlobalConfiguration; import org.telegram.telegrambots.ApiContextInitializer; -import org.telegram.telegrambots.TelegramBotsApi; -import org.telegram.telegrambots.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.generics.BotSession; +import org.telegram.telegrambots.meta.TelegramBotsApi; +import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.generics.BotSession; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -62,6 +62,11 @@ public TelegramBot getBot() { }; private void createBotSession() { + if (botSession != null && botSession.isRunning()) { + LOG.info("Stopping previous bot session"); + botSession.stop(); + } + try { botSession = api.registerBot(bot); LOG.log(Level.INFO, "New bot session was registered"); diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/AbstractBotCommand.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/AbstractBotCommand.java index 5205103..b6791a3 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/AbstractBotCommand.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/AbstractBotCommand.java @@ -2,7 +2,7 @@ import jenkins.model.GlobalConfiguration; import jenkinsci.plugins.telegrambot.TelegramBotGlobalConfiguration; -import org.telegram.telegrambots.bots.commandbot.commands.BotCommand; +import org.telegram.telegrambots.extensions.bots.commandbot.commands.BotCommand; import java.util.Map; diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/HelpCommand.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/HelpCommand.java index aad7dca..3b13e09 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/HelpCommand.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/HelpCommand.java @@ -1,11 +1,11 @@ package jenkinsci.plugins.telegrambot.telegram.commands; -import org.telegram.telegrambots.api.methods.send.SendMessage; -import org.telegram.telegrambots.api.objects.Chat; -import org.telegram.telegrambots.api.objects.User; -import org.telegram.telegrambots.bots.AbsSender; -import org.telegram.telegrambots.exceptions.TelegramApiException; -import org.telegram.telegrambots.logging.BotLogger; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.logging.BotLogger; public class HelpCommand extends AbstractBotCommand { diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StartCommand.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StartCommand.java index cf3be7e..4cc1275 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StartCommand.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StartCommand.java @@ -1,11 +1,11 @@ package jenkinsci.plugins.telegrambot.telegram.commands; -import org.telegram.telegrambots.api.methods.send.SendMessage; -import org.telegram.telegrambots.api.objects.Chat; -import org.telegram.telegrambots.api.objects.User; -import org.telegram.telegrambots.bots.AbsSender; -import org.telegram.telegrambots.exceptions.TelegramApiException; -import org.telegram.telegrambots.logging.BotLogger; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.logging.BotLogger; public class StartCommand extends AbstractBotCommand { diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StatusCommand.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StatusCommand.java index 0bfc9b3..8fdbe64 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StatusCommand.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/StatusCommand.java @@ -4,12 +4,12 @@ import jenkinsci.plugins.telegrambot.TelegramBotGlobalConfiguration; import jenkinsci.plugins.telegrambot.users.Subscribers; import jenkinsci.plugins.telegrambot.users.UserApprover; -import org.telegram.telegrambots.api.methods.send.SendMessage; -import org.telegram.telegrambots.api.objects.Chat; -import org.telegram.telegrambots.api.objects.User; -import org.telegram.telegrambots.bots.AbsSender; -import org.telegram.telegrambots.exceptions.TelegramApiException; -import org.telegram.telegrambots.logging.BotLogger; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.logging.BotLogger; public class StatusCommand extends AbstractBotCommand { diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/SubCommand.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/SubCommand.java index ec6f8c5..0ccc448 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/SubCommand.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/SubCommand.java @@ -1,12 +1,12 @@ package jenkinsci.plugins.telegrambot.telegram.commands; import jenkinsci.plugins.telegrambot.users.Subscribers; -import org.telegram.telegrambots.api.methods.send.SendMessage; -import org.telegram.telegrambots.api.objects.Chat; -import org.telegram.telegrambots.api.objects.User; -import org.telegram.telegrambots.bots.AbsSender; -import org.telegram.telegrambots.exceptions.TelegramApiException; -import org.telegram.telegrambots.logging.BotLogger; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.logging.BotLogger; public class SubCommand extends AbstractBotCommand { diff --git a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/UnsubCommand.java b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/UnsubCommand.java index c224969..048741a 100644 --- a/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/UnsubCommand.java +++ b/src/main/java/jenkinsci/plugins/telegrambot/telegram/commands/UnsubCommand.java @@ -1,12 +1,12 @@ package jenkinsci.plugins.telegrambot.telegram.commands; import jenkinsci.plugins.telegrambot.users.Subscribers; -import org.telegram.telegrambots.api.methods.send.SendMessage; -import org.telegram.telegrambots.api.objects.Chat; -import org.telegram.telegrambots.api.objects.User; -import org.telegram.telegrambots.bots.AbsSender; -import org.telegram.telegrambots.exceptions.TelegramApiException; -import org.telegram.telegrambots.logging.BotLogger; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.logging.BotLogger; public class UnsubCommand extends AbstractBotCommand {