ace-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rafał Krzewski <>
Subject Re: [DISCUSS] Moving the build to BndTools
Date Thu, 28 Jun 2012 09:45:21 GMT
 From my experience, Bndtools + maven-bundle-plugin combination works 
quite well. You don't need to migrate away from Maven to Ant in order to 
use Bndtools.
There are some missing bits, like GAV -> BSN/BV mapping, Bndtools 
release action -> maven-release-plugin integration but other than that, 
it works remarkably smoothly, at least for the little toy projects of 
mine :) I can share some experiences/tips if anyone is interested.


On 06/28/2012 10:52 AM, Tang Yong wrote:
> Hi Marcel,
> Bndtools is indeed a good tool for building osgi bundle, however,
> I want to know whether there are good experences for mirgrating
> a large project(eg. ace, glassfish) which has used maven for building 
> because the current release of bndtools  seemed not to be friend to 
> maven.
> -Best Regard!
> --Tang
> Jean-Baptiste Onofré wrote:
>> Hi Marcel,
>> as discussed this morning, it sounds like a good idea. I took a look 
>> on BndTools and it's interesting, fast, and stable (regarding the 
>> small tests that I did ;)).
>> I would be glad to help around that !
>> Regards
>> JB
>> On 06/28/2012 10:37 AM, Marcel Offermans wrote:
>>> Hi all,
>>> When ACE entered the incubator a few years ago, we were using a 
>>> highly customized Ant based build. At that time, as a community we 
>>> decided that it would be easier to get started with ACE if we moved 
>>> the build to Maven.
>>> Now, I think we have arrived at a point where we need to revisit 
>>> that decision and consider moving to BndTools [1].
>>> Probably the biggest reason for migrating from Maven to BndTools is 
>>> to speed up and simplify development. In case you're not familiar 
>>> with BndTools, it is an Eclipse plugin that provides an OSGi 
>>> development environment based on Bnd. Compared to other 
>>> environments, it is really fast. As soon as you hit "save" on one of 
>>> your source files, a new version of your bundle is created and 
>>> deployed, making any changes almost "instant". Bundles themselves 
>>> are defined using "bnd" files and the plugin provides nice editors 
>>> for those, as well as many different abstractions to talk to 
>>> external repositories through OBR. There are many other advantages, 
>>> such as tooling to help us correctly use semantic versioning 
>>> throughout our project and easy ways to run and debug different 
>>> bundle configurations. Headless builds are supported, as are unit 
>>> and integration testing. An interesting twist is that deploying 
>>> directly to ACE itself is also supported, so we as a project 
>>> integrate nicely with this environme
>> nt.
>>> Another reason to move is that it could make our release process a 
>>> lot simpler. Recent discussions within Apache about what constitutes 
>>> an official release have emphasized that only source releases are 
>>> "official" Apache releases and that those are the ones we should 
>>> vote on. Afterwards we can obviously still make binary releases 
>>> available, and I think in the case of ACE we should. During our 
>>> releases in the incubator we have tried to strike a balance between 
>>> doing "big bang" and "component" releases, setting up everything in 
>>> such a way that we could do both. This has proven to be very 
>>> complicated and doing releases was painful. With BndTools we can 
>>> create one source archive that can be used "out of the box" to build 
>>> everything and since this embeds all bundle and package versions we 
>>> can decide to only bump those if something actually changes. For 
>>> convenience we can then still provide both separate artifacts for 
>>> Maven as well as shrink-wrapped binaries that can be used out of the 
>>> box
>> .
>>> So, the main point I'd like to discuss is, what is your view on 
>>> moving to BndTools?
>>> Greetings, Marcel
>>> [1]

View raw message