SoroushBotMultiThreadConsumer that use a thread pool in order to process exchanges.WebTarget for downloading file from serverSoroushActionWebTarget for sending message to serverWebTarget for uploading file to servertopic.SoroushMessage.fileUrl(SoroushMessage.thumbnailUrl) is null or not, and download
the resource if it is not null this function only set SoroushMessage.file to InputStream get from
Response.readEntity(Class) )} and does not store the resource in file.alternativeUrl that should be used for testinguploadFile or sendMessage endpoint.thumbnail this field help you store thumbnail in the message, it also let
you automatically upload it to the soroush server by sending this message to uploadFile or
sendMessage endpoint.SoroushBotAbstractConsumer.sendExchange(Exchange) each subclass should handle how it will start the
processing of the exchangeSoroushAction.downloadFile e.g.SoroushAction.sendMessage to send message to SoroushAPI.SoroushAction.uploadFile to upload messages file(thumbnail) to
SoroushAPI.Apache Camel