Weird removal of classes without deprecation or not?


Alexander asked a similar question two days ago but please read to the end of my post. I switched my build-system to use the IntelliJ SDK 2019.2 EAP and several classes are missing from the SDK. I'm using the Gradle plugin of IntelliJ and it downloaded the latest snapshot version "192.5281.24" and after the switch, I could identify the following classes which are missing

  • com.intellij.openapi.actionSystem.DataKeys
  • com.intellij.platform.templates.BuilderBasedTemplate
  • com.intellij.ide.util.projectWizard.SdkSettingsStep
  • com.intellij.openapi.roots.ui.configuration.JavaContentEntriesEditor
  • com.intellij.openapi.roots.ui.configuration.DefaultModuleConfigurationEditorFactory
  • com.intellij.openapi.roots.LanguageLevelModuleExtensionImpl

You can check that version I mentioned above is exactly the same as the one from the EAP download page of IDEA. Furthermore, it is the same version of the latest tag on the GitHub sources. Here comes the fun part. I went on to check the sources because I wanted to find the person to blame-shame for this and to my surprise, all classes mentioned above are still in the sources. So for instance


This class is still in the sources with no deprecation warning. My best guess right now is that somehow these classes did not make it into the binary but I'm not sure I'm doing something weird. Does anyone have a suggestion?


Those classes have probably been broken out into the new Java support plugin, see:


@Colin Embarrassing, because (a) I knew about this separation and (b) it also crossed my mind. I discarded it because "DataKeys" didn't sound much like a Java dependency. However, as it turns out, you are completely right and checking the sources shows that all of them are now in the java module. Thank you!


w/r to "DataKeys" :

  • Please use {@link LangDataKeys}, {@link PlatformDataKeys} or {@link CommonDataKeys} directly.

@Yann Sorry for not mentioning that I already fixed the DataKeys deprecation.


Please sign in to leave a comment.