Openfire 3.7.0 has been released!

The Ignite Realtime Community is very happy to announce the release of Openfire 3.7.0!

You can get your copy of the new release from the Openfire project page on the Ignite Realtime Community website. A fresh batch of plugins, compiled against the latest code is available there too.

As it is the accumulation of nearly two years of work, this new release bring a lot of new features, bugfixes and improvements. Amongst the more notable changes:

  • Openfire is now released under the Apache v2.0 licence.
  • Improves how Openfire handles “idle” connections. Some of you may have the system property xmpp.client.idle set to -1 to work around previously broken behaviour. You may now let it default to 6 minutes or set it to your preference.
  • Improved Openfire’s caching to be less prone to memory exhaustion by correctly calculating cache size usage.
  • Fixed a bug where admin console login into a newly installed Openfire server would fail until restarted.
  • Fixed a bug with shared rosters within a LDAP environment.
  • A memory leak with the Personal Eventing Protocol (PEP) was fixed.
  • Openfire’s custom log interface has been replaced with SLF4J and a Log4J backend.
  • Fix issues with self signed SSL certificates.
  • A number of improvements and fixes were made to the Multi-User Chat (MUC) configuration pages on the admin console
  • There were also some improvements made to the plugins, including the addition of brand new Jingle Nodes plugin.
  • There are also French, Russian, and Lithuanian langauge translation fixes for Openfire and some of the plugins.

A complete set of changes since the 3.6.4 release can be found in the release notes. The changes there include the changes that were part of the beta release. Since the beta, 11 issues were fixed.

2 Likes

Yay, took awhile, but I’m glad that this project is still in development. Looking forward to updating my server this week. Hopefully Spark 2.6.0 isn’t too far off as well. I’ve noticed a lot of changes happening this week on the project page for it.

Yehha, tx for your work!

Woohoo!!

For what it’s worth, Kraken 1.1.3 beta 3 works with Openfire 3.7.0. Only a few more updates I need to make before I put out 1.1.3 final.

1 Like

Thanks! I’ve installed it right away and it is working like a charm. Like robot said, I am looking forward to the next version of Spark Messenger. And hoping it include more features to give administrator more control on how the users uses it. Most importantly, forced (automatic) log on, and preventing users from exiting. Main reason I am checking back this often.

Finally

Paul, there are no plans for such options. You will have to modify Spark for your needs and build your custom Spark version. I think users will be able to kill Spark process via task manager, so i see no use in option to disable exiting the program. Automatic logon is available. Not sure about “forced”. Again, startup entries are usually manageable by users, so they will be able to just remove Spark from autostart. I think you should enforce Spark usage via your company policies, imho.

Wow. I was very sad at how Jive ditched Openfire. A client of mine uses it and I’ve been going through pain manually adding workgroups to Fastpath because it seems to be totally broken for CentOS 5.5 once I upgraded.

Will Fastpath work with 3.7.0? Or does it need to be updated first? Will those plugins be updated at all? I just got done minutes ago actually repackaging the openfire .deb package so it stopped depending on a JRE that Ubuntu doesn’t ship with anymore and switched the dependency to the new JRE that Ubuntu uses… so I could run it under Ubuntu nicely packaged!

The plugins I use are:
Fastpath Service

Fastpath Webchat

User Service

I don’t know if any of those will work with 3.7.0 / be supported.

1 Like

As Guus said in the post, all plugins were updated, so probably you will need to redownload them after you upgrade. I think old versions of plugins should be posted somewhere (in a zip?) in the forums for those who will want to downgrade Openfire.

I didn’t read that closely enough but I guess the page itself isn’t updated, or they just retained the old “last modified” dates for the plugins and didn’t reflect the fact they’ve been recompiled on the plugins page

Fastpath Webchat looks like it should be downloaded properly, but it isn’t. even tried uploading it manually. User Service and Fastpath Service both seem fine. But webchat.war / Fastpath Webchat don’t

2011.03.03 03:32:20 Error loading plugin: /usr/share/openfire/plugins/webchat

java.lang.NoClassDefFoundError: org/mortbay/jetty/servlet/Context

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:2406)

at java.lang.Class.getConstructor0(Class.java:2716)

at java.lang.Class.newInstance0(Class.java:343)

at java.lang.Class.newInstance(Class.java:325)

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

at org.jivesoftware.openfire.container.PluginManager.access$300(PluginManager.java :80)

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

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)

at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 (ScheduledThreadPoolExecutor.java:165)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Schedu ledThreadPoolExecutor.java:267)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:636)

Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.servlet.Context

at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

at java.lang.ClassLoader.loadClass(ClassLoader.java:321)

at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

… 16 more

2011.03.03 03:32:23 Error loading plugin: /usr/share/openfire/plugins/webchat

java.lang.NoClassDefFoundError: org/mortbay/jetty/servlet/Context

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:2406)

at java.lang.Class.getConstructor0(Class.java:2716)

at java.lang.Class.newInstance0(Class.java:343)

at java.lang.Class.newInstance(Class.java:325)

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

at org.jivesoftware.openfire.container.PluginManager.access$300(PluginManager.java :80)

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

at org.jivesoftware.openfire.container.PluginManager.installPlugin(PluginManager.j ava:195)

at org.jivesoftware.openfire.admin.plugin_002dadmin_jsp._jspService(plugin_002dadm in_jsp.java:168)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1216)

at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:11 8)

at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingF ilter.java:50)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494)

at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:93 3)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867 )

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandler Collection.java:245)

at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.jav a:126)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)

at org.eclipse.jetty.server.Server.handle(Server.java:334)

at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)

at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.j ava:1007)

at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:747)

at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)

at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:4 62)

at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)

at java.lang.Thread.run(Thread.java:636)

Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.servlet.Context

at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

at java.lang.ClassLoader.loadClass(ClassLoader.java:321)

at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

… 45 more

That can be fixed with this

// uncomment for openfire 3.6.4
//import org.mortbay.jetty.handler.ContextHandlerCollection;
//import org.mortbay.jetty.webapp.WebAppContext;

// uncomment for openfire 3.7.0
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.webapp.WebAppContext;

Did the connection manager module change? Or will the version 3.6.3 work OK?

Back when I was maintaining this, the connection manager was only being updated to keep it in sync version-wise with Openfire. There’s no real good reason to do that, so 3.6.3 OUGHT to work fine. =) That said I don’t use it so I can’t guarantee that.

There’s no real good reason to do that, so 3.6.3 OUGHT to work fine.
Seems to be working OK after the update. Thanks!

Upgraded to 3.7.0 version and work properly.

Still waiting for Spark 2.6.0 finall release? Is there any date for finall release?

The Mac installer has just been replaced by another one. This one should work better!

I have the same issue with webchat…where do I apply the fix you describe?

Yeah, where is this supposed to be edited? I grepped through the files, I don’t see where I should be editing this.

webchat\src\plugin\java\org\jivesoftware\liveassistant\WebClientPlugin.java

package org.jivesoftware.liveassistant;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.util.Log;
import org.jivesoftware.openfire.container.AdminConsolePlugin;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;
import org.jivesoftware.openfire.XMPPServer;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.webapp.WebAppContext;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**

  • Plugin implementation to allow the web client to operate as a plugin in Jive Messenger.
  • It does so, by installing a “liveassistant” web application into the embedded Jetty
  • server of Jive Messenger.
  • @author Matt Tucker
    */
    public class WebClientPlugin implements Plugin {

Hi,

Thanks !!!

glad to see the best xmpp server isn´t dead.

Hope that from now on, updates will come up more frequently.

Keep the good work !