Tigase插件 – 配置

本文翻译自 – http://www.tigase.org/content/plugin-configuration
现在对插件的配置还不是那么直接和简单,我们即将对插件的配置方式进行调整。

在对Tigase载入插件的配置方式当中,最佳最简单的是通过init.properties文件。–sm-plugins属性值标明了哪些插件会在运行时被加载,多个插件之间使用逗号“,”分割。
–sm-plugins = list of plugins –  被服务器加载的插件列表。通常你不需要指定这个参数,服务器会自动加载默认的插件,默认的插件列表包含了所有可用的插件。如果你不想加载所有的插件:比如你的用户管理是由第三方的系统提供,tigase仅作为XMPP服务与其集成,这时你也许不希望用户通过XMPP来注册新用户,那么你就不应该加载用户注册插件;另一种情况是你开发了一个自己的插件来替换tigase的默认插件,比如vCard或者通讯录管理……
如果不希望加载,就在插件id之前加上一个“-”;如果希望加载,就在插件之前加上一个“+”, “+”是可以省略的。比如,下面的一个设置就是关闭了用户注册,并且添加了一个你自己的插件“your-plugin”:

1
--sm-plugins=-jabber:iq:register,+your-plugin

另外需要说明的是,每一个插件都会在一个或多个线程内运行。大多数访问数据库的插件都会在N个线程里运行,N为cpu或cpu的核心个数。在某些情况下,这样简单的配置方式还不够:比如数据库比较慢,或者你的服务负载压力比较大,你需要调节插件线程的个数。那么可以在插件id后面添加“=N”,N就是线程的个数。还是上面的那个例子,修改为8个线程执行“your-plugin”,16个线程执行认证服务:

1
--sm-plugins=-jabber:iq:register,+your-plugin=8,jabber:iq:auth=16

很明显,如果想自如的修改配置,必须要知道插件列表的id。获得插件列表id有两种途径:

一是通过日志文件:logs/tigase-console.log。如果你看一下日志文件,你会找到类似下面的输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Loading plugin: jabber:iq:register ...
Loading plugin: jabber:iq:auth ...
Loading plugin: urn:ietf:params:xml:ns:xmpp-sasl ...
Loading plugin: urn:ietf:params:xml:ns:xmpp-bind ...
Loading plugin: urn:ietf:params:xml:ns:xmpp-session ...
Loading plugin: roster-presence ...
Loading plugin: jabber:iq:privacy ...
Loading plugin: jabber:iq:version ...
Loading plugin: http://jabber.org/protocol/stats ...
Loading plugin: starttls ...
Loading plugin: vcard-temp ...
Loading plugin: http://jabber.org/protocol/commands ...
Loading plugin: jabber:iq:private ...
Loading plugin: urn:xmpp:ping ...

在日志中会找到已经被加载的插件列表。

二是查看session manager的源码,那里硬编码了默认的插件列表:

1
2
3
4
5
6
7
privatestaticfinalString[] PLUGINS_FULL_PROP_VAL =
  {"jabber:iq:register","jabber:iq:auth","urn:ietf:params:xml:ns:xmpp-sasl",
   "urn:ietf:params:xml:ns:xmpp-bind","urn:ietf:params:xml:ns:xmpp-session",
   "roster-presence","jabber:iq:privacy","jabber:iq:version",
   " http://jabber.org/protocol/stats","starttls","msgoffline",
   "vcard-temp"," http://jabber.org/protocol/commands","jabber:iq:private",
   "urn:xmpp:ping","basic-filter","domain-filter"};

无论怎样,你都必须把插件id正确地配置到“–sm-plugins”属性值当中,如果插件在正确的类路径下,那么它就会在运行时被加载。

还有一种加载插件的方式,如果看过之前的一章:Tigase插件-编写插件,应该还记得插件接口定义的方法中都有一个入口参数:Map setting,这个map里面包含了写在配置文件当中的那些配置项,它们会在插件执行时被传递给插件。

init.properties是你放置配置信息的地方,这些配置项都以字符串 sess-man/plugins-conf 开头,那么就可以把你的插件id放到你的配置项里:

1
2
3
sess-man/plugins-conf/message/key1=val1
sess-man/plugins-conf/message/key2=val2
sess-man/plugins-conf/message/key3=val3

你可能感兴趣的:(Tigase插件 – 配置)