Hello Felix,

On Jul 15, 2012, at 13:49 PM, Felix Meschberger wrote:

> Just out of curiosity and looking from the outside ...
> 
> I wonder how per-bundle releases would work when merging the projects ? Or 
> isn't this intended at all ?

You no doubt have followed the recent discussions within Apache about doing 
releases and how source releases are the only "official" ones (since consensus 
was that voting on binary releases made little sense as they're hard to review).

I think it is therefore probably a lot easier to go to a single source release 
of ACE as a whole. Within that source release we will then have multiple 
bundles, and each is versioned independently. The same goes for exported 
packages. We actually use "packageinfo" files in exported packages to ensure 
consistent versioning of those. So of course not everything will change every 
release. I see this in a similar way to for example a release of the OSGi 
specifications: there is an R4.2, R4.3, etc but within that release, some specs 
and packages will have changed, others might not.

After voting on a source release we still intend to provide binaries of course, 
and we only need to make available bundes that have changed. At the same time, 
we also want to provide binaries of a complete ACE server for example, and 
maybe others.

> Also, since the developer's view of merged project in Eclipse is probably a 
> single Eclipse project, the developer sees everything inside the Eclipse 
> project, right ?

Yes.

> So, how can it be ensured that when the bundles are created there is no undue 
> import -- e.g. of an implementation package of another bundle within the same 
> Eclipse project ?

Within a single project, there is no way to enforce that. Bnd will import 
anything that your code depends on, if you do not put it in the bundle. That is 
the same for every build tool that uses Bnd.

It is however my experience that packaging things in bundles with Bndtools is 
very easy and mistakes are quickly corrected. The way I work with it, when I 
start developing I simply run an instance of the ACE server right in Eclipse 
and from that point on, any new bundle or change is picked up directly. I 
therefore see directly if things are no longer resolving, if service 
dependencies have gone missing, etc.

Creating multiple bundles out of one project has the advantage that you can 
easily package things in different ways (no need to shuffle projects around) 
and you can even package things in more than one way: Want impl and api in 
different bundles? no problem! also want a combined bundle? no problem! both? 
no problem! :)

Thanks for your feedback!

Greetings, Marcel

Reply via email to