How is it supposed you should develop Plugins?

Hi everyone!

Could someone help me with guidance about how you normally develop new plugins? Do you always write the code inside the Openfire project along with the Openfire core source code?

I know that now Openfire on Github has been Mavenized (didnt try it myself yet) and taking advantage of this great step forward (and thinking about setting up CI and continous deployment as we use to) Is there any way to develop each new Plugins in a separate Maven Project but to run ir and debug it? The idea is that if you commit changes for a Plugin the CI just builds and ships only that Plugin and not the entire Openfire (mainly thinking in the continous deployment part).

I was about to make a few changes in my own branch for Openfire to support this idea but first i’d like the opinion of the community.

I have put the Openfire.jar in the local Maven repository and setup Maven to build my plugins (with Maven assemblies/descriptors).

In these plugins I’ve referenced Openfire.jar with scope “provided”. The CI is happy with it.

I debug plugins together with the Openfire source code, i.e. start Openfire from IDE, build the plugin first with Maven and copy it in the $openfireHome/plugins folder. My plugin is an IntelliJ module then, so IntelliJ catches it up and let me debug.

Thanx @CSH!!!

I made a few changes to my Openfire source code (rewrote the PluginManager logic) and now i dont need to copy the jars to the pluginsDir

But the idea we are looking for is almost what you are doing