| OSGi-Compatible JSR APIs |
|
|
|
Some APIs for main JSRs specifications cause a lot of trouble when run from OSGi Environments. This is due the fact that some of the JSR API libraries are OSGi-incompliant and others are OSGi-incompatible. OSGi-incompliant libraries don't have OSGi headers in their manifest, as such, they don't export the packages they have and don't import the packages they need. OSGi-incompatible APIs have OSGi headers in their manifest but their behavior is inconsistent in OSGi Environments, as a result they require sometimes tremendous effort from developers to get working in OSGi-based applications.
The problem is obvious, the code written for these APIs didn't take into account the specifics of OSGi, as such some of them had problems when used inside OSGi Environments. The OSGi-Compatible JSR APIs project solves these problems by providing developers with OSGi-Compatible versions of some of the most commonly used JSR API class libraries which has OSGi-incompatibility problems. Before beginning to work on this project, we encountered more than a dozen of applications that required a lot of effort to run because of similar problems. We abstracted the causes of the problems we had and changed some of APIs internals based on our results. We didn't write the provided API class libraries from scratch rather we modified existing Open Source APIs. For every provided API class library, a link to the original class library is provided. Below are the supported JSR APIs:
|