<commit_before>---
title: Incompatible Changes in IntelliJ Platform and Plugins API
---

## Changes in IntelliJ Platform 2017.3

|  Change | How to deal with it |
|---------|---------------------|
|org.apache.sanselan package removed | Use classes from org.apache.commons.imaging instead |

## Changes in IntelliJ Platform 2016.3

|  Change | How to deal with it |
|---------|---------------------|
| com.intellij.openapi.application.ApplicationListener#afterWriteActionFinished method added | Implement this method or extend com.intellij.openapi.application.ApplicationAdapter class instead of implementing the interface |


## Changes in IntelliJ Platform 2016.2 

|  Change | How to deal with it |
|---------|---------------------|
| com.intellij.util.net.HttpConfigurable#PROXY_LOGIN field removed | Use com.intellij.util.net.HttpConfigurable#getProxyLogin() instead |
| com.intellij.util.net.HttpConfigurable#PROXY_PASSWORD_CRYPT field removed | Use com.intellij.util.net.HttpConfigurable#getPlainProxyPassword() instead |
| org.jetbrains.asm4 package removed | Use classes from org.jetbrains.org.objectweb.asm package instead |
<commit_msg>API Changes page: prettify the presentation using markdown features (using code quotes and links), align the tables and add instructions on how to document a new incompatible change.<commit_after>---
title: Incompatible Changes in IntelliJ Platform and Plugins API
---

<!--
To document a new incompatible change you have to fill a row in a table so that
the first column is a problem pattern and the second column is a human-readable description.

The following problem patterns are supported:
<package name> package removed
<class name> class removed
<class name>.<method name> method removed
<class name>.<field name> field removed
<class name>.<method name> abstract method added

where <class name> is a fully-qualified name of the class, e.g. com.intellij.openapi.actionSystem.AnAction.

NOTE: You are allowed to prettify the pattern using markdown-features:
 1) code quotes: `org.example.Foo.methodName`
 2) links [org.example.Foo](upsource:///platform/core-api/src/org/example/Foo)
 3) both code quotes and links: [`org.example.Foo`](upsource:///platform/core-api/src/org/example/Foo)
-->

<style>
  table {
    width:100%;
  }
  th, tr, td {
    width:50%;
  }
</style>

## Changes in IntelliJ Platform 2017.3

|  Change | How to deal with it |
|---------|---------------------|
|`org.apache.sanselan` package removed | Use classes from `org.apache.commons.imaging` instead |

## Changes in IntelliJ Platform 2016.3

|  Change | How to deal with it |
|---------|---------------------|
| [`ApplicationListener.afterWriteActionFinished`](upsource:///platform/core-api/src/com/intellij/openapi/application/ApplicationListener.java?nav=1481:1505:focused&line=45) abstract method added | Implement this method or extend [`com.intellij.openapi.application.ApplicationAdapter`](upsource:////platform/core-api/src/com/intellij/openapi/application/ApplicationAdapter.java) class instead of implementing the interface |


## Changes in IntelliJ Platform 2016.2 

|  Change | How to deal with it |
|---------|---------------------|
| `com.intellij.util.net.HttpConfigurable.PROXY_LOGIN` field removed | Use [`com.intellij.util.net.HttpConfigurable.getProxyLogin()`](upsource:///platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java) instead |
| `com.intellij.util.net.HttpConfigurable.PROXY_PASSWORD_CRYPT` field removed | Use [`com.intellij.util.net.HttpConfigurable.getPlainProxyPassword()`](upsource:///platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java) instead |
| `org.jetbrains.asm4` package removed | Use classes from `org.jetbrains.org.objectweb.asm` package instead |
{'fraction_non_alphanumeric': 0.15228966986155484, 'fraction_numerical': 0.013312034078807242, 'mean_word_length': 3.798212005108557, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2997419', 'n_tokens_mistral': 1134, 'n_tokens_neox': 1071, 'n_words': 308}