The Artima Developer Community
Sponsored Link

Java Buzz Forum
Stable APIs? Yes, we have them.

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Mathias Bogaert

Posts: 618
Nickname: pathos
Registered: Aug, 2003

Mathias Bogaert is a senior software architect at Intrasoft mainly doing projects for the EC.
Stable APIs? Yes, we have them. Posted: Mar 21, 2012 12:40 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Mathias Bogaert.
Original Post: Stable APIs? Yes, we have them.
Feed Title: Scuttlebutt
Feed URL:
Feed Description: tech gossip by mathias
Latest Java Buzz Posts
Latest Java Buzz Posts by Mathias Bogaert
Latest Posts From Scuttlebutt

I think we can all agree that building a software product is difficult. What’s even more difficult is maintaining it. It’s particularly difficult and frustrating when the APIs you’ve come to depend on change from under you. Changing APIs between minor releases negatively affects the developers who rely on it for their products, the customers who bought that developer’s product, and the users of that product. This is a problem with many software ecosystems today and that used to be the case for plugin developers building off of the JIRA APIs. For JIRA 5, we spent a significant amount of engineering effort building the foundation for stable Java APIs. The result of this effort is an API policy that boils down to forwards compatibility throughout all minor releases in a major release family. For example, a plugin that is built against JIRA 5 will continue to work with JIRA 5.1, 5.2, and so on, without being recompiled. Minor releases may add a new API, but it will be binary compatible with the API from previous releases in the same major release family. The JIRA 5 Java APIs are now split up into two Maven artifacts: jira-api (aka, the stable API) – classes or interfaces in this module are considered a part of JIRA’s Java API, and we will maintain binary compatibility for these classes and interfaces. jira-core – contains internal JIRA classes (sometimes call ‘implementation classes’). Plugin developers may have a dependency on jira-core and use any of these implementation classes, but the underlying code may change even in bug-fix releases. To make use of the stable API, make sure your plugin references the following Maven dependency: <dependency>     <groupId>com.atlassian.jira</groupId>     <artifactId>jira-api</artifactId>     <version>${atlassian.product.version}</version>     <scope>provided</scope> </dependency> Why should I care? The basic gist of all of this is that if a plugin uses the APIs in jira-api, that plugin will not break due to an API change across all 5.x releases (because we guarantee that there will be no API changes to jira-api in all 5.x releases). However, if a plugin uses an internal API (found in jira-core), that plugin might break across a 5.x release. For more information about this policy, please visit the official JIRA API policy page. The stable API’s reference documentation is available on We’ve also built the Atlassian Plugin Checkup tool that will allow plugin developers to analyze their plugin’s API usage. If you’re a JIRA plugin developer, please use the Plugin Checkup to verify your stable API usage.

Read: Stable APIs? Yes, we have them.

Topic: The return of the fat app Previous Topic   Next Topic Topic: What’s your Testing Mission?

Sponsored Links


Copyright © 1996-2017 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us