powered by Jive Software

Similar class names make it impossible to develop on Windows

Hello Developers!
Two classes:

  • org.jivesoftware.smack.provider.IQProvider
  • org.jivesoftware.smack.provider.IqProvider

Have the same name from Windows point of view. Because of that I’m unable to merge the latests master changes into my branch (I’m trying to implement WebSocket connection). I can checkout either IQProvider or IqProvider and the second one always shows as modified. Since I’ve made some changes in gradle files to fix build I’m unable to pass through merge process.

Apart from that issue I’m not sure that this was a good idea to name two classes so similar. IqProvider is an abstract class why don’t just put ‘Abstract’ prefix. Moreover that class extends AbstractProvider class so logically breaks naming inheritance.

Is it possible to rename any of these classes?


  • IQProvider is the old legacy provider for IQs, renaming it would break the existing API.
  • IqProvider is the new superclass for IQ providers and its name follows the code style guide of Smack (basically Google Java code style with minor modifications)

I am sorry, but in this case I think I value backwards compatibility and following the style guide over Windows compatibility.