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é
>>>>
>>>>
>>>
>>

Reply via email to