Return-Path: X-Original-To: apmail-ace-dev-archive@www.apache.org Delivered-To: apmail-ace-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 799F6C4FE for ; Mon, 2 Jul 2012 06:55:32 +0000 (UTC) Received: (qmail 81509 invoked by uid 500); 2 Jul 2012 06:55:32 -0000 Delivered-To: apmail-ace-dev-archive@ace.apache.org Received: (qmail 81189 invoked by uid 500); 2 Jul 2012 06:55:21 -0000 Mailing-List: contact dev-help@ace.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ace.apache.org Delivered-To: mailing list dev@ace.apache.org Received: (qmail 81148 invoked by uid 99); 2 Jul 2012 06:55:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Jul 2012 06:55:20 +0000 X-ASF-Spam-Status: No, hits=3.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_SOFTFAIL X-Spam-Check-By: apache.org Received-SPF: softfail (nike.apache.org: transitioning domain of marcel.offermans@luminis.nl does not designate 194.109.24.28 as permitted sender) Received: from [194.109.24.28] (HELO smtp-vbr8.xs4all.nl) (194.109.24.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Jul 2012 06:55:10 +0000 Received: from marcels-macbook-pro.fritz.box (planetmarrs.xs4all.nl [82.95.193.148]) (authenticated bits=0) by smtp-vbr8.xs4all.nl (8.13.8/8.13.8) with ESMTP id q626snlQ079082 for ; Mon, 2 Jul 2012 08:54:49 +0200 (CEST) (envelope-from marcel.offermans@luminis.nl) From: Marcel Offermans Mime-Version: 1.0 (Apple Message framework v1278) Content-Type: multipart/alternative; boundary="Apple-Mail=_971DDB72-C5DA-47D2-9408-196F893E8C24" Subject: Re: [DISCUSS] Moving the build to BndTools Date: Mon, 2 Jul 2012 08:54:51 +0200 In-Reply-To: To: References: <4762BFB5-3FB9-4961-BD21-8D521D581070@luminis.nl> <4FEC1853.1070908@nanthrax.net> <4FEC1B51.9090105@cn.fujitsu.com> <4FEC27B1.1010503@caltha.pl> <4FEC279D.1020000@cn.fujitsu.com> <4FEC33AE.6050500@caltha.pl> <27EFA2A5-A342-4904-872C-4979D1B5BFCB@luminis.nl> <4FEC44AB.9040801@caltha.pl> Message-Id: X-Mailer: Apple Mail (2.1278) X-Virus-Scanned: by XS4ALL Virus Scanner --Apple-Mail=_971DDB72-C5DA-47D2-9408-196F893E8C24 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 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. >=20 > 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. >=20 > 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. >=20 > Paul >=20 >=20 > On Jun 28, 2012, at 7:48 , Rafa=C5=82 Krzewski wrote: >=20 >> 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 :) >>=20 >> regards, >> Rafa=C5=82 >>=20 >> 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. >>>=20 >>> 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. >>>=20 >>> Greetings, Marcel >>>=20 >>>=20 >>> On Jun 28, 2012, at 12:36 PM, Rafa=C5=82 Krzewski wrote: >>>=20 >>>> On 06/28/2012 11:45 AM, Tang Yong wrote: >>>>> Hello Rafal, >>>>>=20 >>>>>> =46rom 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: >>>>>=20 >>>>> how to import the maven-built large project into bndtools = including mave n repo's setting. >>>>>=20 >>>> 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. >>>>=20 >>>> 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. >>>>=20 >>>> 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. >>>>=20 >>>> regards, >>>> Rafa=C5=82 >>>>=20 >>>>=20 >>>>> BTW: which version of bndtools are you using? Version 1.0.0? >>>>>=20 >>>>>> mine :) I can share some experiences/tips if anyone is = interested. >>>>> I want to know very much! Thanks! >>>>>=20 >>>>> -Best Regrads >>>>> -Tang >>>>=20 >>>>=20 >>=20 >>=20 >>=20 >=20 --Apple-Mail=_971DDB72-C5DA-47D2-9408-196F893E8C24--