Versioning Java APIs in a non-web context
- by GAP
I have modular java application which consists of 40 modules. Some of these modules needs to expose external APIs which other modules or any external integration should be using. The system runs as a desktop application and each module is bundled as a separate jar file. My plan is to bundle the external api as a separate jar. But now the question is: how can I maintain multiple versions of the same API to keep backward compatibility in cases where it can co-exist? Are there any de facto standards on handling APIs versioning out of a web context ?