Hello Hargreave Thanks lot for tour answer I will try to implement this Hook and will give you news.
Regards Mohamed Le lun. 16 juil. 2018 à 15:47, BJ Hargrave <hargr...@us.ibm.com> a écrit : > The import range in CNS says it will work with any version 1.x of com.foo. > So the resolver is free to resolve CNS to use any 1.x version of the > package com.foo. You can control the version sources by limiting which > bundles are installed. If you want to get really fancy, you can implement a > ResolverHook [1] which can then influence the resolution of CNS. Note: the > resolver hook implementation bundle must be started, and its > ResolverHookFactory service registered, before the framework attempts to > resolve CNS. > > [1] > https://osgi.org/specification/osgi.core/7.0.0/framework.resolverhooks.html > -- > > BJ Hargrave > Senior Technical Staff Member, IBM // office: +1 386 848 1781 > OSGi Fellow and CTO of the OSGi Alliance // mobile: +1 386 848 3788 > hargr...@us.ibm.com > > > > ----- Original message ----- > From: Mohamed AFIF via osgi-dev <osgi-dev@mail.osgi.org> > Sent by: osgi-dev-boun...@mail.osgi.org > To: osgi-dev@mail.osgi.org > Cc: > Subject: [osgi-dev] forcing a karaf to use a lower version of two imported > packages versions > Date: Mon, Jul 16, 2018 4:48 AM > > > hello Everybody, > > We would like to maintiain a backward compatibility as much as possible of > our software , it means if consumer modifiy a bundle version N, and if we > deliver a new version N+1 , he could keep using his modified bundle until > he will be ready to use N+1. So to allow this the only way I've found after > many days of brainstorming is to have the same bundle with the many > versions on Karaf, so this my real use case and my question: > > let's have: > > - two bundles (API) <b> API1.0 and API1.1</b>: both of them > export package com.foo.Inetrface (this interface has been modified by > consumer and kept the same name , in the same artifact > - one consumer bundle <b>CNS </b>importing package from API using this > range [1.0,2)==> will include API1.0 and API1.1. > > > is there any way to tell CNS ( on runtime or compile time ) which > version of API it should consume ? > Concretely as CNS will refrence the higer version (1.1) I would like to > force if to use 1.0 (in the case when Client will have modified initial > version API 0.0 to API 1.0, and after we will deliver to hil a nexw version > API 1.1, so the client should continue to use API 1.0 with CNS ) > > i Thought of a kind of bundle proxy which will include API1.0 and > API1.1, and than will have the repsonsablity to drive toward 1.0 or 1.1 > but , finally it's very hard to develop especially I shoud touch > Classloaders ... > > Many thans for your help > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev > > > >
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev