IM Gateway Plugin 1.1.3 Released!

Hi folk! Version 1.1.3 of the IM Gateway plugin is now available on the stable plugins page, and also for update via your Openfire server’s own update mechanism. However, I would like to recommend following this procedure to update the plugin:

  1. Go into your server’s plugins directory

  2. Remove gateway.jar

  3. Wait for the gateway subdir to vanish

  4. Install the new gateway.jar (or install it via the admin console)

Why? Well, there appears to be some ‘timing’ issue when upgrading the plugin that causes the previous version to not entirely be unloaded before the new one attempts to install. This causes some craziness in the form of the old plugin still kinda sorta running but the new one can’t be loaded and you typically see it in the form of “all of my transports went away”.

Annnnyway, so the standard note about “see changelog for updates” but I wanted to highlight a couple of things about this version:

  1. Contact list management should be drastically improved

  2. Mail notifications are supported on all protocols I’m aware of that support them (and can be turned off via the admin console)

  3. ICQ and Gadu-Gadu have been promoted to stable status

Enjoy! Stable plugins page is: http://www.igniterealtime.org/projects/openfire/plugins.jsp

Hi,

I just tried the new version using your instructions but the plugin won’t load up. I have this in my error logs:

2007.09.17 20:41:14 org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java: 462) Error loading plugin: /opt/openfire/plugins/gateway

java.lang.IncompatibleClassChangeError

at org.jivesoftware.openfire.gateway.BaseTransport.start(BaseTransport.java:1030)

at org.jivesoftware.openfire.gateway.protocols.irc.IRCTransport.start(IRCTransport .java:134)

at org.jivesoftware.openfire.component.InternalComponentManager.addComponent(Inter nalComponentManager.java:120)

at org.jivesoftware.openfire.gateway.TransportInstance.startInstance(TransportInst ance.java:209)

at org.jivesoftware.openfire.gateway.GatewayPlugin.maybeStartService(GatewayPlugin .java:147)

at org.jivesoftware.openfire.gateway.GatewayPlugin.initializePlugin(GatewayPlugin. java:84)

at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java :404)

at org.jivesoftware.openfire.container.PluginManager.access$200(PluginManager.java :46)

at org.jivesoftware.openfire.container.PluginManager$PluginMonitor.run(PluginManag er.java:916)

Edit:

I reconnected my client and the AIM and ICQ gateway works. However I have no control panel or what so ever in the openfire interface and Google, MSN and Yahoo aren’t working.

That…

Is interesting. And unexpected. It’s as if I’m being returned something different than what I’m asking for. As if something supposed to return a String is returning something completely incompatible with a String. (I’m not even sure that’s possible, I don’t think I’ve ever seen anything that doesn’t have a toString() method)

What version of Java are you using?

Ok, if you want to get it running in the meantime, set plugin.gateway.tweak.noprobeonstart to true in your system properties.

I’m highly perplexed for sure…

GATE-348

Oh also, what version of openfire are you running?

I’m getting the same error. Running Openfire 3.3.2 and the 1.1.3 IM Gateway Plugin.

Nathan

Adding that system property got rid of the first error but now when I click on registrations I get this.

???error.exception???

java.lang.IncompatibleClassChangeError: Found class org.jivesoftware.openfire.session.ClientSession, but interface was expected
     at org.jivesoftware.openfire.plugin.gateway.gateway_002dregistrations_jsp._jspService(gateway_002dregistrations_jsp.java:206)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.jivesoftware.openfire.container.PluginServlet.handleJSP(PluginServlet.java:234)
     at org.jivesoftware.openfire.container.PluginServlet.service(PluginServlet.java:92)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
     at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:69)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:98)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
     at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:65)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:41)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:69)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:98)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
     at org.mortbay.jetty.Server.handle(Server.java:285)
     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
     at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
     at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

See GATE-347 for the other one

(sheesh what the crap is going on? why didn’t I see this in my own test box?)

Is there any way to download previous versions so we can get back up and running with the gateways?

Nathan

Transports all show up again with that option. And I have the settings page here again. However another issue would be that google transport gave me the message “You’ve got 0 new messages”… maybe there could be something that it won’t inform me that I havn’t got any messages? ^^

Ah and I’m running openfire 3.3.2

If you enable that option you shouldn’t have to downgrade, just the registrations interface is inaccessible. I’m hoping to have 1.1.3a out real soon but one of the issues y’all are running into I can’t reproduce. (the registrations page one I can reproduce though)

HAHAHA Crap sorry about that obi_wan. ;D 0 messages, come on, don’t you want to be -informed-?!?!?!?! GATE-349

Well I’m trying a few things to fix the class cast issue. I’m going to post a build here and ask you all to try it if you don’t mind to try to narrow down what’s going on before really releasing 1.1.3a.

I just downgraded to 1.1.1 and everying is working ok. Once you have a version out thatyou feel should work then I can do a test upgrade.

Nathan

I have found another issue.

When some outside contact try to add a user (using transport IM MSN gateway 1.1.3 on openfire 3.3.2 on Debian GNU Linux) internal users receibe the notification to add a contact, when they acept it nothing happend, new contact isn’t added. And When a internal user try to add a outside user , this last don’t receive a notification or something.

Seems that the bug that make spark crash at adding contacts time is fixed.

jeffto wrote:

When some outside contact try to add a user (using transport IM MSN gateway 1.1.3 on openfire 3.3.2 on Debian GNU Linux) internal users receibe the notification to add a contact, when they acept it nothing happend, new contact isn’t added. And When a internal user try to add a outside user , this last don’t receive a notification or something.

Why would accepting add the contact to your list? It should only add if you’ve also checked (i think it’s checked by default) that you want to add them to your own roster. Is that what’s happening?

If an outside user has already added you and hence granted you permissions to see them, then they won’t get a notification that you added them. (That is the way of MSN and some of the others) Is this a “completely different” person that was added?

I have create 2 new MSN accounts, I try to add from Gaim and then using meebo, but nope, As I told before I try to add a contact from Spark 2.5.6, one of the new accounts to my personal account, so this contacts have never been related or meet before, when I send from spark, nothing happened. So I decide to use the opposite process, I add in my personal account using Gaim, the invitation arrives to Spark, I accept in Spark but the contac in Spark not appear and in my personal Account on Gaim nothing happend.

Jadestorm if you want to test let me know

i have a massive error and none of the protocols actually work anymore, see napalmer’s post for the error

Hey folk, gimme a bit, I have a theory that actually has nothing to do with my code but would highly explain all of this. =( I’ll be posting a “please try this” version in a moment.

Sorry to add to your woes but I just remotely installed the plugin. Now I have no gateways, and the gateway management no longer shows on the admin page.

Try this (if it works for you all, that tells me exactly what the problem is, note that it worked for me)
gateway.jar (1184987 Bytes)

I am back in business. Shame on you making me work on vacation.