Hi Jean-Baptiste, it would be interesting to have these slides.
Thanks Hervé 2011/4/1 Jean-Baptiste Onofré <[email protected]> > Hi Hervé, > > Another way that should work is to use Bundle Fragment. > It creates a classloader by gathering classloaders from the fragment. > > I made an introduction to OSGi where I explain especially classloaders > (it's just some slides). I can send to you if you want. > > Regards > JB > > > On 04/01/2011 03:53 PM, Hervé BARRAULT wrote: > >> Hi Charles >> >> Thanks for answer. >> >> So, if one day i need to add another driver bundle D3, i will be forced to >> rebuild my bundle B. >> And in my case, for each instance i would only use one of D1, D2, D3 but i >> should deploy all drivers. >> >> Regards >> >> 2011/4/1 Charles Moulliard<[email protected]> >> >> Hi Herve, >>> >>> Blueprint or Spring DM mechanism which allows to proxified spring bean >>> and refer them in OSGI service is a completely independant from the >>> OSGI versioning and class loading resolution. >>> >>> What you can do in bundle B is to use the<Require-Bundle> >>> instructution pointing to BundleSymbolic-Name of wrapped bundles D1 >>> and D2. In this case, you do not need to import those packages. >>> >>> Regards, >>> >>> Charles Moulliard >>> >>> Sr. Principal Solution Architect - FuseSource >>> Apache Committer >>> >>> Blog : http://cmoulliard.blogspot.com >>> Twitter : http://twitter.com/cmoulliard >>> Linkedin : http://www.linkedin.com/in/charlesmoulliard >>> Skype: cmoulliard >>> >>> >>> >>> On Fri, Apr 1, 2011 at 3:29 PM, Hervé BARRAULT<[email protected]> >>> wrote: >>> >>>> Hi, >>>> i'm asking a question about the dependency management and the >>>> publication >>>> >>> of >>> >>>> OSGI services. >>>> >>>> Here a explanation of the situation : >>>> >>>> I have a bundle D1 exporting its packages (a wrapped JDBC driver). >>>> >>>> I have a bundle D2 exporting its packages (another wrapped JDBC driver). >>>> >>>> >>>> I have a bundle DS : a datasource with the following spring file (here >>>> an >>>> extract) : >>>> >>>> <bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" >>>> destroy-method="close"> >>>> <property name="driverClassName" value="${DB_DRIVER}"/> >>>> <property name="url" value="${DB_URL}"/> >>>> <property name="username" value="${DB_USER}"/> >>>> <property name="password" value="${DB_PWD}"/> >>>> <property name="poolPreparedStatements" value="true"/> >>>> </bean> >>>> <osgi:service id="my-ds" ref="datasource" >>>> >>> interface="javax.sql.DataSource" >>> >>>> /> >>>> >>>> DS is importing packages from D1 AND D2 >>>> <Import-Package>oracle.jdbc.driver;resolution:=optional, >>>> com.microsoft.sqlserver;resolution:=optional, >>>> org.apache.commons.dbcp, >>>> javax.sql >>>> </Import-Package> >>>> >>>> With these bundles all its ok. >>>> >>>> >>>> And finally,I have my annoying Bundle B importing the datasource and >>>> >>> using >>> >>>> it : >>>> <osgi:reference id="my-ds" interface="javax.sql.DataSource" /> >>>> >>>> In bundle B, i import javax.sql.DataSource. >>>> But i should also import packages exported by D1 and D2 otherwise i have >>>> >>> an >>> >>>> exception when it's trying to create the driver (the class files are in >>>> >>> D1 >>> >>>> or D2). >>>> >>>> I thought that the service will be exported with the needed >>>> dependencies. >>>> >>>> Is there a way to not declare import of D1 and D2 (in Bundle B) ? [I >>>> know >>>> there is DynamicImport-Package but i would rather using it]. >>>> Why an imported service is not coming with its own dependencies (is >>>> there >>>> >>> a >>> >>>> way to do it)? >>>> >>>> Regards >>>> Hervé >>>> >>>> >>> >>
