Feed aggregator

API and development: RE: Roster Management (include resource)

Tigase XMPP Server Board - Thu, 12/01/2016 - 16:06

(applies to 7.1.x)

Krystian Wojcicki wrote:

I would like to extend the current roster management such that I can specify resources as well ie i can see if /test is online/offline. I understand how the tig_pairs db works but am unsure if simply adding the resource to the jid in the tig_pairs table will suffice.

EDIT: Maybe a bit more of a clarification if for example my friend Bob has an iphone and a computer I would like to be able to add his account twice specifying a different resource each time.

OK, this is a bit complicated - if you want to add a FullJID to the roster then you should be able to - in tig_pairs roster is saved in XML form. However if you would use FullJID as a key while accessing tigase.db.UserRepository then it won't work because API (and underlying storage) expects BareJID to distinguish the user.
However - seeing each resource as online/offline is inherent in the protocol and you should not use particular roster-items to make that distinction. You could, in your application, adjust the view to show all connected resources and their status.
Please also note, that in XMPP (especially recently) it's preferred to use random resources.

Another question is how to use the UserRepository in components I always receive an error that it cannot access any repository not even the default one.

How are you trying to do it? You should be able to use:
tigase.db.RepositoryFactory#getUserRepository(java.lang.String, java.lang.String, java.util.Map<java.lang.String,java.lang.String>)

For example:
String resource = System.getProperty( RepositoryFactory.GEN_USER_DB_URI_PROP_KEY ); RepositoryFactory.getUserRepository(null,resource,null);

Categories: Tigase Forums

API and development: RE: User contact list /drop/move/save

Tigase XMPP Server Board - Thu, 12/01/2016 - 15:07

The most important question is - where do you want to add it? In a plugin? component? admin ad-hoc script (in groovy for example?)? our webUI?

If you are asking about plugins, then I would recommend perusing tigase.xmpp.impl.Presence for example:
protected RosterAbstract roster_util = getRosterUtil();

Categories: Tigase Forums

API and development: RE: how to build and run directly in eclipse

Tigase XMPP Server Board - Thu, 12/01/2016 - 15:04

What exactly have you downloaded? It looks like you cloned git repository and use origin/master branch. I would recommend using origin/release branch which holds 7.1.0 (to be release as stable) and consult with the documentation: http://docs.tigase.org/tigase-server/7.0.3/Administration_Guide/html_chunk/

In eclipse you should pass path to configuration file, i.e.: --property-file etc/init.properties in startup options.

Categories: Tigase Forums

API and development: RE: How to config plugin, tigase not load my plugin

Tigase XMPP Server Board - Thu, 12/01/2016 - 14:58

During startup you should see something similar in etc/tigase-console.log:
Loading plugin: message-exp=…

You also set high log level:
log.log(Level.FINEST, "--------->Processing packet: {0}", packet);

Which would require adding yesky to --debug= line (you are using package tigase.yesky.plugin):
--debug=yesky

Categories: Tigase Forums

API and development: RE: 7.1 release

Tigase XMPP Server Board - Thu, 12/01/2016 - 14:54

Once 7.1 is released we will definitely make an announcement - there is no need to bump this thread periodically :-)

Categories: Tigase Forums

API and development: Roster Management (include resource)

Tigase XMPP Server Board - Wed, 11/30/2016 - 17:45

I would like to extend the current roster management such that I can specify resources as well ie i can see if /test is online/offline. I understand how the tig_pairs db works but am unsure if simply adding the resource to the jid in the tig_pairs table will suffice.

Thanks

Categories: Tigase Forums

API and development: User contact list /drop/move/save

Tigase XMPP Server Board - Tue, 11/29/2016 - 06:08

Hi.
How i can do some actions with user(jid) contact list?
For example drop all contacts by for selected jid or save it e.t.c.
?

Categories: Tigase Forums

API and development: how to build and run directly in eclipse

Tigase XMPP Server Board - Mon, 11/28/2016 - 07:08

I download tigase-server and inport to eclipse by git. When I try to run it,but happened much error.for example:

Caused by: java.lang.RuntimeException: Could not initialize tigase.db.jdbc.DataRepositoryImpl for name 'default'
at tigase.db.beans.MDPoolConfigBean.setInstances(MDPoolConfigBean.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at tigase.kernel.BeanUtils.setValue(BeanUtils.java:158)
at tigase.kernel.core.Kernel.inject(Kernel.java:516)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:571)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.db.beans.MDPoolConfigBean.beanConfigurationChanged(MDPoolConfigBean.java:115)
at tigase.db.beans.MDPoolConfigBean.initialize(MDPoolConfigBean.java:140)
at tigase.kernel.core.Kernel.initBean(Kernel.java:149)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.getInstance(Kernel.java:357)
at tigase.server.Bootstrap.start(Bootstrap.java:107)
at tigase.server.XMPPServer.start(XMPPServer.java:130)
at tigase.server.XMPPServer.main(XMPPServer.java:111)
Caused by: tigase.db.DBInitException: Database initialization failed
at tigase.db.jdbc.DataRepositoryImpl.initRepository(DataRepositoryImpl.java:312)
at tigase.db.beans.MDPoolConfigBean.initRepository(MDPoolConfigBean.java:181)
at tigase.db.beans.MDPoolConfigBean.setInstances(MDPoolConfigBean.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at tigase.kernel.BeanUtils.setValue(BeanUtils.java:158)
at tigase.kernel.core.Kernel.inject(Kernel.java:516)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:571)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.db.beans.MDPoolConfigBean.beanConfigurationChanged(MDPoolConfigBean.java:115)
at tigase.db.beans.MDPoolConfigBean.initialize(MDPoolConfigBean.java:140)
at tigase.kernel.core.Kernel.initBean(Kernel.java:149)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.getInstance(Kernel.java:357)
at tigase.server.Bootstrap.start(Bootstrap.java:107)
at tigase.server.XMPPServer.start(XMPPServer.java:130)
at tigase.server.XMPPServer.main(XMPPServer.java:111)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'tigasedb'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at tigase.db.jdbc.DataRepositoryImpl.initRepo(DataRepositoryImpl.java:452)
at tigase.db.jdbc.DataRepositoryImpl.initRepository(DataRepositoryImpl.java:306)
at tigase.db.beans.MDPoolConfigBean.initRepository(MDPoolConfigBean.java:181)
at tigase.db.beans.MDPoolConfigBean.setInstances(MDPoolConfigBean.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at tigase.kernel.BeanUtils.setValue(BeanUtils.java:158)
at tigase.kernel.core.Kernel.inject(Kernel.java:516)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:571)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.db.beans.MDPoolConfigBean.beanConfigurationChanged(MDPoolConfigBean.java:115)
at tigase.db.beans.MDPoolConfigBean.initialize(MDPoolConfigBean.java:140)
at tigase.kernel.core.Kernel.initBean(Kernel.java:149)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:703)
at tigase.kernel.core.Kernel$DelayedDependenciesInjection.inject(Kernel.java:1259)
at tigase.kernel.core.Kernel.finishDependecyDelayedInjection(Kernel.java:938)
at tigase.kernel.core.Kernel.initBean(Kernel.java:140)
at tigase.kernel.core.Kernel.injectDependencies(Kernel.java:537)
at tigase.kernel.core.Kernel.initBean(Kernel.java:144)
at tigase.kernel.core.Kernel.getInstance(Kernel.java:357)
at tigase.server.Bootstrap.start(Bootstrap.java:107)
at tigase.server.XMPPServer.start(XMPPServer.java:130)
at tigase.server.XMPPServer.main(XMPPServer.java:111)

I don`t know how to fix. but I think that my configuration file is error.
How should I run the debug project through the source code? Hope to get help!

Categories: Tigase Forums

API and development: How to develop a plugin

Tigase XMPP Server Board - Mon, 11/28/2016 - 03:30

Hello!

sorry, my english is poor, I have a question about how to develop plugin?
source code is upload with attach file:
I put the file at 'tigase-server\src\main\java\tigase\yesky\plugin'

after compiled this java file,
and config plugin as :--sm-plugins=+message-archive-xep-0136,+AppMessage,
but it did not work, and output log is
2016-11-28 19:11:11.053 [in_8-message-router] MessageRouter.getLocalComponent() FINEST: No componentID matches (fast lookup against exact address)

how can I do???

Categories: Tigase Forums

API and development: RE: 7.1 release

Tigase XMPP Server Board - Mon, 11/28/2016 - 00:00

Still waiting for updates.

Categories: Tigase Forums

API and development: RE: How to Store and Retrieve message statuses

Tigase XMPP Server Board - Thu, 11/24/2016 - 17:27

Thanks for the reply, Wojciech Kapcia.

We're going forward with extending the message archiving plugin to store the status and also to retrieve it with 0136 (<retrieve/>).

Best regards,

Mauricio Giacomello
Sr. QA | Orion Health
Auckland | New Zealand

Categories: Tigase Forums

Installation and maintenance: RE: How to Config tigase in cluster mode with multiple database?

Tigase XMPP Server Board - Wed, 11/23/2016 - 08:30

Tai Minh wrote:

Thanks for your reply.

I did read tigase document, I saw one tigase server run only max 500k users.
How to i do when my app has over 500k users?

Each requirements and capabilities depends on the particular installation and use case. In general Tigase Cluster offers near linear scalability (with ACS enabled) and can support millions of users.

Categories: Tigase Forums

Installation and maintenance: RE: As an administrator, how to send private messges to all the users?

Tigase XMPP Server Board - Tue, 11/22/2016 - 21:44

Hi Bruce
This is a feature available to XMPP, you can call this by sending an IQ stanza to session manager
<iq type="set" to="sess-man@server.net" id="aad8a"> <command xmlns="http://jabber.org/protocol/commands" node="http://jabber.org/protocol/admin#announce"/> </iq>

You will get a form response from sess-man with instructions
<iq from="sess-man@server.net" type="result" id="aad8a" to="admin@server.net/mobile"> <command xmlns="http://jabber.org/protocol/commands" status="executing" node="http://jabber.org/protocol/admin#announce"> <x xmlns="jabber:x:data" type="form"> <title>Message to online users</title> <instructions>Fill out this form to make an announcement to all active users of this service.</instructions> <field type="hidden" var="FORM_TYPE"> <value>http://jabber.org/protocol/admin</value> </field> <field type="jid-single" label="From address" var="from-jid"> <value>birdbox</value> </field> <field type="text-single" label="Subject" var="subject"> <value>Message from administrators</value> </field> <field type="list-single" label="Type" var="msg-type"> <value>normal</value> <option label="normal"> <value>normal</value> </option> <option label="headline"> <value>headline</value> </option> <option label="chat"> <value>chat</value> </option> </field> <field type="text-multi" var="announcement"> <value/> </field> </x> <actions execute="complete"> <complete/> </actions> </command> </iq>

Send back the response

<iq type="set" to="sess-man@server.net" id="aad9a"> <command xmlns="http://jabber.org/protocol/commands" node="http://jabber.org/protocol/admin#announce"> <x xmlns="jabber:x:data" type="submit"> <field type="hidden" var="FORM_TYPE"> <value>http://jabber.org/protocol/admin</value> </field> <field type="jid-single" var="from-jid"> <value>birdbox</value> </field> <field type="text-single" var="subject"> <value>Message from administrators</value> </field> <field type="list-single" var="msg-type"> <value>headline</value> </field> <field type="text-multi" var="announcement"> <value>Restarting server!</value> </field> </x> </command> </iq>

You will receive an IQ response when it is successful

<iq from="sess-man@server.net" type="result" id="aad9a" to="admin@server.net/mobile"> <command xmlns="http://jabber.org/protocol/commands" status="completed" node="http://jabber.org/protocol/admin#announce"> <x xmlns="jabber:x:data" type="result"> <field type="fixed" var="Note"> <value>Operation successful</value> </field> </x> </command> </iq>

Users will receive the following message:

<message from="server.net" type="headline" to="user@server.net" id="admin"> <body>Restarting server!</body> <subject>Message from administrators</subject> </message>

You can also access this command in Psi by selecting Service Discovery > Session Manager > Execute Command > Send Announcement to Online Users

Categories: Tigase Forums

Installation and maintenance: RE: How to Config tigase in cluster mode with multiple database?

Tigase XMPP Server Board - Tue, 11/22/2016 - 20:52

Thanks for your reply.

I readed tigase document, I saw one tigase server run only max 500k users.

Categories: Tigase Forums

Installation and maintenance: As an administrator, how to send private messges to all the users?

Tigase XMPP Server Board - Tue, 11/22/2016 - 19:15

As an administrator, I want to send private messges to all the users.
The users are not in the roster list of the administrator.
And need to support offline message.

Categories: Tigase Forums

Installation and maintenance: RE: How to Config tigase in cluster mode with multiple database?

Tigase XMPP Server Board - Tue, 11/22/2016 - 07:02

OK, the question is why? and what do you want to achieve?

If each node has separate database, then in turn each node has separate set of users, which thus mean that... this installation is not a cluster...

Categories: Tigase Forums

API and development: RE: How to Store and Retrieve message statuses

Tigase XMPP Server Board - Tue, 11/22/2016 - 06:48

Out of the box - your only option is to use the IDs (most likely using Support for quering messages or collections by part of body of message) however it's not that efficient. Alternatively, you would need to extend Message Archiving component to accommodate needed functionality.

Categories: Tigase Forums

Installation and maintenance: How to Config tigase in cluster mode with multiple database?

Tigase XMPP Server Board - Thu, 11/17/2016 - 22:50

Hello everybody

Please help me!
I want to setup tigase cluster without same database, one node - one database
How to do it?
Thanks very much!

Categories: Tigase Forums

API and development: RE: How to Store and Retrieve message statuses

Tigase XMPP Server Board - Thu, 11/17/2016 - 12:39

Wojciech Kapcia wrote:

Tigase Message Archiving component allows to define custom paths so you can store any defined stanza, hence it will be persisted, see Saving Options

Having a look at this, it seems like we can store the Delivery Receipts in the Message Archiving table but I'm not sure how we could match the receipt to the message it was for. We could look through the ID in the stanza but that seems like a lengthy process. What are the other options?

Categories: Tigase Forums

Installation and maintenance: RE: Cannot connect to Tigase Admin panel?

Tigase XMPP Server Board - Wed, 11/16/2016 - 07:40
Tigase uses mostly default XMPP ports. Here's a list of the defaults:
  • 5222, 5223 - default XMPP socket ports
  • 5280 - BOSH connections
  • 5290 - WebSocket connections
  • 5269 - s2s/federation port
  • 5277 - cluster connections
  • 9050 - JMX port
Categories: Tigase Forums

Pages

Get in touch

We provide software products, consulting and custom development services

Tigase, Inc.
100 Pine Street, Suite 1250
San Francisco, CA 94111, USA
Phone: (415) 315 9771

Follow us on:

Twitter

Back to Top