# Adopting 4.10 mechanisms and APIs

This section describes changes that are required if you are trying to change your 4.9 plug-in to adopt the 4.10 mechanisms and APIs.

1. Direct usage of Equinox DS bundle should be replaced

## 1. Direct usage of Equinox DS bundle should be replaced

What is affected: Clients directly using or referencing Equinox DS

Description: For better factorization and maintenance of the OSGI Declarative Services features, we migrated from `org.eclipse.equinox.ds` bundle to `org.apache.felix.scr` which provides the same feature. We consequently removed the `org.eclipse.equinox.ds` bundle from our main deliveries (features or products); but keep it for some time available in our update site to avoid breaking clients who strongly need this one.

Action required: Clients should:

- Consider replacing direct requirement on `org.eclipse.equinox.ds` bundle or packages by a requirement on the provided capability: `Require-Capability: osgi.extender; filter:="(&(osgi.extender=osgi.component)(version>=1.2)(!(version>=2.0)))"` in their MANIFEST.MF.
- When testing, consider replacing a requirement on the `org.eclipse.equinox.ds` bundle by a requirement on the `org.eclipse.rcp` feature. This feature contain the right implementation of the OSGI Declarative Services implementation.
- Replace references to `org.eclipse.equinox.ds` by references to `org.apache.felix.scr` in their `feature.xml`, `MANIFEST.MF` and `*.product` files. For `.product` files, the new Felix bundle also requires a start-level=1 parameter, just like the Equinox DS one did.

All those changes are backward-compatible. So you can apply them on a project using 4.9 as target-platform, and this would work on both 4.9 and 4.10.