+1 on the comments from @CSH with regards to the layout. that said, on reflection, perhaps there should be a /xmppserver/src/main/java (etc), leaving no /src folder at all; As Openfire is a bundle of xmppserver+plugins+installer etc., I’m not sure there’s a need for a /src.
A couple of other opinions;
a) I don’t believe a plugin should always have the “latest” Openfire version in the parent. It implies a <minServerVersion> that is not necessarily true. It should be left at the version is was when last released.
b) In a similar vein, I think all the plugin versions should be a SNAPSHOT version. Taking the contentFilter plugin, for example.
If you build Openfire today, you’ll get contentFilter.jar version 1.8.0 that relies on Openfire 4.3.0-SNAPSHOT and Java 8.
Six months ago, you got contentFilter.jar version 1.8.0 that relied on Openfire 4.2.0 (or something) and Java 7 This means you get two similar looking but very different artefacts.
Instead, the build should generate contentFilter-1.8.1-SNAPSHOT until an update is ready. The update can set the parent version and minServerVersion appropriately, and set a release artefact version. A build is carried out and contentFilter-1.8.1 gets uploaded to Maven Central and then the version is changed to 1.8.2-SNAPSHOT ready for the next release.
If you want to bundle the installer with some default plugins, you can set the plugin versions as dependencies of the installer module, and it will fetch a known good version from Maven Central.
All IMHO, anyway.