Posted 3 days ago by kobit
Scripting support is a basic API built-in to the Tigase server and automatically available to any component at no extra cost. This framework, however, can only access existing component variables which are inherited by your code from parent classes.
... [More]
It can not access any data or any structures you added in your component. A little effort is needed to expose some of your data to the scripting API.
This guide shows how to extend existing scripting API with your component specific data structures.
Integrating your component implementation with the scripting API is as simple as the code below:
<!--/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */
.java5 .imp {font-weight: bold; color: red;}
.java5 .kw1 {color: #b1b100;}
.java5 .kw2 {color: #000000; font-weight: bold;}
.java5 .kw3 {color: #993333;}
.java5 .kw4 {color: #b13366;}
.java5 .kw5 {color: #aaaadd; font-weight: bold;}
.java5 .kw6 {color: #aaaadd; font-weight: bold;}
.java5 .kw7 {color: #aaaadd; font-weight: bold;}
.java5 .kw8 {color: #aaaadd; font-weight: bold;}
.java5 .kw9 {color: #aaaadd; font-weight: bold;}
.java5 .kw10 {color: #aaaadd; font-weight: bold;}
.java5 .kw11 {color: #aaaadd; font-weight: bold;}
.java5 .kw12 {color: #aaaadd; font-weight: bold;}
.java5 .kw13 {color: #aaaadd; font-weight: bold;}
.java5 .kw14 {color: #aaaadd; font-weight: bold;}
.java5 .kw15 {color: #aaaadd; font-weight: bold;}
.java5 .kw16 {color: #aaaadd; font-weight: bold;}
.java5 .kw17 {color: #aaaadd; font-weight: bold;}
.java5 .kw18 {color: #aaaadd; font-weight: bold;}
.java5 .kw19 {color: #aaaadd; font-weight: bold;}
.java5 .kw20 {color: #aaaadd; font-weight: bold;}
.java5 .kw21 {color: #aaaadd; font-weight: bold;}
.java5 .kw22 {color: #aaaadd; font-weight: bold;}
.java5 .kw23 {color: #aaaadd; font-weight: bold;}
.java5 .kw24 {color: #aaaadd; font-weight: bold;}
.java5 .kw25 {color: #aaaadd; font-weight: bold;}
.java5 .kw26 {color: #aaaadd; font-weight: bold;}
.java5 .kw27 {color: #aaaadd; font-weight: bold;}
.java5 .kw28 {color: #aaaadd; font-weight: bold;}
.java5 .kw29 {color: #aaaadd; font-weight: bold;}
.java5 .kw30 {color: #aaaadd; font-weight: bold;}
.java5 .kw31 {color: #aaaadd; font-weight: bold;}
.java5 .kw32 {color: #aaaadd; font-weight: bold;}
.java5 .kw33 {color: #aaaadd; font-weight: bold;}
.java5 .kw34 {color: #aaaadd; font-weight: bold;}
.java5 .kw35 {color: #aaaadd; font-weight: bold;}
.java5 .kw36 {color: #aaaadd; font-weight: bold;}
.java5 .kw37 {color: #aaaadd; font-weight: bold;}
.java5 .kw38 {color: #aaaadd; font-weight: bold;}
.java5 .kw39 {color: #aaaadd; font-weight: bold;}
.java5 .kw40 {color: #aaaadd; font-weight: bold;}
.java5 .kw41 {color: #aaaadd; font-weight: bold;}
.java5 .kw42 {color: #aaaadd; font-weight: bold;}
.java5 .kw43 {color: #aaaadd; font-weight: bold;}
.java5 .kw44 {color: #aaaadd; font-weight: bold;}
.java5 .kw45 {color: #aaaadd; font-weight: bold;}
.java5 .kw46 {color: #aaaadd; font-weight: bold;}
.java5 .kw47 {color: #aaaadd; font-weight: bold;}
.java5 .kw48 {color: #aaaadd; font-weight: bold;}
.java5 .kw49 {color: #aaaadd; font-weight: bold;}
.java5 .kw50 {color: #aaaadd; font-weight: bold;}
.java5 .kw51 {color: #aaaadd; font-weight: bold;}
.java5 .kw52 {color: #aaaadd; font-weight: bold;}
.java5 .kw53 {color: #aaaadd; font-weight: bold;}
.java5 .kw54 {color: #aaaadd; font-weight: bold;}
.java5 .kw55 {color: #aaaadd; font-weight: bold;}
.java5 .kw56 {color: #aaaadd; font-weight: bold;}
.java5 .kw57 {color: #aaaadd; font-weight: bold;}
.java5 .kw58 {color: #aaaadd; font-weight: bold;}
.java5 .kw59 {color: #aaaadd; font-weight: bold;}
.java5 .kw60 {color: #aaaadd; font-weight: bold;}
.java5 .kw61 {color: #aaaadd; font-weight: bold;}
.java5 .kw62 {color: #aaaadd; font-weight: bold;}
.java5 .kw63 {color: #aaaadd; font-weight: bold;}
.java5 .kw64 {color: #aaaadd; font-weight: bold;}
.java5 .kw65 {color: #aaaadd; font-weight: bold;}
.java5 .kw66 {color: #aaaadd; font-weight: bold;}
.java5 .kw67 {color: #aaaadd; font-weight: bold;}
.java5 .kw68 {color: #aaaadd; font-weight: bold;}
.java5 .kw69 {color: #aaaadd; font-weight: bold;}
.java5 .kw70 {color: #aaaadd; font-weight: bold;}
.java5 .kw71 {color: #aaaadd; font-weight: bold;}
.java5 .kw72 {color: #aaaadd; font-weight: bold;}
.java5 .kw73 {color: #aaaadd; font-weight: bold;}
.java5 .kw74 {color: #aaaadd; font-weight: bold;}
.java5 .kw75 {color: #aaaadd; font-weight: bold;}
.java5 .kw76 {color: #aaaadd; font-weight: bold;}
.java5 .kw77 {color: #aaaadd; font-weight: bold;}
.java5 .kw78 {color: #aaaadd; font-weight: bold;}
.java5 .kw79 {color: #aaaadd; font-weight: bold;}
.java5 .kw80 {color: #aaaadd; font-weight: bold;}
.java5 .kw81 {color: #aaaadd; font-weight: bold;}
.java5 .kw82 {color: #aaaadd; font-weight: bold;}
.java5 .kw83 {color: #aaaadd; font-weight: bold;}
.java5 .kw84 {color: #aaaadd; font-weight: bold;}
.java5 .kw85 {color: #aaaadd; font-weight: bold;}
.java5 .kw86 {color: #aaaadd; font-weight: bold;}
.java5 .kw87 {color: #aaaadd; font-weight: bold;}
.java5 .kw88 {color: #aaaadd; font-weight: bold;}
.java5 .kw89 {color: #aaaadd; font-weight: bold;}
.java5 .kw90 {color: #aaaadd; font-weight: bold;}
.java5 .kw91 {color: #aaaadd; font-weight: bold;}
.java5 .kw92 {color: #aaaadd; font-weight: bold;}
.java5 .kw93 {color: #aaaadd; font-weight: bold;}
.java5 .kw94 {color: #aaaadd; font-weight: bold;}
.java5 .kw95 {color: #aaaadd; font-weight: bold;}
.java5 .kw96 {color: #aaaadd; font-weight: bold;}
.java5 .kw97 {color: #aaaadd; font-weight: bold;}
.java5 .kw98 {color: #aaaadd; font-weight: bold;}
.java5 .kw99 {color: #aaaadd; font-weight: bold;}
.java5 .kw100 {color: #aaaadd; font-weight: bold;}
.java5 .kw101 {color: #aaaadd; font-weight: bold;}
.java5 .kw102 {color: #aaaadd; font-weight: bold;}
.java5 .kw103 {color: #aaaadd; font-weight: bold;}
.java5 .kw104 {color: #aaaadd; font-weight: bold;}
.java5 .kw105 {color: #aaaadd; font-weight: bold;}
.java5 .kw106 {color: #aaaadd; font-weight: bold;}
.java5 .kw107 {color: #aaaadd; font-weight: bold;}
.java5 .kw108 {color: #aaaadd; font-weight: bold;}
.java5 .kw109 {color: #aaaadd; font-weight: bold;}
.java5 .kw110 {color: #aaaadd; font-weight: bold;}
.java5 .kw111 {color: #aaaadd; font-weight: bold;}
.java5 .kw112 {color: #aaaadd; font-weight: bold;}
.java5 .kw113 {color: #aaaadd; font-weight: bold;}
.java5 .kw114 {color: #aaaadd; font-weight: bold;}
.java5 .kw115 {color: #aaaadd; font-weight: bold;}
.java5 .kw116 {color: #aaaadd; font-weight: bold;}
.java5 .kw117 {color: #aaaadd; font-weight: bold;}
.java5 .kw118 {color: #aaaadd; font-weight: bold;}
.java5 .kw119 {color: #aaaadd; font-weight: bold;}
.java5 .kw120 {color: #aaaadd; font-weight: bold;}
.java5 .kw121 {color: #aaaadd; font-weight: bold;}
.java5 .kw122 {color: #aaaadd; font-weight: bold;}
.java5 .kw123 {color: #aaaadd; font-weight: bold;}
.java5 .kw124 {color: #aaaadd; font-weight: bold;}
.java5 .kw125 {color: #aaaadd; font-weight: bold;}
.java5 .kw126 {color: #aaaadd; font-weight: bold;}
.java5 .kw127 {color: #aaaadd; font-weight: bold;}
.java5 .kw128 {color: #aaaadd; font-weight: bold;}
.java5 .kw129 {color: #aaaadd; font-weight: bold;}
.java5 .kw130 {color: #aaaadd; font-weight: bold;}
.java5 .kw131 {color: #aaaadd; font-weight: bold;}
.java5 .kw132 {color: #aaaadd; font-weight: bold;}
.java5 .kw133 {color: #aaaadd; font-weight: bold;}
.java5 .kw134 {color: #aaaadd; font-weight: bold;}
.java5 .kw135 {color: #aaaadd; font-weight: bold;}
.java5 .kw136 {color: #aaaadd; font-weight: bold;}
.java5 .kw137 {color: #aaaadd; font-weight: bold;}
.java5 .kw138 {color: #aaaadd; font-weight: bold;}
.java5 .kw139 {color: #aaaadd; font-weight: bold;}
.java5 .kw140 {color: #aaaadd; font-weight: bold;}
.java5 .kw141 {color: #aaaadd; font-weight: bold;}
.java5 .kw142 {color: #aaaadd; font-weight: bold;}
.java5 .kw143 {color: #aaaadd; font-weight: bold;}
.java5 .kw144 {color: #aaaadd; font-weight: bold;}
.java5 .kw145 {color: #aaaadd; font-weight: bold;}
.java5 .kw146 {color: #aaaadd; font-weight: bold;}
.java5 .kw147 {color: #aaaadd; font-weight: bold;}
.java5 .kw148 {color: #aaaadd; font-weight: bold;}
.java5 .kw149 {color: #aaaadd; font-weight: bold;}
.java5 .kw150 {color: #aaaadd; font-weight: bold;}
.java5 .kw151 {color: #aaaadd; font-weight: bold;}
.java5 .kw152 {color: #aaaadd; font-weight: bold;}
.java5 .kw153 {color: #aaaadd; font-weight: bold;}
.java5 .kw154 {color: #aaaadd; font-weight: bold;}
.java5 .kw155 {color: #aaaadd; font-weight: bold;}
.java5 .kw156 {color: #aaaadd; font-weight: bold;}
.java5 .kw157 {color: #aaaadd; font-weight: bold;}
.java5 .kw158 {color: #aaaadd; font-weight: bold;}
.java5 .kw159 {color: #aaaadd; font-weight: bold;}
.java5 .kw160 {color: #aaaadd; font-weight: bold;}
.java5 .kw161 {color: #aaaadd; font-weight: bold;}
.java5 .kw162 {color: #aaaadd; font-weight: bold;}
.java5 .kw163 {color: #aaaadd; font-weight: bold;}
.java5 .kw164 {color: #aaaadd; font-weight: bold;}
.java5 .kw165 {color: #aaaadd; font-weight: bold;}
.java5 .kw166 {color: #aaaadd; font-weight: bold;}
.java5 .co1 {color: #808080; font-style: italic;}
.java5 .coMULTI {color: #808080; font-style: italic;}
.java5 .es0 {color: #000099; font-weight: bold;}
.java5 .br0 {color: #66cc66;}
.java5 .st0 {color: #ff0000;}
.java5 .nu0 {color: #cc66cc;}
.java5 .me1 {color: #006600;}
.java5 .me2 {color: #006600;}
-->
private static final String BAD_WORDS_VAR = "badWords";private static final String WHITE_LIST_VAR = "whiteList"; @Overridepublic void initBindings(Bindings binds) { super.initBindings(binds); binds.put(BAD_WORDS_VAR, badWords); binds.put(WHITE_LIST_VAR, whiteList);}read more [Less]
Posted 4 days ago by kobit
In most cases you want to gather some run-time statistics from your component to see how it works, detect possible performance issues or congestion problems. All the server statistics are exposed and are accessible via XMPP with ad-hoc commands
... [More]
, HTTP, JMX and some selected statistics are also available via SNMP. As a component developer you don't have to do anything to expose your statistic via any of above protocols, you just have to provide your statistics and the admin will be able to access them any way he wants.
This lesson will teach you how to add your own statistics and how to make sure that the statistics generation doesn't affect application performance.
Your component from the very beginning generates some statistics by classes it inherits. Let's add a few statistics to our spam filtering component:
<!--/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */
.java5 .imp {font-weight: bold; color: red;}
.java5 .kw1 {color: #b1b100;}
.java5 .kw2 {color: #000000; font-weight: bold;}
.java5 .kw3 {color: #993333;}
.java5 .kw4 {color: #b13366;}
.java5 .kw5 {color: #aaaadd; font-weight: bold;}
.java5 .kw6 {color: #aaaadd; font-weight: bold;}
.java5 .kw7 {color: #aaaadd; font-weight: bold;}
.java5 .kw8 {color: #aaaadd; font-weight: bold;}
.java5 .kw9 {color: #aaaadd; font-weight: bold;}
.java5 .kw10 {color: #aaaadd; font-weight: bold;}
.java5 .kw11 {color: #aaaadd; font-weight: bold;}
.java5 .kw12 {color: #aaaadd; font-weight: bold;}
.java5 .kw13 {color: #aaaadd; font-weight: bold;}
.java5 .kw14 {color: #aaaadd; font-weight: bold;}
.java5 .kw15 {color: #aaaadd; font-weight: bold;}
.java5 .kw16 {color: #aaaadd; font-weight: bold;}
.java5 .kw17 {color: #aaaadd; font-weight: bold;}
.java5 .kw18 {color: #aaaadd; font-weight: bold;}
.java5 .kw19 {color: #aaaadd; font-weight: bold;}
.java5 .kw20 {color: #aaaadd; font-weight: bold;}
.java5 .kw21 {color: #aaaadd; font-weight: bold;}
.java5 .kw22 {color: #aaaadd; font-weight: bold;}
.java5 .kw23 {color: #aaaadd; font-weight: bold;}
.java5 .kw24 {color: #aaaadd; font-weight: bold;}
.java5 .kw25 {color: #aaaadd; font-weight: bold;}
.java5 .kw26 {color: #aaaadd; font-weight: bold;}
.java5 .kw27 {color: #aaaadd; font-weight: bold;}
.java5 .kw28 {color: #aaaadd; font-weight: bold;}
.java5 .kw29 {color: #aaaadd; font-weight: bold;}
.java5 .kw30 {color: #aaaadd; font-weight: bold;}
.java5 .kw31 {color: #aaaadd; font-weight: bold;}
.java5 .kw32 {color: #aaaadd; font-weight: bold;}
.java5 .kw33 {color: #aaaadd; font-weight: bold;}
.java5 .kw34 {color: #aaaadd; font-weight: bold;}
.java5 .kw35 {color: #aaaadd; font-weight: bold;}
.java5 .kw36 {color: #aaaadd; font-weight: bold;}
.java5 .kw37 {color: #aaaadd; font-weight: bold;}
.java5 .kw38 {color: #aaaadd; font-weight: bold;}
.java5 .kw39 {color: #aaaadd; font-weight: bold;}
.java5 .kw40 {color: #aaaadd; font-weight: bold;}
.java5 .kw41 {color: #aaaadd; font-weight: bold;}
.java5 .kw42 {color: #aaaadd; font-weight: bold;}
.java5 .kw43 {color: #aaaadd; font-weight: bold;}
.java5 .kw44 {color: #aaaadd; font-weight: bold;}
.java5 .kw45 {color: #aaaadd; font-weight: bold;}
.java5 .kw46 {color: #aaaadd; font-weight: bold;}
.java5 .kw47 {color: #aaaadd; font-weight: bold;}
.java5 .kw48 {color: #aaaadd; font-weight: bold;}
.java5 .kw49 {color: #aaaadd; font-weight: bold;}
.java5 .kw50 {color: #aaaadd; font-weight: bold;}
.java5 .kw51 {color: #aaaadd; font-weight: bold;}
.java5 .kw52 {color: #aaaadd; font-weight: bold;}
.java5 .kw53 {color: #aaaadd; font-weight: bold;}
.java5 .kw54 {color: #aaaadd; font-weight: bold;}
.java5 .kw55 {color: #aaaadd; font-weight: bold;}
.java5 .kw56 {color: #aaaadd; font-weight: bold;}
.java5 .kw57 {color: #aaaadd; font-weight: bold;}
.java5 .kw58 {color: #aaaadd; font-weight: bold;}
.java5 .kw59 {color: #aaaadd; font-weight: bold;}
.java5 .kw60 {color: #aaaadd; font-weight: bold;}
.java5 .kw61 {color: #aaaadd; font-weight: bold;}
.java5 .kw62 {color: #aaaadd; font-weight: bold;}
.java5 .kw63 {color: #aaaadd; font-weight: bold;}
.java5 .kw64 {color: #aaaadd; font-weight: bold;}
.java5 .kw65 {color: #aaaadd; font-weight: bold;}
.java5 .kw66 {color: #aaaadd; font-weight: bold;}
.java5 .kw67 {color: #aaaadd; font-weight: bold;}
.java5 .kw68 {color: #aaaadd; font-weight: bold;}
.java5 .kw69 {color: #aaaadd; font-weight: bold;}
.java5 .kw70 {color: #aaaadd; font-weight: bold;}
.java5 .kw71 {color: #aaaadd; font-weight: bold;}
.java5 .kw72 {color: #aaaadd; font-weight: bold;}
.java5 .kw73 {color: #aaaadd; font-weight: bold;}
.java5 .kw74 {color: #aaaadd; font-weight: bold;}
.java5 .kw75 {color: #aaaadd; font-weight: bold;}
.java5 .kw76 {color: #aaaadd; font-weight: bold;}
.java5 .kw77 {color: #aaaadd; font-weight: bold;}
.java5 .kw78 {color: #aaaadd; font-weight: bold;}
.java5 .kw79 {color: #aaaadd; font-weight: bold;}
.java5 .kw80 {color: #aaaadd; font-weight: bold;}
.java5 .kw81 {color: #aaaadd; font-weight: bold;}
.java5 .kw82 {color: #aaaadd; font-weight: bold;}
.java5 .kw83 {color: #aaaadd; font-weight: bold;}
.java5 .kw84 {color: #aaaadd; font-weight: bold;}
.java5 .kw85 {color: #aaaadd; font-weight: bold;}
.java5 .kw86 {color: #aaaadd; font-weight: bold;}
.java5 .kw87 {color: #aaaadd; font-weight: bold;}
.java5 .kw88 {color: #aaaadd; font-weight: bold;}
.java5 .kw89 {color: #aaaadd; font-weight: bold;}
.java5 .kw90 {color: #aaaadd; font-weight: bold;}
.java5 .kw91 {color: #aaaadd; font-weight: bold;}
.java5 .kw92 {color: #aaaadd; font-weight: bold;}
.java5 .kw93 {color: #aaaadd; font-weight: bold;}
.java5 .kw94 {color: #aaaadd; font-weight: bold;}
.java5 .kw95 {color: #aaaadd; font-weight: bold;}
.java5 .kw96 {color: #aaaadd; font-weight: bold;}
.java5 .kw97 {color: #aaaadd; font-weight: bold;}
.java5 .kw98 {color: #aaaadd; font-weight: bold;}
.java5 .kw99 {color: #aaaadd; font-weight: bold;}
.java5 .kw100 {color: #aaaadd; font-weight: bold;}
.java5 .kw101 {color: #aaaadd; font-weight: bold;}
.java5 .kw102 {color: #aaaadd; font-weight: bold;}
.java5 .kw103 {color: #aaaadd; font-weight: bold;}
.java5 .kw104 {color: #aaaadd; font-weight: bold;}
.java5 .kw105 {color: #aaaadd; font-weight: bold;}
.java5 .kw106 {color: #aaaadd; font-weight: bold;}
.java5 .kw107 {color: #aaaadd; font-weight: bold;}
.java5 .kw108 {color: #aaaadd; font-weight: bold;}
.java5 .kw109 {color: #aaaadd; font-weight: bold;}
.java5 .kw110 {color: #aaaadd; font-weight: bold;}
.java5 .kw111 {color: #aaaadd; font-weight: bold;}
.java5 .kw112 {color: #aaaadd; font-weight: bold;}
.java5 .kw113 {color: #aaaadd; font-weight: bold;}
.java5 .kw114 {color: #aaaadd; font-weight: bold;}
.java5 .kw115 {color: #aaaadd; font-weight: bold;}
.java5 .kw116 {color: #aaaadd; font-weight: bold;}
.java5 .kw117 {color: #aaaadd; font-weight: bold;}
.java5 .kw118 {color: #aaaadd; font-weight: bold;}
.java5 .kw119 {color: #aaaadd; font-weight: bold;}
.java5 .kw120 {color: #aaaadd; font-weight: bold;}
.java5 .kw121 {color: #aaaadd; font-weight: bold;}
.java5 .kw122 {color: #aaaadd; font-weight: bold;}
.java5 .kw123 {color: #aaaadd; font-weight: bold;}
.java5 .kw124 {color: #aaaadd; font-weight: bold;}
.java5 .kw125 {color: #aaaadd; font-weight: bold;}
.java5 .kw126 {color: #aaaadd; font-weight: bold;}
.java5 .kw127 {color: #aaaadd; font-weight: bold;}
.java5 .kw128 {color: #aaaadd; font-weight: bold;}
.java5 .kw129 {color: #aaaadd; font-weight: bold;}
.java5 .kw130 {color: #aaaadd; font-weight: bold;}
.java5 .kw131 {color: #aaaadd; font-weight: bold;}
.java5 .kw132 {color: #aaaadd; font-weight: bold;}
.java5 .kw133 {color: #aaaadd; font-weight: bold;}
.java5 .kw134 {color: #aaaadd; font-weight: bold;}
.java5 .kw135 {color: #aaaadd; font-weight: bold;}
.java5 .kw136 {color: #aaaadd; font-weight: bold;}
.java5 .kw137 {color: #aaaadd; font-weight: bold;}
.java5 .kw138 {color: #aaaadd; font-weight: bold;}
.java5 .kw139 {color: #aaaadd; font-weight: bold;}
.java5 .kw140 {color: #aaaadd; font-weight: bold;}
.java5 .kw141 {color: #aaaadd; font-weight: bold;}
.java5 .kw142 {color: #aaaadd; font-weight: bold;}
.java5 .kw143 {color: #aaaadd; font-weight: bold;}
.java5 .kw144 {color: #aaaadd; font-weight: bold;}
.java5 .kw145 {color: #aaaadd; font-weight: bold;}
.java5 .kw146 {color: #aaaadd; font-weight: bold;}
.java5 .kw147 {color: #aaaadd; font-weight: bold;}
.java5 .kw148 {color: #aaaadd; font-weight: bold;}
.java5 .kw149 {color: #aaaadd; font-weight: bold;}
.java5 .kw150 {color: #aaaadd; font-weight: bold;}
.java5 .kw151 {color: #aaaadd; font-weight: bold;}
.java5 .kw152 {color: #aaaadd; font-weight: bold;}
.java5 .kw153 {color: #aaaadd; font-weight: bold;}
.java5 .kw154 {color: #aaaadd; font-weight: bold;}
.java5 .kw155 {color: #aaaadd; font-weight: bold;}
.java5 .kw156 {color: #aaaadd; font-weight: bold;}
.java5 .kw157 {color: #aaaadd; font-weight: bold;}
.java5 .kw158 {color: #aaaadd; font-weight: bold;}
.java5 .kw159 {color: #aaaadd; font-weight: bold;}
.java5 .kw160 {color: #aaaadd; font-weight: bold;}
.java5 .kw161 {color: #aaaadd; font-weight: bold;}
.java5 .kw162 {color: #aaaadd; font-weight: bold;}
.java5 .kw163 {color: #aaaadd; font-weight: bold;}
.java5 .kw164 {color: #aaaadd; font-weight: bold;}
.java5 .kw165 {color: #aaaadd; font-weight: bold;}
.java5 .kw166 {color: #aaaadd; font-weight: bold;}
.java5 .co1 {color: #808080; font-style: italic;}
.java5 .coMULTI {color: #808080; font-style: italic;}
.java5 .es0 {color: #000099; font-weight: bold;}
.java5 .br0 {color: #66cc66;}
.java5 .st0 {color: #ff0000;}
.java5 .nu0 {color: #cc66cc;}
.java5 .me1 {color: #006600;}
.java5 .me2 {color: #006600;}
-->
@Overridepublic void getStatistics(StatisticsList list) { super.getStatistics(list); list.add(getName(), "Spam messages found", totalSpamCounter, Level.INFO); list.add(getName(), "All messages processed", messagesCounter, Level.FINER); if (list.checkLevel(Level.FINEST)) { // Some very expensive statistics generation code... }}read more [Less]
Posted 6 days ago by kobit
I have just spent a 'nice' evening trying to resolve character encoding problem on one of Tigase installations. The installation uses MySQL database. It took me a bit time to figure it out and it looks like it requires changes in a few places to make
... [More]
sure a correct encoding is always used.
I have updated the MySQL database initialisation guide and documented all the places and steps needed to have it working properly. Apparently creating tables with UTF-8 encoding is not enough, apparently MySQL 5.1.x and 5.0.x handle this differently. For MySQL 5.1.x you need updated code for all stored procedures.
Please have a look at the link given for more details. At the end of the page there is a section describing UTF-8 settings or MySQL. Most of them are not related to the Tigase server and might be useful for any database installation with data stored in UTF-8 character set.
read more [Less]
Posted 7 days ago by kobit
You component still shows in the service discovery list as an element with "Undefined description". It doesn't also provide any interesting features or sub-nodes.
In this article I will show how, in a simple way, change the basic
... [More]
component information presented on the service discovery list, how to add some service disco features. As a bit more advanced feature the guide will teach you about adding/removing service discovery nodes at run-time and about updating existing elements.
Component description and category type can be changed by overwriting two following methods:
<!--/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */
.java5 .imp {font-weight: bold; color: red;}
.java5 .kw1 {color: #b1b100;}
.java5 .kw2 {color: #000000; font-weight: bold;}
.java5 .kw3 {color: #993333;}
.java5 .kw4 {color: #b13366;}
.java5 .kw5 {color: #aaaadd; font-weight: bold;}
.java5 .kw6 {color: #aaaadd; font-weight: bold;}
.java5 .kw7 {color: #aaaadd; font-weight: bold;}
.java5 .kw8 {color: #aaaadd; font-weight: bold;}
.java5 .kw9 {color: #aaaadd; font-weight: bold;}
.java5 .kw10 {color: #aaaadd; font-weight: bold;}
.java5 .kw11 {color: #aaaadd; font-weight: bold;}
.java5 .kw12 {color: #aaaadd; font-weight: bold;}
.java5 .kw13 {color: #aaaadd; font-weight: bold;}
.java5 .kw14 {color: #aaaadd; font-weight: bold;}
.java5 .kw15 {color: #aaaadd; font-weight: bold;}
.java5 .kw16 {color: #aaaadd; font-weight: bold;}
.java5 .kw17 {color: #aaaadd; font-weight: bold;}
.java5 .kw18 {color: #aaaadd; font-weight: bold;}
.java5 .kw19 {color: #aaaadd; font-weight: bold;}
.java5 .kw20 {color: #aaaadd; font-weight: bold;}
.java5 .kw21 {color: #aaaadd; font-weight: bold;}
.java5 .kw22 {color: #aaaadd; font-weight: bold;}
.java5 .kw23 {color: #aaaadd; font-weight: bold;}
.java5 .kw24 {color: #aaaadd; font-weight: bold;}
.java5 .kw25 {color: #aaaadd; font-weight: bold;}
.java5 .kw26 {color: #aaaadd; font-weight: bold;}
.java5 .kw27 {color: #aaaadd; font-weight: bold;}
.java5 .kw28 {color: #aaaadd; font-weight: bold;}
.java5 .kw29 {color: #aaaadd; font-weight: bold;}
.java5 .kw30 {color: #aaaadd; font-weight: bold;}
.java5 .kw31 {color: #aaaadd; font-weight: bold;}
.java5 .kw32 {color: #aaaadd; font-weight: bold;}
.java5 .kw33 {color: #aaaadd; font-weight: bold;}
.java5 .kw34 {color: #aaaadd; font-weight: bold;}
.java5 .kw35 {color: #aaaadd; font-weight: bold;}
.java5 .kw36 {color: #aaaadd; font-weight: bold;}
.java5 .kw37 {color: #aaaadd; font-weight: bold;}
.java5 .kw38 {color: #aaaadd; font-weight: bold;}
.java5 .kw39 {color: #aaaadd; font-weight: bold;}
.java5 .kw40 {color: #aaaadd; font-weight: bold;}
.java5 .kw41 {color: #aaaadd; font-weight: bold;}
.java5 .kw42 {color: #aaaadd; font-weight: bold;}
.java5 .kw43 {color: #aaaadd; font-weight: bold;}
.java5 .kw44 {color: #aaaadd; font-weight: bold;}
.java5 .kw45 {color: #aaaadd; font-weight: bold;}
.java5 .kw46 {color: #aaaadd; font-weight: bold;}
.java5 .kw47 {color: #aaaadd; font-weight: bold;}
.java5 .kw48 {color: #aaaadd; font-weight: bold;}
.java5 .kw49 {color: #aaaadd; font-weight: bold;}
.java5 .kw50 {color: #aaaadd; font-weight: bold;}
.java5 .kw51 {color: #aaaadd; font-weight: bold;}
.java5 .kw52 {color: #aaaadd; font-weight: bold;}
.java5 .kw53 {color: #aaaadd; font-weight: bold;}
.java5 .kw54 {color: #aaaadd; font-weight: bold;}
.java5 .kw55 {color: #aaaadd; font-weight: bold;}
.java5 .kw56 {color: #aaaadd; font-weight: bold;}
.java5 .kw57 {color: #aaaadd; font-weight: bold;}
.java5 .kw58 {color: #aaaadd; font-weight: bold;}
.java5 .kw59 {color: #aaaadd; font-weight: bold;}
.java5 .kw60 {color: #aaaadd; font-weight: bold;}
.java5 .kw61 {color: #aaaadd; font-weight: bold;}
.java5 .kw62 {color: #aaaadd; font-weight: bold;}
.java5 .kw63 {color: #aaaadd; font-weight: bold;}
.java5 .kw64 {color: #aaaadd; font-weight: bold;}
.java5 .kw65 {color: #aaaadd; font-weight: bold;}
.java5 .kw66 {color: #aaaadd; font-weight: bold;}
.java5 .kw67 {color: #aaaadd; font-weight: bold;}
.java5 .kw68 {color: #aaaadd; font-weight: bold;}
.java5 .kw69 {color: #aaaadd; font-weight: bold;}
.java5 .kw70 {color: #aaaadd; font-weight: bold;}
.java5 .kw71 {color: #aaaadd; font-weight: bold;}
.java5 .kw72 {color: #aaaadd; font-weight: bold;}
.java5 .kw73 {color: #aaaadd; font-weight: bold;}
.java5 .kw74 {color: #aaaadd; font-weight: bold;}
.java5 .kw75 {color: #aaaadd; font-weight: bold;}
.java5 .kw76 {color: #aaaadd; font-weight: bold;}
.java5 .kw77 {color: #aaaadd; font-weight: bold;}
.java5 .kw78 {color: #aaaadd; font-weight: bold;}
.java5 .kw79 {color: #aaaadd; font-weight: bold;}
.java5 .kw80 {color: #aaaadd; font-weight: bold;}
.java5 .kw81 {color: #aaaadd; font-weight: bold;}
.java5 .kw82 {color: #aaaadd; font-weight: bold;}
.java5 .kw83 {color: #aaaadd; font-weight: bold;}
.java5 .kw84 {color: #aaaadd; font-weight: bold;}
.java5 .kw85 {color: #aaaadd; font-weight: bold;}
.java5 .kw86 {color: #aaaadd; font-weight: bold;}
.java5 .kw87 {color: #aaaadd; font-weight: bold;}
.java5 .kw88 {color: #aaaadd; font-weight: bold;}
.java5 .kw89 {color: #aaaadd; font-weight: bold;}
.java5 .kw90 {color: #aaaadd; font-weight: bold;}
.java5 .kw91 {color: #aaaadd; font-weight: bold;}
.java5 .kw92 {color: #aaaadd; font-weight: bold;}
.java5 .kw93 {color: #aaaadd; font-weight: bold;}
.java5 .kw94 {color: #aaaadd; font-weight: bold;}
.java5 .kw95 {color: #aaaadd; font-weight: bold;}
.java5 .kw96 {color: #aaaadd; font-weight: bold;}
.java5 .kw97 {color: #aaaadd; font-weight: bold;}
.java5 .kw98 {color: #aaaadd; font-weight: bold;}
.java5 .kw99 {color: #aaaadd; font-weight: bold;}
.java5 .kw100 {color: #aaaadd; font-weight: bold;}
.java5 .kw101 {color: #aaaadd; font-weight: bold;}
.java5 .kw102 {color: #aaaadd; font-weight: bold;}
.java5 .kw103 {color: #aaaadd; font-weight: bold;}
.java5 .kw104 {color: #aaaadd; font-weight: bold;}
.java5 .kw105 {color: #aaaadd; font-weight: bold;}
.java5 .kw106 {color: #aaaadd; font-weight: bold;}
.java5 .kw107 {color: #aaaadd; font-weight: bold;}
.java5 .kw108 {color: #aaaadd; font-weight: bold;}
.java5 .kw109 {color: #aaaadd; font-weight: bold;}
.java5 .kw110 {color: #aaaadd; font-weight: bold;}
.java5 .kw111 {color: #aaaadd; font-weight: bold;}
.java5 .kw112 {color: #aaaadd; font-weight: bold;}
.java5 .kw113 {color: #aaaadd; font-weight: bold;}
.java5 .kw114 {color: #aaaadd; font-weight: bold;}
.java5 .kw115 {color: #aaaadd; font-weight: bold;}
.java5 .kw116 {color: #aaaadd; font-weight: bold;}
.java5 .kw117 {color: #aaaadd; font-weight: bold;}
.java5 .kw118 {color: #aaaadd; font-weight: bold;}
.java5 .kw119 {color: #aaaadd; font-weight: bold;}
.java5 .kw120 {color: #aaaadd; font-weight: bold;}
.java5 .kw121 {color: #aaaadd; font-weight: bold;}
.java5 .kw122 {color: #aaaadd; font-weight: bold;}
.java5 .kw123 {color: #aaaadd; font-weight: bold;}
.java5 .kw124 {color: #aaaadd; font-weight: bold;}
.java5 .kw125 {color: #aaaadd; font-weight: bold;}
.java5 .kw126 {color: #aaaadd; font-weight: bold;}
.java5 .kw127 {color: #aaaadd; font-weight: bold;}
.java5 .kw128 {color: #aaaadd; font-weight: bold;}
.java5 .kw129 {color: #aaaadd; font-weight: bold;}
.java5 .kw130 {color: #aaaadd; font-weight: bold;}
.java5 .kw131 {color: #aaaadd; font-weight: bold;}
.java5 .kw132 {color: #aaaadd; font-weight: bold;}
.java5 .kw133 {color: #aaaadd; font-weight: bold;}
.java5 .kw134 {color: #aaaadd; font-weight: bold;}
.java5 .kw135 {color: #aaaadd; font-weight: bold;}
.java5 .kw136 {color: #aaaadd; font-weight: bold;}
.java5 .kw137 {color: #aaaadd; font-weight: bold;}
.java5 .kw138 {color: #aaaadd; font-weight: bold;}
.java5 .kw139 {color: #aaaadd; font-weight: bold;}
.java5 .kw140 {color: #aaaadd; font-weight: bold;}
.java5 .kw141 {color: #aaaadd; font-weight: bold;}
.java5 .kw142 {color: #aaaadd; font-weight: bold;}
.java5 .kw143 {color: #aaaadd; font-weight: bold;}
.java5 .kw144 {color: #aaaadd; font-weight: bold;}
.java5 .kw145 {color: #aaaadd; font-weight: bold;}
.java5 .kw146 {color: #aaaadd; font-weight: bold;}
.java5 .kw147 {color: #aaaadd; font-weight: bold;}
.java5 .kw148 {color: #aaaadd; font-weight: bold;}
.java5 .kw149 {color: #aaaadd; font-weight: bold;}
.java5 .kw150 {color: #aaaadd; font-weight: bold;}
.java5 .kw151 {color: #aaaadd; font-weight: bold;}
.java5 .kw152 {color: #aaaadd; font-weight: bold;}
.java5 .kw153 {color: #aaaadd; font-weight: bold;}
.java5 .kw154 {color: #aaaadd; font-weight: bold;}
.java5 .kw155 {color: #aaaadd; font-weight: bold;}
.java5 .kw156 {color: #aaaadd; font-weight: bold;}
.java5 .kw157 {color: #aaaadd; font-weight: bold;}
.java5 .kw158 {color: #aaaadd; font-weight: bold;}
.java5 .kw159 {color: #aaaadd; font-weight: bold;}
.java5 .kw160 {color: #aaaadd; font-weight: bold;}
.java5 .kw161 {color: #aaaadd; font-weight: bold;}
.java5 .kw162 {color: #aaaadd; font-weight: bold;}
.java5 .kw163 {color: #aaaadd; font-weight: bold;}
.java5 .kw164 {color: #aaaadd; font-weight: bold;}
.java5 .kw165 {color: #aaaadd; font-weight: bold;}
.java5 .kw166 {color: #aaaadd; font-weight: bold;}
.java5 .co1 {color: #808080; font-style: italic;}
.java5 .coMULTI {color: #808080; font-style: italic;}
.java5 .es0 {color: #000099; font-weight: bold;}
.java5 .br0 {color: #66cc66;}
.java5 .st0 {color: #ff0000;}
.java5 .nu0 {color: #cc66cc;}
.java5 .me1 {color: #006600;}
.java5 .me2 {color: #006600;}
-->
@Overridepublic String getDiscoDescription() { return "Spam filtering";} @Overridepublic String getDiscoCategoryType() { return "spam";}read more [Less]
Posted 8 days ago by kobit
Multi core and multi CPU machines are nowadays very common. Especially for the application like the XMPP server you most likely deploy your service on a server with a few cores or even a few CPUs. Your new component however processes all packets in a
... [More]
single thread.
This is especially important if the packet processing is CPU expensive like, for example, SPAM checking. In such a case you could experience single Core/CPU usage at 100% while other Cores/CPUs are idling. Ideally, you want your component to use all available CPUs.
The Tigase API offers a very simple way to execute component's processPacket(Packet packet) method in multiple threads. The method int processingThreads() returns number of threads assigned to the component. By default it returns just '1' as not all component implementations are prepared to process packets concurrently. By overwriting the method you can return any value you think is appropriate for the implementation.
If the packet processing is CPU bound only, you normally want to have as many threads as there are CPUs available:
<!--/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */
.java5 .imp {font-weight: bold; color: red;}
.java5 .kw1 {color: #b1b100;}
.java5 .kw2 {color: #000000; font-weight: bold;}
.java5 .kw3 {color: #993333;}
.java5 .kw4 {color: #b13366;}
.java5 .kw5 {color: #aaaadd; font-weight: bold;}
.java5 .kw6 {color: #aaaadd; font-weight: bold;}
.java5 .kw7 {color: #aaaadd; font-weight: bold;}
.java5 .kw8 {color: #aaaadd; font-weight: bold;}
.java5 .kw9 {color: #aaaadd; font-weight: bold;}
.java5 .kw10 {color: #aaaadd; font-weight: bold;}
.java5 .kw11 {color: #aaaadd; font-weight: bold;}
.java5 .kw12 {color: #aaaadd; font-weight: bold;}
.java5 .kw13 {color: #aaaadd; font-weight: bold;}
.java5 .kw14 {color: #aaaadd; font-weight: bold;}
.java5 .kw15 {color: #aaaadd; font-weight: bold;}
.java5 .kw16 {color: #aaaadd; font-weight: bold;}
.java5 .kw17 {color: #aaaadd; font-weight: bold;}
.java5 .kw18 {color: #aaaadd; font-weight: bold;}
.java5 .kw19 {color: #aaaadd; font-weight: bold;}
.java5 .kw20 {color: #aaaadd; font-weight: bold;}
.java5 .kw21 {color: #aaaadd; font-weight: bold;}
.java5 .kw22 {color: #aaaadd; font-weight: bold;}
.java5 .kw23 {color: #aaaadd; font-weight: bold;}
.java5 .kw24 {color: #aaaadd; font-weight: bold;}
.java5 .kw25 {color: #aaaadd; font-weight: bold;}
.java5 .kw26 {color: #aaaadd; font-weight: bold;}
.java5 .kw27 {color: #aaaadd; font-weight: bold;}
.java5 .kw28 {color: #aaaadd; font-weight: bold;}
.java5 .kw29 {color: #aaaadd; font-weight: bold;}
.java5 .kw30 {color: #aaaadd; font-weight: bold;}
.java5 .kw31 {color: #aaaadd; font-weight: bold;}
.java5 .kw32 {color: #aaaadd; font-weight: bold;}
.java5 .kw33 {color: #aaaadd; font-weight: bold;}
.java5 .kw34 {color: #aaaadd; font-weight: bold;}
.java5 .kw35 {color: #aaaadd; font-weight: bold;}
.java5 .kw36 {color: #aaaadd; font-weight: bold;}
.java5 .kw37 {color: #aaaadd; font-weight: bold;}
.java5 .kw38 {color: #aaaadd; font-weight: bold;}
.java5 .kw39 {color: #aaaadd; font-weight: bold;}
.java5 .kw40 {color: #aaaadd; font-weight: bold;}
.java5 .kw41 {color: #aaaadd; font-weight: bold;}
.java5 .kw42 {color: #aaaadd; font-weight: bold;}
.java5 .kw43 {color: #aaaadd; font-weight: bold;}
.java5 .kw44 {color: #aaaadd; font-weight: bold;}
.java5 .kw45 {color: #aaaadd; font-weight: bold;}
.java5 .kw46 {color: #aaaadd; font-weight: bold;}
.java5 .kw47 {color: #aaaadd; font-weight: bold;}
.java5 .kw48 {color: #aaaadd; font-weight: bold;}
.java5 .kw49 {color: #aaaadd; font-weight: bold;}
.java5 .kw50 {color: #aaaadd; font-weight: bold;}
.java5 .kw51 {color: #aaaadd; font-weight: bold;}
.java5 .kw52 {color: #aaaadd; font-weight: bold;}
.java5 .kw53 {color: #aaaadd; font-weight: bold;}
.java5 .kw54 {color: #aaaadd; font-weight: bold;}
.java5 .kw55 {color: #aaaadd; font-weight: bold;}
.java5 .kw56 {color: #aaaadd; font-weight: bold;}
.java5 .kw57 {color: #aaaadd; font-weight: bold;}
.java5 .kw58 {color: #aaaadd; font-weight: bold;}
.java5 .kw59 {color: #aaaadd; font-weight: bold;}
.java5 .kw60 {color: #aaaadd; font-weight: bold;}
.java5 .kw61 {color: #aaaadd; font-weight: bold;}
.java5 .kw62 {color: #aaaadd; font-weight: bold;}
.java5 .kw63 {color: #aaaadd; font-weight: bold;}
.java5 .kw64 {color: #aaaadd; font-weight: bold;}
.java5 .kw65 {color: #aaaadd; font-weight: bold;}
.java5 .kw66 {color: #aaaadd; font-weight: bold;}
.java5 .kw67 {color: #aaaadd; font-weight: bold;}
.java5 .kw68 {color: #aaaadd; font-weight: bold;}
.java5 .kw69 {color: #aaaadd; font-weight: bold;}
.java5 .kw70 {color: #aaaadd; font-weight: bold;}
.java5 .kw71 {color: #aaaadd; font-weight: bold;}
.java5 .kw72 {color: #aaaadd; font-weight: bold;}
.java5 .kw73 {color: #aaaadd; font-weight: bold;}
.java5 .kw74 {color: #aaaadd; font-weight: bold;}
.java5 .kw75 {color: #aaaadd; font-weight: bold;}
.java5 .kw76 {color: #aaaadd; font-weight: bold;}
.java5 .kw77 {color: #aaaadd; font-weight: bold;}
.java5 .kw78 {color: #aaaadd; font-weight: bold;}
.java5 .kw79 {color: #aaaadd; font-weight: bold;}
.java5 .kw80 {color: #aaaadd; font-weight: bold;}
.java5 .kw81 {color: #aaaadd; font-weight: bold;}
.java5 .kw82 {color: #aaaadd; font-weight: bold;}
.java5 .kw83 {color: #aaaadd; font-weight: bold;}
.java5 .kw84 {color: #aaaadd; font-weight: bold;}
.java5 .kw85 {color: #aaaadd; font-weight: bold;}
.java5 .kw86 {color: #aaaadd; font-weight: bold;}
.java5 .kw87 {color: #aaaadd; font-weight: bold;}
.java5 .kw88 {color: #aaaadd; font-weight: bold;}
.java5 .kw89 {color: #aaaadd; font-weight: bold;}
.java5 .kw90 {color: #aaaadd; font-weight: bold;}
.java5 .kw91 {color: #aaaadd; font-weight: bold;}
.java5 .kw92 {color: #aaaadd; font-weight: bold;}
.java5 .kw93 {color: #aaaadd; font-weight: bold;}
.java5 .kw94 {color: #aaaadd; font-weight: bold;}
.java5 .kw95 {color: #aaaadd; font-weight: bold;}
.java5 .kw96 {color: #aaaadd; font-weight: bold;}
.java5 .kw97 {color: #aaaadd; font-weight: bold;}
.java5 .kw98 {color: #aaaadd; font-weight: bold;}
.java5 .kw99 {color: #aaaadd; font-weight: bold;}
.java5 .kw100 {color: #aaaadd; font-weight: bold;}
.java5 .kw101 {color: #aaaadd; font-weight: bold;}
.java5 .kw102 {color: #aaaadd; font-weight: bold;}
.java5 .kw103 {color: #aaaadd; font-weight: bold;}
.java5 .kw104 {color: #aaaadd; font-weight: bold;}
.java5 .kw105 {color: #aaaadd; font-weight: bold;}
.java5 .kw106 {color: #aaaadd; font-weight: bold;}
.java5 .kw107 {color: #aaaadd; font-weight: bold;}
.java5 .kw108 {color: #aaaadd; font-weight: bold;}
.java5 .kw109 {color: #aaaadd; font-weight: bold;}
.java5 .kw110 {color: #aaaadd; font-weight: bold;}
.java5 .kw111 {color: #aaaadd; font-weight: bold;}
.java5 .kw112 {color: #aaaadd; font-weight: bold;}
.java5 .kw113 {color: #aaaadd; font-weight: bold;}
.java5 .kw114 {color: #aaaadd; font-weight: bold;}
.java5 .kw115 {color: #aaaadd; font-weight: bold;}
.java5 .kw116 {color: #aaaadd; font-weight: bold;}
.java5 .kw117 {color: #aaaadd; font-weight: bold;}
.java5 .kw118 {color: #aaaadd; font-weight: bold;}
.java5 .kw119 {color: #aaaadd; font-weight: bold;}
.java5 .kw120 {color: #aaaadd; font-weight: bold;}
.java5 .kw121 {color: #aaaadd; font-weight: bold;}
.java5 .kw122 {color: #aaaadd; font-weight: bold;}
.java5 .kw123 {color: #aaaadd; font-weight: bold;}
.java5 .kw124 {color: #aaaadd; font-weight: bold;}
.java5 .kw125 {color: #aaaadd; font-weight: bold;}
.java5 .kw126 {color: #aaaadd; font-weight: bold;}
.java5 .kw127 {color: #aaaadd; font-weight: bold;}
.java5 .kw128 {color: #aaaadd; font-weight: bold;}
.java5 .kw129 {color: #aaaadd; font-weight: bold;}
.java5 .kw130 {color: #aaaadd; font-weight: bold;}
.java5 .kw131 {color: #aaaadd; font-weight: bold;}
.java5 .kw132 {color: #aaaadd; font-weight: bold;}
.java5 .kw133 {color: #aaaadd; font-weight: bold;}
.java5 .kw134 {color: #aaaadd; font-weight: bold;}
.java5 .kw135 {color: #aaaadd; font-weight: bold;}
.java5 .kw136 {color: #aaaadd; font-weight: bold;}
.java5 .kw137 {color: #aaaadd; font-weight: bold;}
.java5 .kw138 {color: #aaaadd; font-weight: bold;}
.java5 .kw139 {color: #aaaadd; font-weight: bold;}
.java5 .kw140 {color: #aaaadd; font-weight: bold;}
.java5 .kw141 {color: #aaaadd; font-weight: bold;}
.java5 .kw142 {color: #aaaadd; font-weight: bold;}
.java5 .kw143 {color: #aaaadd; font-weight: bold;}
.java5 .kw144 {color: #aaaadd; font-weight: bold;}
.java5 .kw145 {color: #aaaadd; font-weight: bold;}
.java5 .kw146 {color: #aaaadd; font-weight: bold;}
.java5 .kw147 {color: #aaaadd; font-weight: bold;}
.java5 .kw148 {color: #aaaadd; font-weight: bold;}
.java5 .kw149 {color: #aaaadd; font-weight: bold;}
.java5 .kw150 {color: #aaaadd; font-weight: bold;}
.java5 .kw151 {color: #aaaadd; font-weight: bold;}
.java5 .kw152 {color: #aaaadd; font-weight: bold;}
.java5 .kw153 {color: #aaaadd; font-weight: bold;}
.java5 .kw154 {color: #aaaadd; font-weight: bold;}
.java5 .kw155 {color: #aaaadd; font-weight: bold;}
.java5 .kw156 {color: #aaaadd; font-weight: bold;}
.java5 .kw157 {color: #aaaadd; font-weight: bold;}
.java5 .kw158 {color: #aaaadd; font-weight: bold;}
.java5 .kw159 {color: #aaaadd; font-weight: bold;}
.java5 .kw160 {color: #aaaadd; font-weight: bold;}
.java5 .kw161 {color: #aaaadd; font-weight: bold;}
.java5 .kw162 {color: #aaaadd; font-weight: bold;}
.java5 .kw163 {color: #aaaadd; font-weight: bold;}
.java5 .kw164 {color: #aaaadd; font-weight: bold;}
.java5 .kw165 {color: #aaaadd; font-weight: bold;}
.java5 .kw166 {color: #aaaadd; font-weight: bold;}
.java5 .co1 {color: #808080; font-style: italic;}
.java5 .coMULTI {color: #808080; font-style: italic;}
.java5 .es0 {color: #000099; font-weight: bold;}
.java5 .br0 {color: #66cc66;}
.java5 .st0 {color: #ff0000;}
.java5 .nu0 {color: #cc66cc;}
.java5 .me1 {color: #006600;}
.java5 .me2 {color: #006600;}
-->
@Overridepublic int processingThreads() { return Runtime.getRuntime().availableProcessors();}read more [Less]
Posted 9 days ago by kobit
It might be hard to tell what is the first important thing to do with your new component implementation. Different developers may have a different view on this. It seems to me however that it is always a good idea to give to your component a way to
... [More]
configure it and provide some runtime settings.
This guide describes how to add configuration handling to your component. There is detailed configuration API description available so again I am not getting deep into all details just the necessary code.
read more [Less]
Posted 11 days ago by kobit
Creating a Tigase component is actually very simple and with broad API available you can create a powerful component with just a few lines of code. You can find detailed API description elsewhere. This series presents hands on lessons with code
... [More]
examples, teaching how to get desired results in the simplest possible code using existing Tigase API.
Even though all Tigase components are just implementations of ServerComponent interface I will keep such a low level information to necessary minimum. Creating a new component based on just interfaces, while very possible, is not very effective. This guide intends to teach you how to make use of all what is already there, ready to use with a minimal coding effort.
This is just the first lesson of the series where I cover basics of the component implementation.
Let's get started and create the Tigase component:
<!--/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */
.java5 .imp {font-weight: bold; color: red;}
.java5 .kw1 {color: #b1b100;}
.java5 .kw2 {color: #000000; font-weight: bold;}
.java5 .kw3 {color: #993333;}
.java5 .kw4 {color: #b13366;}
.java5 .kw5 {color: #aaaadd; font-weight: bold;}
.java5 .kw6 {color: #aaaadd; font-weight: bold;}
.java5 .kw7 {color: #aaaadd; font-weight: bold;}
.java5 .kw8 {color: #aaaadd; font-weight: bold;}
.java5 .kw9 {color: #aaaadd; font-weight: bold;}
.java5 .kw10 {color: #aaaadd; font-weight: bold;}
.java5 .kw11 {color: #aaaadd; font-weight: bold;}
.java5 .kw12 {color: #aaaadd; font-weight: bold;}
.java5 .kw13 {color: #aaaadd; font-weight: bold;}
.java5 .kw14 {color: #aaaadd; font-weight: bold;}
.java5 .kw15 {color: #aaaadd; font-weight: bold;}
.java5 .kw16 {color: #aaaadd; font-weight: bold;}
.java5 .kw17 {color: #aaaadd; font-weight: bold;}
.java5 .kw18 {color: #aaaadd; font-weight: bold;}
.java5 .kw19 {color: #aaaadd; font-weight: bold;}
.java5 .kw20 {color: #aaaadd; font-weight: bold;}
.java5 .kw21 {color: #aaaadd; font-weight: bold;}
.java5 .kw22 {color: #aaaadd; font-weight: bold;}
.java5 .kw23 {color: #aaaadd; font-weight: bold;}
.java5 .kw24 {color: #aaaadd; font-weight: bold;}
.java5 .kw25 {color: #aaaadd; font-weight: bold;}
.java5 .kw26 {color: #aaaadd; font-weight: bold;}
.java5 .kw27 {color: #aaaadd; font-weight: bold;}
.java5 .kw28 {color: #aaaadd; font-weight: bold;}
.java5 .kw29 {color: #aaaadd; font-weight: bold;}
.java5 .kw30 {color: #aaaadd; font-weight: bold;}
.java5 .kw31 {color: #aaaadd; font-weight: bold;}
.java5 .kw32 {color: #aaaadd; font-weight: bold;}
.java5 .kw33 {color: #aaaadd; font-weight: bold;}
.java5 .kw34 {color: #aaaadd; font-weight: bold;}
.java5 .kw35 {color: #aaaadd; font-weight: bold;}
.java5 .kw36 {color: #aaaadd; font-weight: bold;}
.java5 .kw37 {color: #aaaadd; font-weight: bold;}
.java5 .kw38 {color: #aaaadd; font-weight: bold;}
.java5 .kw39 {color: #aaaadd; font-weight: bold;}
.java5 .kw40 {color: #aaaadd; font-weight: bold;}
.java5 .kw41 {color: #aaaadd; font-weight: bold;}
.java5 .kw42 {color: #aaaadd; font-weight: bold;}
.java5 .kw43 {color: #aaaadd; font-weight: bold;}
.java5 .kw44 {color: #aaaadd; font-weight: bold;}
.java5 .kw45 {color: #aaaadd; font-weight: bold;}
.java5 .kw46 {color: #aaaadd; font-weight: bold;}
.java5 .kw47 {color: #aaaadd; font-weight: bold;}
.java5 .kw48 {color: #aaaadd; font-weight: bold;}
.java5 .kw49 {color: #aaaadd; font-weight: bold;}
.java5 .kw50 {color: #aaaadd; font-weight: bold;}
.java5 .kw51 {color: #aaaadd; font-weight: bold;}
.java5 .kw52 {color: #aaaadd; font-weight: bold;}
.java5 .kw53 {color: #aaaadd; font-weight: bold;}
.java5 .kw54 {color: #aaaadd; font-weight: bold;}
.java5 .kw55 {color: #aaaadd; font-weight: bold;}
.java5 .kw56 {color: #aaaadd; font-weight: bold;}
.java5 .kw57 {color: #aaaadd; font-weight: bold;}
.java5 .kw58 {color: #aaaadd; font-weight: bold;}
.java5 .kw59 {color: #aaaadd; font-weight: bold;}
.java5 .kw60 {color: #aaaadd; font-weight: bold;}
.java5 .kw61 {color: #aaaadd; font-weight: bold;}
.java5 .kw62 {color: #aaaadd; font-weight: bold;}
.java5 .kw63 {color: #aaaadd; font-weight: bold;}
.java5 .kw64 {color: #aaaadd; font-weight: bold;}
.java5 .kw65 {color: #aaaadd; font-weight: bold;}
.java5 .kw66 {color: #aaaadd; font-weight: bold;}
.java5 .kw67 {color: #aaaadd; font-weight: bold;}
.java5 .kw68 {color: #aaaadd; font-weight: bold;}
.java5 .kw69 {color: #aaaadd; font-weight: bold;}
.java5 .kw70 {color: #aaaadd; font-weight: bold;}
.java5 .kw71 {color: #aaaadd; font-weight: bold;}
.java5 .kw72 {color: #aaaadd; font-weight: bold;}
.java5 .kw73 {color: #aaaadd; font-weight: bold;}
.java5 .kw74 {color: #aaaadd; font-weight: bold;}
.java5 .kw75 {color: #aaaadd; font-weight: bold;}
.java5 .kw76 {color: #aaaadd; font-weight: bold;}
.java5 .kw77 {color: #aaaadd; font-weight: bold;}
.java5 .kw78 {color: #aaaadd; font-weight: bold;}
.java5 .kw79 {color: #aaaadd; font-weight: bold;}
.java5 .kw80 {color: #aaaadd; font-weight: bold;}
.java5 .kw81 {color: #aaaadd; font-weight: bold;}
.java5 .kw82 {color: #aaaadd; font-weight: bold;}
.java5 .kw83 {color: #aaaadd; font-weight: bold;}
.java5 .kw84 {color: #aaaadd; font-weight: bold;}
.java5 .kw85 {color: #aaaadd; font-weight: bold;}
.java5 .kw86 {color: #aaaadd; font-weight: bold;}
.java5 .kw87 {color: #aaaadd; font-weight: bold;}
.java5 .kw88 {color: #aaaadd; font-weight: bold;}
.java5 .kw89 {color: #aaaadd; font-weight: bold;}
.java5 .kw90 {color: #aaaadd; font-weight: bold;}
.java5 .kw91 {color: #aaaadd; font-weight: bold;}
.java5 .kw92 {color: #aaaadd; font-weight: bold;}
.java5 .kw93 {color: #aaaadd; font-weight: bold;}
.java5 .kw94 {color: #aaaadd; font-weight: bold;}
.java5 .kw95 {color: #aaaadd; font-weight: bold;}
.java5 .kw96 {color: #aaaadd; font-weight: bold;}
.java5 .kw97 {color: #aaaadd; font-weight: bold;}
.java5 .kw98 {color: #aaaadd; font-weight: bold;}
.java5 .kw99 {color: #aaaadd; font-weight: bold;}
.java5 .kw100 {color: #aaaadd; font-weight: bold;}
.java5 .kw101 {color: #aaaadd; font-weight: bold;}
.java5 .kw102 {color: #aaaadd; font-weight: bold;}
.java5 .kw103 {color: #aaaadd; font-weight: bold;}
.java5 .kw104 {color: #aaaadd; font-weight: bold;}
.java5 .kw105 {color: #aaaadd; font-weight: bold;}
.java5 .kw106 {color: #aaaadd; font-weight: bold;}
.java5 .kw107 {color: #aaaadd; font-weight: bold;}
.java5 .kw108 {color: #aaaadd; font-weight: bold;}
.java5 .kw109 {color: #aaaadd; font-weight: bold;}
.java5 .kw110 {color: #aaaadd; font-weight: bold;}
.java5 .kw111 {color: #aaaadd; font-weight: bold;}
.java5 .kw112 {color: #aaaadd; font-weight: bold;}
.java5 .kw113 {color: #aaaadd; font-weight: bold;}
.java5 .kw114 {color: #aaaadd; font-weight: bold;}
.java5 .kw115 {color: #aaaadd; font-weight: bold;}
.java5 .kw116 {color: #aaaadd; font-weight: bold;}
.java5 .kw117 {color: #aaaadd; font-weight: bold;}
.java5 .kw118 {color: #aaaadd; font-weight: bold;}
.java5 .kw119 {color: #aaaadd; font-weight: bold;}
.java5 .kw120 {color: #aaaadd; font-weight: bold;}
.java5 .kw121 {color: #aaaadd; font-weight: bold;}
.java5 .kw122 {color: #aaaadd; font-weight: bold;}
.java5 .kw123 {color: #aaaadd; font-weight: bold;}
.java5 .kw124 {color: #aaaadd; font-weight: bold;}
.java5 .kw125 {color: #aaaadd; font-weight: bold;}
.java5 .kw126 {color: #aaaadd; font-weight: bold;}
.java5 .kw127 {color: #aaaadd; font-weight: bold;}
.java5 .kw128 {color: #aaaadd; font-weight: bold;}
.java5 .kw129 {color: #aaaadd; font-weight: bold;}
.java5 .kw130 {color: #aaaadd; font-weight: bold;}
.java5 .kw131 {color: #aaaadd; font-weight: bold;}
.java5 .kw132 {color: #aaaadd; font-weight: bold;}
.java5 .kw133 {color: #aaaadd; font-weight: bold;}
.java5 .kw134 {color: #aaaadd; font-weight: bold;}
.java5 .kw135 {color: #aaaadd; font-weight: bold;}
.java5 .kw136 {color: #aaaadd; font-weight: bold;}
.java5 .kw137 {color: #aaaadd; font-weight: bold;}
.java5 .kw138 {color: #aaaadd; font-weight: bold;}
.java5 .kw139 {color: #aaaadd; font-weight: bold;}
.java5 .kw140 {color: #aaaadd; font-weight: bold;}
.java5 .kw141 {color: #aaaadd; font-weight: bold;}
.java5 .kw142 {color: #aaaadd; font-weight: bold;}
.java5 .kw143 {color: #aaaadd; font-weight: bold;}
.java5 .kw144 {color: #aaaadd; font-weight: bold;}
.java5 .kw145 {color: #aaaadd; font-weight: bold;}
.java5 .kw146 {color: #aaaadd; font-weight: bold;}
.java5 .kw147 {color: #aaaadd; font-weight: bold;}
.java5 .kw148 {color: #aaaadd; font-weight: bold;}
.java5 .kw149 {color: #aaaadd; font-weight: bold;}
.java5 .kw150 {color: #aaaadd; font-weight: bold;}
.java5 .kw151 {color: #aaaadd; font-weight: bold;}
.java5 .kw152 {color: #aaaadd; font-weight: bold;}
.java5 .kw153 {color: #aaaadd; font-weight: bold;}
.java5 .kw154 {color: #aaaadd; font-weight: bold;}
.java5 .kw155 {color: #aaaadd; font-weight: bold;}
.java5 .kw156 {color: #aaaadd; font-weight: bold;}
.java5 .kw157 {color: #aaaadd; font-weight: bold;}
.java5 .kw158 {color: #aaaadd; font-weight: bold;}
.java5 .kw159 {color: #aaaadd; font-weight: bold;}
.java5 .kw160 {color: #aaaadd; font-weight: bold;}
.java5 .kw161 {color: #aaaadd; font-weight: bold;}
.java5 .kw162 {color: #aaaadd; font-weight: bold;}
.java5 .kw163 {color: #aaaadd; font-weight: bold;}
.java5 .kw164 {color: #aaaadd; font-weight: bold;}
.java5 .kw165 {color: #aaaadd; font-weight: bold;}
.java5 .kw166 {color: #aaaadd; font-weight: bold;}
.java5 .co1 {color: #808080; font-style: italic;}
.java5 .coMULTI {color: #808080; font-style: italic;}
.java5 .es0 {color: #000099; font-weight: bold;}
.java5 .br0 {color: #66cc66;}
.java5 .st0 {color: #ff0000;}
.java5 .nu0 {color: #cc66cc;}
.java5 .me1 {color: #006600;}
.java5 .me2 {color: #006600;}
-->
import java.util.logging.Logger;import tigase.server.AbstractMessageReceiver;import tigase.server.Packet; public class TestComponent extends AbstractMessageReceiver { private static final Logger log = Logger.getLogger(TestComponent.class.getName()); @Override public void processPacket(Packet packet) { log.finest("My packet: " + packet.toString()); } }
<!--/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */
.java .imp {font-weight: bold; color: red;}
.java .kw1 {color: #b1b100;}
.java .kw2 {color: #000000; font-weight: bold;}
.java .kw3 {color: #aaaadd; font-weight: bold;}
.java .kw4 {color: #993333;}
.java .co1 {color: #808080; font-style: italic;}
.java .co2 {color: #a1a100;}
.java .coMULTI {color: #808080; font-style: italic;}
.java .es0 {color: #000099; font-weight: bold;}
.java .br0 {color: #66cc66;}
.java .st0 {color: #ff0000;}
.java .nu0 {color: #cc66cc;}
.java .me1 {color: #006600;}
.java .me2 {color: #006600;}
-->
read more [Less]
Posted 14 days ago by kobit
Scripting functionality is quite useful in the Tigase server for all sorts of administrator tasks. The possibility to load new scripts or replace old ones at the server runtime opens quite new area for the service maintenance.
In earlier
... [More]
versions of the Tigase server scripting capabilities was available only in the session manager component while it might be very useful in many other places - connection managers, MUC, PubSub, VHostManager and what even more important in completely new, custom components created for specific needs. It would be quite wasteful to reinvent the wheel every time and implementing scripting capabilities for each component separately.
Therefore the scripting capabilities has been implemented in the core of the Tigase server. It is now part of the API and is automatically available to all components without any additional coding. A detailed developer guide will be published separately.
This document describes changes from the user/administrator perspective because there are some usability changes related to the new implementation.
read more [Less]
Posted 22 days ago by kobit
The Tigase.org with all services has been migrated onto a new machine. More powerful with spare hard drives and new, updated software. I hope this will provide you with a better service, fast loading pages with documentation and more reliable
... [More]
website.
I would like to say a big thank you to Florian from Flosoft for his quick reaction and making a new server available just within a few hours. Hence the service disruption was minimal and I hope it hasn't caused too much inconvenience.
read more [Less]
Posted 24 days ago by kobit
Migration to a new machine has been completed. At least partially. If you see this blog entry, it means that you are accessing the new server.
I have not only moved all service to a new machine but also upgraded software it is running on
... [More]
(now we run on Ubuntu Server instead of Gentoo), migrated to Drupal-6 and generally new versions of everything.
read more [Less]
Copyright © 2009 Geeknet, Inc., All Rights Reserved.