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.

Would you please reconsider? There might be number of developers out there, including me, using Windows as development PC. Perhaps you could refactor-rename legacy IQProvider?

1 Like

Yep, same here on macosx :frowning:

I’ll give it another thought.

Meanwhile, please note that case sensitivity apparently can be enabled in some cases. You may want to look into it.

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.

Pending removal of the deprecated API, some pointers have been added to the documentation that describe work-arounds for Mac and Windows.

1 Like