现在看来,我必须在上面设置带有我的组件的单独的 tigase 服务器,然后配置主 tigase 服务器以将该单独的服务器称为外部组件。
这是对的。Tigase XMPP 服务器在这方面遵循XEP-0114:Jabber 组件协议和XEP-0225:组件连接。有关如何在 Tigase 中进行配置的详细信息,请参阅
外部组件配置。
我想做的是将外部 tigase 组装到一个 jar 中,以便能够使用一行命令运行它,而无需预先安装 tigase。问题是有可能吗?
你可以创建一个“超级罐子”——是的,这是可能的。一种可能的解决方案是将您的组件创建为一个单独的 Maven 项目,配置为依赖项,tigase-server
然后利用Apache Maven Assembly Plugin。它将提取所有必需的、已配置的依赖项并将它们放在单个 jar 文件中。但是请注意,例如数据库驱动程序将不包括在内。jar-with-dependencies
似乎 tigase 需要数据库来运行,并且管理指南鼓励将共享主服务器的数据库用于外部组件。我不确定 tigase 是否可以在没有数据库的情况下启动,这使得使用简单的 java -jar 命令运行起来相当困难。
确实需要数据库 - 这有助于使您的配置与可能运行您的外部组件的许多节点保持一致(您只需在一个节点上更新一次,所有剩余节点将自动更新它),但您不必使用主服务器数据库。有关详细信息,请参阅使用单独的数据库。如果您只使用外部组件的单个本地实例,那么您可以创建一个简单的 derby 数据库并将您的配置放在etc/externalComponentItems
文件中