将Tigase外部组件作为一个罐子

问题描述 投票:0回答:2

我已经实现了具有某些功能的tigase组件,现在试图弄清楚如何将它用作外部组件。现在看来我必须在其上设置单独的tigase服务器和我的组件,然后配置主tigase服务器以将该单独的服务器称为外部组件。

我想要做的是将外部tigase组装到一个jar中,以便能够使用一行命令运行它而无需预先安装tigase。

问题是可能的吗?

似乎tigase需要数据库运行和管理指南鼓励使用共享主服务器的数据库作为外部组件。我不确定tigase是否可以在没有数据库的情况下启动,这使得使用简单的java -jar命令运行起来相当困难。

components xmpp external tigase
2个回答
1
投票

现在看来我必须在其上设置单独的tigase服务器和我的组件,然后配置主tigase服务器以将该单独的服务器称为外部组件。

这是对的。在这方面,Tigase XMPP服务器遵循XEP-0114: Jabber Component ProtocolXEP-0225: Component Connections。有关如何在Tigase中配置它的详细信息,请参阅External Component Configuration

我想要做的是将外部tigase组装到一个jar中,以便能够使用一行命令运行它而无需预先安装tigase。问题是可能的吗?

你可以创造一个“超级罐子” - 是的,这是可能的。其中一个可能的解决方案是将您的组件创建为单独的maven项目,将tigase-server配置为依赖关系,然后利用jar-with-dependenciesApache Maven Assembly Plugin。它将提取所有必需的,已配置的依赖项并将它们放在单个jar文件中。但请注意,例如,不包括数据库驱动程序。

似乎tigase需要数据库运行和管理指南鼓励使用共享主服务器的数据库作为外部组件。我不确定tigase是否可以在没有数据库的情况下启动,这使得使用简单的java -jar命令运行起来相当困难。

确实需要数据库 - 这样做的好处是可以保持配置与可能运行外部组件的许多节点保持一致(您只需要在一个节点上更新一次,所有剩余的节点将自动更新它),但您不必使用主服务器数据库。有关详细信息,请参阅Usage with a separate database。如果您只使用外部组件的单个本地实例,则可以创建一个简单的derby数据库并将配置放在etc/externalComponentItems文件中


0
投票

是的,Tigase组件Framework / API需要运行Tigase Server核心。而且您只需使用自定义组件加载Tigase服务器核心。建议使用Tigase主XMPP服务器和组件实例之间的共享数据库,但不是必需的。我认为如果真的不需要DB,外部组件实例甚至可以使用虚拟DB连接器运行。

© www.soinside.com 2019 - 2024. All rights reserved.