This session will cover what it means to have an API in Java. I will explain how an exposed API can be maintained and evolved over releases. I will talk about evolving APIs without breaking the clients. Interesting cases like generification of APIs will be discussed. I will also discuss the various rules of versioning in case the API needs to have breaking changes.
The session will explain the different types of incompatibilities - like binary, source, behavorial incompatibilities etc. with examples. I will demonstrate the examples live during the session.