You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ace.apache.org by Marcel Offermans <ma...@luminis.nl> on 2012/06/28 10:37:31 UTC

[DISCUSS] Moving the build to BndTools

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 environment.

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/


Re: [DISCUSS] Moving the build to BndTools

Posted by Marcel Offermans <ma...@luminis.nl>.
Hello all,

As this discussion seems to have ended, it's time to wrap it up. I've seen some enthousiastic reactions and a few critical notes. All in all I think we should proceed, and I agree with Paul that he first step in the process probably is to keep the project structure intact and do a 1 on 1 migration. When that works, we can review if it makes sense to group certain bundles in a single project or not.

To get the work started, I've created an issue that will group all required subtasks:

https://issues.apache.org/jira/browse/ACE-280

Greetings, Marcel


On Jun 28, 2012, at 14:25 PM, Paul Bakker wrote:

> I have been using BndTools for about a year now on a large project. It works very well, and the development experience is much better/faster compared to Maven. For anyone who tried BndTools when it was still in alpha/beta versions; please try again, a lot has improved and it is very stable now. I'm strongly in favor of moving to BndTools.
> 
> I don't see any reason to keep using Maven when we migrate to BndTools. Offline builds with the generated ANT builds work very well from a CI server. Most of what you need works out of the box, and in my experience it's actually easier to do very specialized release builds from ANT then for Maven. IMO the only benefit that Maven offers is a way to manage dependencies using repositories, which is very important,  but the repositories BND/BNDTools use do the same. I'm in favor of dropping Maven all together.
> 
> On the subject of re-structuring the projects I think we should decide as a next step. BndTools offers some interesting possibilities to group projects together in the IDE, but we don't have to use that if we don't want to. Maybe we could first migrate the projects without making structural changes, and start moving code after that.
> 
> Paul
> 
> 
> On Jun 28, 2012, at 7:48 , Rafał Krzewski wrote:
> 
>> Keeping the POMs for CI/release builds AND running the application live from Eclipse workbench at the same time is a possibility.  However, if you scrap Maven build, and use Bndtools, you'll have to use Ant for "offline" builds. You could also hack together a build using python, make or bash. Either way, I see it as a huge step back from what you have now. In my opinion well laid out Maven build is a great asset for long term maintainability of a project. If you see it as a burden only, it's your call. Use whatever works best for you. After all you will live with the consequences of either choice you make anyway :)
>> 
>> regards,
>> Rafał
>> 
>> On 06/28/2012 01:21 PM, Marcel Offermans wrote:
>>> We are aware of how to currently build the project with Maven (using m2e and related tools). The point is that this way of developing and building the project is a lot slower. For example, if I now want to change a single Java file in one project, I then need to manually rebuild that project, then rebuild the assembly, and if I had for example the ACE server running, I need to either update that bundle myself, or even worse, restart the whole application. All of these steps can no doubt be automated if you spend enough effort with Maven, but this stuff works out of the box with BndTools, which is why I proposed the whole move.
>>> 
>>> So we do not intend to keep all the pom files that Maven requires but instead just create a few bnd files with the bundle definitions and let BndTools do the rest.
>>> 
>>> Greetings, Marcel
>>> 
>>> 
>>> On Jun 28, 2012, at 12:36 PM, Rafał Krzewski wrote:
>>> 
>>>> On 06/28/2012 11:45 AM, Tang Yong wrote:
>>>>> Hello Rafal,
>>>>> 
>>>>>> 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.
>>>>> Real Case is that:
>>>>> 
>>>>> how to import the maven-built large project into bndtools including mave n repo's setting.
>>>>> 
>>>> First off, I assume that the project is OSGi application built using maven-bundle-plugin.
>>>> You should use fairly new Eclipse - 3.8 or 4.2, m2e 1.1, maven-bundle-plugin 2.3.6+ and current Tycho m2e connector. The last is quite counter-intuitive, but it is in fact necessary.
>>>> With this set of tools, you should be able to import the project into eclipse workspace using "Import existing Maven projects into Workspace" and it should build cleanly. If the build is using non-standard plugins you might run into m2e connector problems. There are different solutions, depending on what plugins are in use. I can offer some assistance here, too.
>>>> 
>>>> Once you have the all the dependencies resolved, and all the sources building, you can introduce Bndtools into the mix. You should create bnd.bnd files in each module an move the configuration of BND from maven-bundle-plugin section to that file, and add Bndtools project nature to your project. After this is done, the modules will appear in Bndtools "workspace" repository. Once you have the Workspace repository populated, you can set up some run descriptors to spin up an OSGi framework and run your appplication straight from workspace. Your bundles will be updated in the framework on Save action on and editor, which is allows for really smooth work flow.
>>>> 
>>>> Please note that you should be using m2e provided classpath container for compile-time dependencies in Eclipse. This ensures that the project will build the same way both in Eclipse and outside it (on CI server etc). The runtime classpath is managed by Bndtools, and is composed of bundles from OBR repositories. Maven repositories can be exposed as OBR repositories in several ways, Nexus OSS + OBR plugin being probably the most flexible, but there are simpler zero-investment solutions - repository.xml can be generated with OSGi Bindex tool, or maven-bundle-plugin.
>>>> 
>>>> regards,
>>>> Rafał
>>>> 
>>>> 
>>>>> BTW: which version of bndtools are you using? Version 1.0.0?
>>>>> 
>>>>>> mine :) I can share some experiences/tips if anyone is interested.
>>>>> I want to know very much! Thanks!
>>>>> 
>>>>> -Best Regrads
>>>>> -Tang
>>>> 
>>>> 
>> 
>> 
>> 
> 


Re: [DISCUSS] Moving the build to BndTools

Posted by Paul Bakker <pa...@luminis.eu>.
I have been using BndTools for about a year now on a large project. It works very well, and the development experience is much better/faster compared to Maven. For anyone who tried BndTools when it was still in alpha/beta versions; please try again, a lot has improved and it is very stable now. I'm strongly in favor of moving to BndTools.

I don't see any reason to keep using Maven when we migrate to BndTools. Offline builds with the generated ANT builds work very well from a CI server. Most of what you need works out of the box, and in my experience it's actually easier to do very specialized release builds from ANT then for Maven. IMO the only benefit that Maven offers is a way to manage dependencies using repositories, which is very important,  but the repositories BND/BNDTools use do the same. I'm in favor of dropping Maven all together.

On the subject of re-structuring the projects I think we should decide as a next step. BndTools offers some interesting possibilities to group projects together in the IDE, but we don't have to use that if we don't want to. Maybe we could first migrate the projects without making structural changes, and start moving code after that.

Paul


On Jun 28, 2012, at 7:48 , Rafał Krzewski wrote:

> Keeping the POMs for CI/release builds AND running the application live from Eclipse workbench at the same time is a possibility.  However, if you scrap Maven build, and use Bndtools, you'll have to use Ant for "offline" builds. You could also hack together a build using python, make or bash. Either way, I see it as a huge step back from what you have now. In my opinion well laid out Maven build is a great asset for long term maintainability of a project. If you see it as a burden only, it's your call. Use whatever works best for you. After all you will live with the consequences of either choice you make anyway :)
> 
> regards,
> Rafał
> 
> On 06/28/2012 01:21 PM, Marcel Offermans wrote:
>> We are aware of how to currently build the project with Maven (using m2e and related tools). The point is that this way of developing and building the project is a lot slower. For example, if I now want to change a single Java file in one project, I then need to manually rebuild that project, then rebuild the assembly, and if I had for example the ACE server running, I need to either update that bundle myself, or even worse, restart the whole application. All of these steps can no doubt be automated if you spend enough effort with Maven, but this stuff works out of the box with BndTools, which is why I proposed the whole move.
>> 
>> So we do not intend to keep all the pom files that Maven requires but instead just create a few bnd files with the bundle definitions and let BndTools do the rest.
>> 
>> Greetings, Marcel
>> 
>> 
>> On Jun 28, 2012, at 12:36 PM, Rafał Krzewski wrote:
>> 
>>> On 06/28/2012 11:45 AM, Tang Yong wrote:
>>>> Hello Rafal,
>>>> 
>>>>>  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.
>>>> Real Case is that:
>>>> 
>>>> how to import the maven-built large project into bndtools including mave n repo's setting.
>>>> 
>>> First off, I assume that the project is OSGi application built using maven-bundle-plugin.
>>> You should use fairly new Eclipse - 3.8 or 4.2, m2e 1.1, maven-bundle-plugin 2.3.6+ and current Tycho m2e connector. The last is quite counter-intuitive, but it is in fact necessary.
>>> With this set of tools, you should be able to import the project into eclipse workspace using "Import existing Maven projects into Workspace" and it should build cleanly. If the build is using non-standard plugins you might run into m2e connector problems. There are different solutions, depending on what plugins are in use. I can offer some assistance here, too.
>>> 
>>> Once you have the all the dependencies resolved, and all the sources building, you can introduce Bndtools into the mix. You should create bnd.bnd files in each module an move the configuration of BND from maven-bundle-plugin section to that file, and add Bndtools project nature to your project. After this is done, the modules will appear in Bndtools "workspace" repository. Once you have the Workspace repository populated, you can set up some run descriptors to spin up an OSGi framework and run your appplication straight from workspace. Your bundles will be updated in the framework on Save action on and editor, which is allows for really smooth work flow.
>>> 
>>> Please note that you should be using m2e provided classpath container for compile-time dependencies in Eclipse. This ensures that the project will build the same way both in Eclipse and outside it (on CI server etc). The runtime classpath is managed by Bndtools, and is composed of bundles from OBR repositories. Maven repositories can be exposed as OBR repositories in several ways, Nexus OSS + OBR plugin being probably the most flexible, but there are simpler zero-investment solutions - repository.xml can be generated with OSGi Bindex tool, or maven-bundle-plugin.
>>> 
>>> regards,
>>> Rafał
>>> 
>>> 
>>>> BTW: which version of bndtools are you using? Version 1.0.0?
>>>> 
>>>>> mine :) I can share some experiences/tips if anyone is interested.
>>>> I want to know very much! Thanks!
>>>> 
>>>> -Best Regrads
>>>> -Tang
>>> 
>>> 
> 
> 
> 


Re: [DISCUSS] Moving the build to BndTools

Posted by Rafał Krzewski <ra...@caltha.pl>.
Keeping the POMs for CI/release builds AND running the application live 
from Eclipse workbench at the same time is a possibility.  However, if 
you scrap Maven build, and use Bndtools, you'll have to use Ant for 
"offline" builds. You could also hack together a build using python, 
make or bash. Either way, I see it as a huge step back from what you 
have now. In my opinion well laid out Maven build is a great asset for 
long term maintainability of a project. If you see it as a burden only, 
it's your call. Use whatever works best for you. After all you will live 
with the consequences of either choice you make anyway :)

regards,
Rafał

On 06/28/2012 01:21 PM, Marcel Offermans wrote:
> We are aware of how to currently build the project with Maven (using m2e and related tools). The point is that this way of developing and building the project is a lot slower. For example, if I now want to change a single Java file in one project, I then need to manually rebuild that project, then rebuild the assembly, and if I had for example the ACE server running, I need to either update that bundle myself, or even worse, restart the whole application. All of these steps can no doubt be automated if you spend enough effort with Maven, but this stuff works out of the box with BndTools, which is why I proposed the whole move.
>
> So we do not intend to keep all the pom files that Maven requires but instead just create a few bnd files with the bundle definitions and let BndTools do the rest.
>
> Greetings, Marcel
>
>
> On Jun 28, 2012, at 12:36 PM, Rafał Krzewski wrote:
>
>> On 06/28/2012 11:45 AM, Tang Yong wrote:
>>> Hello Rafal,
>>>
>>>>   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.
>>> Real Case is that:
>>>
>>> how to import the maven-built large project into bndtools including mave n repo's setting.
>>>
>> First off, I assume that the project is OSGi application built using maven-bundle-plugin.
>> You should use fairly new Eclipse - 3.8 or 4.2, m2e 1.1, maven-bundle-plugin 2.3.6+ and current Tycho m2e connector. The last is quite counter-intuitive, but it is in fact necessary.
>> With this set of tools, you should be able to import the project into eclipse workspace using "Import existing Maven projects into Workspace" and it should build cleanly. If the build is using non-standard plugins you might run into m2e connector problems. There are different solutions, depending on what plugins are in use. I can offer some assistance here, too.
>>
>> Once you have the all the dependencies resolved, and all the sources building, you can introduce Bndtools into the mix. You should create bnd.bnd files in each module an move the configuration of BND from maven-bundle-plugin section to that file, and add Bndtools project nature to your project. After this is done, the modules will appear in Bndtools "workspace" repository. Once you have the Workspace repository populated, you can set up some run descriptors to spin up an OSGi framework and run your appplication straight from workspace. Your bundles will be updated in the framework on Save action on and editor, which is allows for really smooth work flow.
>>
>> Please note that you should be using m2e provided classpath container for compile-time dependencies in Eclipse. This ensures that the project will build the same way both in Eclipse and outside it (on CI server etc). The runtime classpath is managed by Bndtools, and is composed of bundles from OBR repositories. Maven repositories can be exposed as OBR repositories in several ways, Nexus OSS + OBR plugin being probably the most flexible, but there are simpler zero-investment solutions - repository.xml can be generated with OSGi Bindex tool, or maven-bundle-plugin.
>>
>> regards,
>> Rafał
>>
>>
>>> BTW: which version of bndtools are you using? Version 1.0.0?
>>>
>>>> mine :) I can share some experiences/tips if anyone is interested.
>>> I want to know very much! Thanks!
>>>
>>> -Best Regrads
>>> -Tang
>>
>>



Re: [DISCUSS] Moving the build to BndTools

Posted by Marcel Offermans <ma...@luminis.nl>.
We are aware of how to currently build the project with Maven (using m2e and related tools). The point is that this way of developing and building the project is a lot slower. For example, if I now want to change a single Java file in one project, I then need to manually rebuild that project, then rebuild the assembly, and if I had for example the ACE server running, I need to either update that bundle myself, or even worse, restart the whole application. All of these steps can no doubt be automated if you spend enough effort with Maven, but this stuff works out of the box with BndTools, which is why I proposed the whole move.

So we do not intend to keep all the pom files that Maven requires but instead just create a few bnd files with the bundle definitions and let BndTools do the rest.

Greetings, Marcel


On Jun 28, 2012, at 12:36 PM, Rafał Krzewski wrote:

> On 06/28/2012 11:45 AM, Tang Yong wrote:
>> Hello Rafal,
>> 
>> >  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.
>> 
>> Real Case is that:
>> 
>> how to import the maven-built large project into bndtools including mave n repo's setting.
>> 
> First off, I assume that the project is OSGi application built using maven-bundle-plugin.
> You should use fairly new Eclipse - 3.8 or 4.2, m2e 1.1, maven-bundle-plugin 2.3.6+ and current Tycho m2e connector. The last is quite counter-intuitive, but it is in fact necessary.
> With this set of tools, you should be able to import the project into eclipse workspace using "Import existing Maven projects into Workspace" and it should build cleanly. If the build is using non-standard plugins you might run into m2e connector problems. There are different solutions, depending on what plugins are in use. I can offer some assistance here, too.
> 
> Once you have the all the dependencies resolved, and all the sources building, you can introduce Bndtools into the mix. You should create bnd.bnd files in each module an move the configuration of BND from maven-bundle-plugin section to that file, and add Bndtools project nature to your project. After this is done, the modules will appear in Bndtools "workspace" repository. Once you have the Workspace repository populated, you can set up some run descriptors to spin up an OSGi framework and run your appplication straight from workspace. Your bundles will be updated in the framework on Save action on and editor, which is allows for really smooth work flow.
> 
> Please note that you should be using m2e provided classpath container for compile-time dependencies in Eclipse. This ensures that the project will build the same way both in Eclipse and outside it (on CI server etc). The runtime classpath is managed by Bndtools, and is composed of bundles from OBR repositories. Maven repositories can be exposed as OBR repositories in several ways, Nexus OSS + OBR plugin being probably the most flexible, but there are simpler zero-investment solutions - repository.xml can be generated with OSGi Bindex tool, or maven-bundle-plugin.
> 
> regards,
> Rafał
> 
> 
>> BTW: which version of bndtools are you using? Version 1.0.0?
>> 
>> > mine :) I can share some experiences/tips if anyone is interested.
>> I want to know very much! Thanks!
>> 
>> -Best Regrads
>> -Tang
> 
> 
> 


Re: [DISCUSS] Moving the build to BndTools

Posted by Rafał Krzewski <ra...@caltha.pl>.
On 06/28/2012 11:45 AM, Tang Yong wrote:
> Hello Rafal,
>
> >  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.
>
> Real Case is that:
>
> how to import the maven-built large project into bndtools including 
> mave n repo's setting.
>
First off, I assume that the project is OSGi application built using 
maven-bundle-plugin.
You should use fairly new Eclipse - 3.8 or 4.2, m2e 1.1, 
maven-bundle-plugin 2.3.6+ and current Tycho m2e connector. The last is 
quite counter-intuitive, but it is in fact necessary.
With this set of tools, you should be able to import the project into 
eclipse workspace using "Import existing Maven projects into Workspace" 
and it should build cleanly. If the build is using non-standard plugins 
you might run into m2e connector problems. There are different 
solutions, depending on what plugins are in use. I can offer some 
assistance here, too.

Once you have the all the dependencies resolved, and all the sources 
building, you can introduce Bndtools into the mix. You should create 
bnd.bnd files in each module an move the configuration of BND from 
maven-bundle-plugin section to that file, and add Bndtools project 
nature to your project. After this is done, the modules will appear in 
Bndtools "workspace" repository. Once you have the Workspace repository 
populated, you can set up some run descriptors to spin up an OSGi 
framework and run your appplication straight from workspace. Your 
bundles will be updated in the framework on Save action on and editor, 
which is allows for really smooth work flow.

Please note that you should be using m2e provided classpath container 
for compile-time dependencies in Eclipse. This ensures that the project 
will build the same way both in Eclipse and outside it (on CI server 
etc). The runtime classpath is managed by Bndtools, and is composed of 
bundles from OBR repositories. Maven repositories can be exposed as OBR 
repositories in several ways, Nexus OSS + OBR plugin being probably the 
most flexible, but there are simpler zero-investment solutions - 
repository.xml can be generated with OSGi Bindex tool, or 
maven-bundle-plugin.

regards,
Rafał


> BTW: which version of bndtools are you using? Version 1.0.0?
>
> > mine :) I can share some experiences/tips if anyone is interested.
> I want to know very much! Thanks!
>
> -Best Regrads
> -Tang


Re: [DISCUSS] Moving the build to BndTools

Posted by Jan Willem Janssen <ja...@luminis.eu>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

Having some real life experience with BndTools (done several projects
with it), I'll also post my ramblings on this proposal.

I favor migrating away from Maven to BndTools. I do not think it is
practical to support both build-tools. One of the reasons being that
BndTools allows you to have multiple bundles in a single Eclipse
project. It would mean that we can have less projects, making the
project certainly more tangible and comprehensible from a source
perspective.

BndTools also makes OSGi bundles a 1st class citizen in Eclipse,
allowing you to run them directly from Eclipse as you would do with
non-OSGi projects. This _certainly_ will increase development speed, IMO.

Regards,

  Jan Willem

On 6/28/12 11:45 AM, Tang Yong wrote:
> Hello Rafal,
> 
>> 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.
> 
> Real Case is that:
> 
> how to import the maven-built large project into bndtools including
> mave n repo's setting.
> 
> BTW: which version of bndtools are you using? Version 1.0.0?
> 
>> mine :) I can share some experiences/tips if anyone is
>> interested.
> I want to know very much! Thanks!
> 
> -Best Regrads -Tang
> 
> Rafał Krzewski wrote:
>> 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
>>>> 



- -- 
Met vriendelijke groeten | Kind regards

Jan Willem Janssen | Software Architect
+31 631 765 814

/My world is:/

Luminis Technologies B.V.
IJsselburcht 3
6825 BS  Arnhem
+31 88 586 46 30

http://www.luminis-technologies.com
http://www.luminis.eu

KvK (CoC) 09 16 28 93
BTW (VAT) NL8169.78.566.B.01


-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJP7DB1AAoJEKF/mP2eHDc4SxkP/0ev2vnQfWGrfRi5R717YUGb
eej0HU4vViETYPwRpfRe4HkH7x0o5WZI5UxtZuQqlW3s+LRa7QRyUyoeh0gUpiOB
n8CfIEjlxfL4n5kOdKoo9hpcvWx0s65ZfjXKQQ7hRPf+1UqTMXgcw0YfDsUoa9RO
Z3CKR4OhtHvHRklwLBgZIkxbrRBxULhGuDXPpC35IMvYbq2ptlme1O9Fo9VeosDX
yFWuak38+BF2I5xg+lDJIgX+05ijtYd8IC2nTguAFzDuxElaZlOr9R13C1colesk
LIWd5yxbeDgS05Y6DnCdE012HBPtdKbEdkiTs5d5tjC7Ms0rU8y5lvUEzOAJCLnR
hnp3LiDlVFhxzBRs4ldKChv9YCcUhRhCbyDMH4SMxyGzpuZywErZ2fMklqZk7XS8
KqkKX8teglNMQz1EAbUlI8i9ju8IPnUSkx04Pdxvw8ZZi9ogAcdNBMf79w4PnHS/
oOFkXzlvvv8abkAtv9p/ecoKy+7KJKpBEZfEISug3D7j5YNoM8ZnVB+R9m1oMXvo
Zh/9FgDG4xkcrETq/JELWWS81XNaapD6o4ypYKV6HLzCEuJzsiqWFHtmNnJHa5jE
ttO9ELu5ncXFDaBHzgwgrPwe/USa18QW+9Lp/xqtUPK0DRV8OLdNFqmQ70jfV7Bk
/fxYmGDuZCSkE1H9lXyl
=OEYH
-----END PGP SIGNATURE-----


Re: [DISCUSS] Moving the build to BndTools

Posted by Tang Yong <ta...@cn.fujitsu.com>.
Hello Rafal,

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

Real Case is that:

how to import the maven-built large project into bndtools including mave 
n repo's setting.

BTW: which version of bndtools are you using? Version 1.0.0?

 > mine :) I can share some experiences/tips if anyone is interested.
I want to know very much! Thanks!

-Best Regrads
-Tang

Rafał Krzewski wrote:
>  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/
>>>>
>>>
>>
> 
> 
> 
> 



Re: [DISCUSS] Moving the build to BndTools

Posted by Rafał Krzewski <ra...@caltha.pl>.
 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/
>>>
>>
>



Re: [DISCUSS] Moving the build to BndTools

Posted by Tang Yong <ta...@cn.fujitsu.com>.
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/
>>
> 

-- 


Re: [DISCUSS] Moving the build to BndTools

Posted by Rafał Krzewski <ra...@caltha.pl>.
I'd strongly advise against it. Having single project - single binary 
relationship makes a project easier to comprehend and manage.
Also, having small, focused and cohesive modules is IMO the whole point 
of modularity. By extension, a complex application will have many of them.
There are ways to cope with that in Eclipse - Working Sets (which may be 
used as top level entries in project explorer) for starters, and also 
Mylyn Task focued UI.
In order to overcome complexity you need to embrace it. Attempts to hide 
it will backfire one way or the other.

regards,
Rafał


On 06/28/2012 11:09 AM, Angelo van der Sijpt wrote:
> Hi list,
>
> Sounds like a good idea to me. I would definitely like to reduce the number of projects: we have a number of api-only projects, with Maven's one-artifact-per-project setup, it would be nice to categorize projects by what they do, and 'carve up' the class space in that project in any way we see fit.
>
> Also, I have been using BndTools for quite a while now, and really like the developer experience.
>
> That's a +1 from me!
>
> Angelo
>
>
>
> On Jun 28, 2012, at 10:39 AM, 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/
>>>
>> -- 
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>>
>>
>




Re: [DISCUSS] Moving the build to BndTools

Posted by Angelo van der Sijpt <an...@luminis.eu>.
Hi list,

Sounds like a good idea to me. I would definitely like to reduce the number of projects: we have a number of api-only projects, with Maven's one-artifact-per-project setup, it would be nice to categorize projects by what they do, and 'carve up' the class space in that project in any way we see fit.

Also, I have been using BndTools for quite a while now, and really like the developer experience.

That's a +1 from me!

Angelo



On Jun 28, 2012, at 10:39 AM, 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/
>> 
> 
> -- 
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
> 
> 
> 



Re: [DISCUSS] Moving the build to BndTools

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
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/
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com