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.
regards,
Rafał
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] http://bndtools.org/