As a supplier of an OSGi platform we have since long come to the conclusion not 
to take a stand in this question, and instead let the user decide which model 
to use.

In Knopflerfish we supply every OSGi service is three different packages:
<bundle>_api => API part only
<bundle>_impl => impl. only, no API
<bundle>_all  => both API and impl.

Which model works best is very dependent on what kind of system you are 
building with the OSGi technology. One small difference we have found in 
applying the two methods is between in-house closed system, compared to a 
system in which you install 3rd party bundles, sometimes done by an end user. 
In the latter case self-contained bundles can sometimes be preferred to reduce 
dependencies and complexity. On the other hand with a top-class provisioning 
system you shouldn't have to worry ;-)

Regards,
Christer

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Jeff McAffer
Sent: den 3 juni 2008 14:16
To: 'OSGi Developer Mail List'
Subject: RE: [osgi-dev] Put API/SPI/implementation into separate bundles?

> I think it is crucial that bundles run out of the box and not require
> you to chase other bundles to get it to work. This first level
> experience is
> quite important. Just doubling the number of bundles because you might
> have
> to stop a bundle does not like the right trade off to me.
>
> In the OSGi build, all the implementations care the interfaces they
> implement
> so they always run out of the box so setup is simplified.

It is important to simplify consumption.  Agreed.  However, personally I
don't find this to be a motivating argument here.  In our experience writing
large OSGi-based systems it is relatively rare that a bundle implementation
is self-contained so putting the API with the impl still does not give you
just one bundle you can install and run. 

Instead I would prefer to see people use a comprehensive provisioning
mechanism (insert shameless plug for p2) rather than sacrifice architecture
or flexibility.  This is not to say that putting API with impl is wrong,
just that the "out of the box" argument does not work for me.

Jeff

_______________________________________________
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

Reply via email to