https://github.com/igniterealtime/Smack/blob/master/documentation/developer/integrationtest.md
Running Smack’s integration tests can be simple as
git clone git@github.com:igniterealtime/Smack.git
cd Smack
gradle integrationTest -Dsinttest.service=my.xmppservice.org \
-Dsinttest.adminAccountUsername=admin \
-Dsinttest.adminAccountPassword=aeR0Wuub
if admin
/ aeR0Wuub
are the credentials of an account on my.xmppservice.org
which is able to create new accounts using XEP-0133.
Note that not all integration tests may run successfully against Openfire, e.g. because of OF-1224.
It is twofold. First, other XMPP server implementations, especially ejabberd and prosody, appear to have more traction. New things get implemented more quickly and there is a vibrant community around them. Furthermore, ejabberd has a strong bound with Conversations, which leads to an excellent feature coverage when it comes to modern mobile XMPP. Prosody has LUA: I’m always impressed how Prosody modules implement even complex XEPs in a matter of a few hundred lines of code. And we are talking more about one- to two-hundred lines here.
The second thing is that important bugs in Openfire releases sometimes just don’t get fixed in a timely manner. OF-1224 from above is a good example here. It affects XMPP-IM / RFC 6121 related stuff, things that are important for even basic XMPP server implementations. I also still remember the time where server-to-server dialback was broken in Openfire 3.7.0 (OF-443) which means that your Openfire could not federate with other servers. It took multiple months until the issue was fixed. IIRC that was what made me switch my personal XMPP service away from Openfire after using it since the Wildfire days.
In summary, that is why Openfire is at the moment not on my personal XMPP server recommendation list.