@@ -0,0 +1,2093 @@
+package org.telegram.telegrambots.updatesreceivers;%0A%0Aimport lombok.extern.slf4j.Slf4j;%0Aimport org.telegram.telegrambots.meta.api.methods.BotApiMethod;%0Aimport org.telegram.telegrambots.meta.api.objects.Update;%0Aimport org.telegram.telegrambots.meta.exceptions.TelegramApiException;%0Aimport org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;%0Aimport org.telegram.telegrambots.meta.generics.Webhook;%0Aimport org.telegram.telegrambots.meta.generics.WebhookBot;%0A%0Aimport java.util.NoSuchElementException;%0Aimport java.util.concurrent.ConcurrentHashMap;%0A%0A@Slf4j%0Apublic class ServerlessWebhook implements Webhook %7B%0A%0A    private final ConcurrentHashMap%3CString, WebhookBot%3E callbacks = new ConcurrentHashMap%3C%3E();%0A%0A    public BotApiMethod%3C?%3E updateReceived(String botPath, Update update) throws TelegramApiValidationException %7B%0A        if (callbacks.containsKey(botPath)) %7B%0A            try %7B%0A                BotApiMethod%3C?%3E response = callbacks.get(botPath).onWebhookUpdateReceived(update);%0A                if (response != null) %7B%0A                    response.validate();%0A                %7D%0A                return response;%0A            %7D catch (TelegramApiValidationException e) %7B%0A                log.error(e.getLocalizedMessage(), e);%0A                throw e;%0A            %7D%0A        %7D else %7B%0A            throw new NoSuchElementException(String.format(%22Callback '%25s' not exist%22, botPath));%0A        %7D%0A    %7D%0A%0A    @Override%0A    public void startServer() throws TelegramApiException %7B%0A        // Do nothing, because there is no abstraction for webhook without server%0A    %7D%0A%0A    @Override%0A    public void registerWebhook(WebhookBot callback) %7B%0A        callbacks.putIfAbsent(callback.getBotPath(), callback);%0A    %7D%0A%0A    @Override%0A    public void setInternalUrl(String internalUrl) %7B%0A        throw new UnsupportedOperationException(%22Not implemented for Serverless Webhook%22);%0A    %7D%0A%0A    @Override%0A    public void setKeyStore(String keyStore, String keyStorePassword) throws TelegramApiException %7B%0A        throw new UnsupportedOperationException(%22Not implemented for Serverless Webhook%22);%0A    %7D%0A%7D%0A

Implement Webhook without server