[//]: # (title: Incompatible Changes in IntelliJ Platform and Plugins API 2021.*) Please see [Incompatible API Changes](api_changes_list.md) on how to verify compatibility. > Changes from API marked with `org.jetbrains.annotations.ApiStatus.@Experimental`/`ScheduledForRemoval` are not listed here, as incompatible changes are to be expected. > {type="note"} > Java 11 is required ([blog post](https://blog.jetbrains.com/platform/2020/09/intellij-project-migrates-to-java-11/)) when targeting 2020.3 and later only. > Please make sure to always upgrade to the latest version of `gradle-intellij-plugin`. Follow releases on [GitHub](https://github.com/JetBrains/gradle-intellij-plugin/releases). > {type="note"} ## 2021.2 ### Changes in IntelliJ Platform 2021.2 `com.intellij.openapi.editor.impl.event.DocumentEventImpl.translateLineViaDiff(int)` method removed : Use persistent range markers instead, see `com.intellij.openapi.editor.Document.createRangeMarker(int, int, boolean)` with `surviveOnExternalChange=true`. `com.intellij.openapi.editor.impl.event.DocumentEventImpl.translateLineViaDiffStrict(int)` method removed : Use persistent range markers instead, see `com.intellij.openapi.editor.Document.createRangeMarker(int, int, boolean)` with `surviveOnExternalChange=true`. `com.intellij.openapi.file.exclude.EnforcedPlainTextFileType` class removed : Use `com.intellij.openapi.fileTypes.PlainTextFileType` instead. ## 2021.1 ### Changes in IntelliJ Platform 2021.1 `com.intellij.util.io.PersistentHashMap.isCorrupted` method removed : The storage checks for corruption automatically, there is no need of any explicit additional checks. `com.intellij.lang.StdLanguages.JSPX` field removed : Add a dependency on the `com.intellij.jsp` plugin and replace the reference with `com.intellij.lang.jspx.JspxLanguageImpl.INSTANCE` `com.intellij.lang.StdLanguages.JSP` field removed : Add a dependency on the `com.intellij.jsp` plugin and replace the reference with `com.intellij.lang.jsp.NewJspLanguage.getInstance()` `com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.compareItems(alreadyFoundItem)` method parameter type changed from `SearchEverywhereFoundElementInfo` to `List` : New API is more abstract which allows to review all already found items before making "deduplication" decision. Also consider implementing `com.intellij.ide.actions.searcheverywhere.AbstractEqualityProvider` instead of `com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider`. `com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.SKIP` field removed : Enum class `SEEqualElementsActionType` was converted to sealed class with the same name. `com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.DO_NOTHING` field removed : Enum class `SEEqualElementsActionType` was converted to sealed class with the same name. `com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.Replace` field removed : Enum class `SEEqualElementsActionType` was converted to sealed class with the same name. `org.sqlite.SQLiteConfig.setBusyTimeout(String)` method parameter type changed from `String` to `int` : Please use updated sqlite-jdbc api. `com.intellij.usages.impl.rules.UsageTypeProvider.getUsageType` method `PsiElement` parameter marked `@NotNull` : This may break source-compatibility with inheritors written in Kotlin if they declare parameter type as nullable. `com.jetbrains.performancePlugin.CommandProvider.getCommands(Project)` method parameter `Project` removed : Project is now only accessible via `com.intellij.openapi.ui.playback.PlaybackContext.getProject()` since it may change during script execution. JSON Widget suppressor EP `com.intellij.json.jsonWidgetSuppressor` : Override new method [`JsonWidgetSuppressor.isCandidateForSuppress(VirtualFile, Project)`](upsource:///json/src/com/jetbrains/jsonSchema/extension/JsonWidgetSuppressor.java) for quick check in EDT before `suppressSwitcherWidget()` is called on background thread. ### Changes in HTTP Client Plugin 2021.1 `com.intellij.ws.rest.client` package removed : Replaced by `com.intellij.httpClient.execution` in HTTP Client plugin `com.intellij.ws.actions` package removed : Replaced by `com.intellij.httpClient.actions` in HTTP Client plugin `com.intellij.ws.converters` package removed : Replaced by `com.intellij.httpClient.converters` in HTTP Client plugin `com.intellij.ws.http.request` package removed : Replaced by `com.intellij.httpClient.http.request` in HTTP Client plugin ### Java UML Plugin 2021.1 Rename of packages to `.java.` specific variants : A number of packages have been renamed: `com.intellij.uml.utils` becomes `com.intellij.uml.java.utils`, `com.intellij.uml.project` becomes `com.intellij.uml.java.project`, and `com.intellij.uml.jigsaw` becomes `com.intellij.uml.java.jigsaw`.