Bug: properties in openfire.xml not properly loaded in setup

In setup, some of the host settings are loaded from XML properties specified in openfire.xml, while others are incorrectly loaded from whats currently in JiveGlobals. Since we are in setup mode, JiveGlobals.getProperty returns null thereby ignoring any property overrides in openfire.xml specified by the user.

Fixes:

  1. Instead of just blindly setting anonymous auth to true, check if user has an override property in XML configuration, if not, default to true.

  2. Call getXMLProperty to load user configuration override values and not what is currently in JiveGlobals. During setup mode, this is always null.

  3. Instead of setting default values for auth, user, group, card, lockout, securityAudit and admin class names, check if the user has provided overrides for those properties, and if so, use those, otherwise use defaults.

  4. Expose a method to retrieve XML property names, and then in finishSetup, go through the rest of the XML properties overridden by user that were not touched by setup and individually set those. This is particularly useful when users have to specify primary and secondary * hybrid providers.

After fixing my git mess, new pull request @ https://github.com/igniterealtime/Openfire/pull/65

Looking forward to the feedback.

Thanks,

Shawn

Will create a pull request once my other pull request (https://github.com/igniterealtime/Openfire/pull/60)is approved/rejected.

Is there a particular reason to do so? The typical git(hub) workflow would be to create a branch for every fix and submit PR’s for those branches.

After realizing my git booboo, I have gone ahead and fixed up the branches and created new pull requests for my two changes. Thanks Flow.

You are welcome. If everbody sticks to git best practices and common guidelines then we all benefit from a cleaner, better and clearer development process.

Uh and btw, it was not really necessary to close the pull requests (at least the one that was already pulling from a non-master branch). Github allows you to update PRs easily (e.g. by using force push).

Also wanted to capture this discussion here re the code in github so it doesnt get lost with the shuffle:

Flow:

Collections.emptyList() would have been better to satisfy the generic(s).

Shawn:

I was following the existing patterns being used in the file, but if you guys think this should be changed now - I can change it.

I was following the existing patterns being used in the file, but if you guys think this should be changed now - I can change it.

Collections.EMPTY_LIST was added first. emptyList() was added with Java 1.5 and should be used instead. More info here: java - What is the difference between Collections.emptyList() and Collections.EMPTY_LIST - Stack Overflow

Makes sense given the way I was using it. Switching back into Java after a long while, thanks for the help. Fixed.