i do feel it is worth of some refactoring on the server souce code.
Maybe another code base can be created and start with define module interfaces.
Example, the first module should be: convert stream based xml to dom4j element. dom4j is used in current openfire. it is nice.
Once dom4j element is available, we can define different modules to according to xmpp specifications. At the same time, old code can be copied and tested.
Other modules like IQ handler, presence handler etc… Also, it is important to document such things.
i think the value of openfire is not the source code itself. I do think openfire has very good community like people, web portal forum and open standards etc. These are really good things.
It is not very difficult to code the server actually.
As you said debugging is not easy but I personnaly found code is easily debugged and we soon able to locate the bug.
About Javadoc comments: Javadoc comments is not necessary for private methods becuase they are not useful for devlopers of who using this as library.
Refatoring doestn’t say to outer behaviour to change. So thers is no need to change public methods. only internal re-organization is needed.
Refactoring ca only be done on the parts that are you working currently so that you can make your changes easily and need not to change all code at once. this way we can made our all code refactored. So each of us can contribute to refactoring.
By this post I want to know that Other people can also able to understand code eaily when they modifying or implementing new feature.
And I found there are many diffrences in peoples views.
For refactoring there is no need to make a big roadmap but we can participat at indivisual levels.
Like I want to use/modify some part/class of openfire. I first made unit test using Junit for that part so that the code not break.Make a complete set of test for that part. then start refactoring made fraction of changes and Test the chnages. And again small fraction of changes and test again. In this way we can refactor that part of Openfire. and submitt your code to openfire team with test. SO that jiver can easily test it before adding to its main code base.