Evolving APIs and plug-in versions using PDE & More !

location_city Bengaluru schedule Aug 26th 04:15 - 04:35 PM place Sigma Hall 2 people 1 Interested

An API is a way for services and programs to communicate with each other through a
documented interface. It defines “contracts” for information exchange between programs. But over time,
an API needs to evolve while maintaining the contract compatibility. In some circumstance,
breaking changes has to be made and the clients of the API need to adapt effectively.

For Java applications, there are some ground rules for evolving interface, classes and all other
API elements. In eclipse, PDE tools provide most of the assistance needed for the developer to evolve
APIs without having to say "I just added this. How did that break? "

As plugins evolve, they must maintain the compatibility as far as possible. The nature of changes
to the plugin should also be reflected in the plugin versioning. PDE's version management tools
help developers to put the versioning correctly.

In the talk, I will cover ground rules for API evolution and how PDE helps a developer in that.
Also I will cover versioning guidelines and PDE's support for version management. I will also
talk about other useful aspects of PDE.


Outline/Structure of the Talk

The outline of the presentation will contain

- What is an API and contract compatibility in API?

-  What can cause Binary incompatibility?

- How to evolve interface, class, methods etc   in java ?

- How to do versioning for changes in API?

- Support in PDE for evolving APIs

Learning Outcome

a) Understand evolving APIs

b)  Understand API compatibility and binary compatibility and things that could break it

c) Learn to use PDE in API evolution

d) How to use versioning properly

Target Audience

Eclipse Developers

schedule Submitted 3 years ago

Public Feedback

comment Suggest improvements to the Speaker
  • Naresh Jain
    By Naresh Jain  ~  3 years ago
    reply Reply

    Thanks Vikas for the proposal.

    Backward compatibility of APIs is a real challenge on many Eclipse projects. From the proposal, I understand that your plan is to give a quick 20 mins overview of this topic using PDE's support for version management. I'm wondering if I read the details here: http://www.ibm.com/developerworks/library/os-eclipse-api-tools/ would that give me the necessary overview? Can you turn this into a case-study of how you/your teams have used this on your projects? Any gotchas? 

    We would greatly appreciate, if you can update your proposal by adding a link to any of your past presentation video. This will really help the program committee to understand your presentation style and schedule your session accordingly.


    • Vikas Chandra
      By Vikas Chandra  ~  3 years ago
      reply Reply

      I have updated the proposal with more details. Please have a look.  That should answer most of your queries.

  • Liked Manoj NP

    Manoj NP / Jay / Sasikanth Bharadwaj - Eclipse JDT & Java 9 - The Story so far.

    20 Mins

    Java 9 introduces a major enhancement for modularity that helps define modules - The modular structure brings out a new paradigm shift in the way the programmer would program. From the perspective of JDT and its friends, this change means a relook at the existing concepts - starting from Java Model, through other core pillars of JDT. With the inputs from the EclipseConNA 2016, the JDT core is undergoing a change to incorporate these change both conceptually and at the core implementation level. In this talk, we will provide a brief introduction to the Java 9,  especially to those parts which affect JDT, we would also "redefine" some of the concepts in the Java Model, and then we will talk about the challenges faced and the solutions provided in JDT as a whole for Java 9.

  • Liked Sarika Sinha

    Sarika Sinha - New and Advanced Debugging Tips And Profiling

    Sarika Sinha
    Sarika Sinha
    Lead & Committer
    Eclipse Debug
    schedule 3 years ago
    Sold Out!
    20 Mins

    Eclipse Platform Debug project provides the framework to enable debugging in projects. It adds the concept of Breakpoints, Console, Runtime, Process, Variable View, Expression View ....

    Eclipse JDT Debug project adds the Java specific feature for debugging on top of Platform framework with Java Stack frame, Java Stack trace Console ....

    There are many non obvious ways which can help us achieve effective debugging. Developers using Eclipse for long may not be aware of many of these tips-

    • New debugging features introduced in last two years
    • Advanced debugging tips - Step Filters, organizing breakpoints , Scrapbook, display of logical structure etc.
    • How to create memory dumps
    • How to profile Eclipse projects effectively with profilers like Yourkit