karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré ...@nanthrax.net>
Subject Re: bnd files in Decanter Project
Date Thu, 11 Feb 2016 14:12:38 GMT
I see valid arguments here, and I keep my +1.

Regards
JB

On 02/11/2016 02:40 PM, Christian Schneider wrote:
> I also did a jira issue that explains the change.
> https://issues.apache.org/jira/browse/KARAF-4300
>
> To show the advantage let me compare one of the old configs to the new one:
> http://apaste.info/gC5
>
> This shows that 18 lines of xml are replaced by 2 lines in the bnd file.
> The syntax is basically the same
> as in xml just without the brackets. The big advantage is that we can
> leave out the boilerplate xml that maven
> needs to redefine a plugin.
>
> So I think the change to bnd files makes a lot of sense. I also did this
> change in Aries a long time ago.
> Btw. I also added API baselining in this change which helps us when do
> changes on the API.
>
> Christian
>
>
> On 11.02.2016 14:21, Christian Schneider wrote:
>> As further reference. This is the commit where I did the change:
>> https://github.com/apache/karaf-decanter/commit/dabeeecd41f46a0c5344580f65c2ea6877fd6d35
>>
>>
>> As you can see I added 108 lines and removed 753.
>>
>> That means the usage of bnd files saves us about 640 lines of xml. I
>> think this is a strong indicator that it is a good idea to do so. Of
>> course it might cause problems that I overlooked.
>>
>> Christian
>>
>> On 11.02.2016 13:57, Christian Schneider wrote:
>>> Hi Achim,
>>>
>>> it is difficult to predict what changes warrant a discussion. I agree
>>> with you that I should have discussed this on the list. I talked to
>>> JB and he was positive so I did not expect any problems. Apparently I
>>> was wrong :-(
>>>
>>> The usage of bnd files for configuration of the imports and exports
>>> is a very concise replacement for the same configs in xml.
>>>
>>> The big advantage is that you can omit the maven-bundle-plugin in the
>>> pom of each module. So basically you replace about 10-15 lines of xml
>>> with 0-5 lines in the bnd file.
>>>
>>> This does not break any functionality for users. For developers it
>>> just requires to put an empty bnd.bnd file into each module if it
>>> does not need special configs. Unfortunately it is not possible to
>>> define that it uses a bnd file if it is there  and is also happy if
>>> no such file is there. I plan to suggest this to the felix project as
>>> it would make this even easier to use.
>>>
>>> In what way do you see this as a breaking change? I made sure that
>>> all code still works and that all tests still pass. I also did manual
>>> tests of all the modules.
>>>
>>> So the only thing you need to do for a new module is to add this
>>> empty bnd.bnd file and you are fine. If you do not want to use the
>>> bnd file to configure your OSGi configs you can use the xml like before.
>>>
>>> So apart from my bad communication where I fully agree with you.. do
>>> you really  think this warrants a -1?
>>> Do you have any technical concerns?
>>>
>>> Christian
>>>
>>>
>>> 2016-02-11 9:55 GMT+01:00 Achim Nierbeck <bcanhome@googlemail.com
>>> <mailto:bcanhome@googlemail.com>>:
>>>
>>>     Hi,
>>>
>>>     the other day I added another module to the decanter project
>>>     (cassandra
>>>     appender).
>>>     And I've got to say I was quite astonished to see all those bnd
>>>     files in
>>>     there, but what
>>>     really got me stirred. It is mandatory to have those now.
>>>
>>>     I can't remember seeing a vote for such a change in development!
>>>
>>>     So here is my
>>>
>>>     -1
>>>
>>>     on this not communicated and breaking functionality change that
>>>     sneaked in
>>>     there.
>>>
>>>     So whoever changed that needs to revoke this, NOW.
>>>     It hasn't been discussed up-front and actually I just can't stand
>>>     such
>>>     sneaky moves.
>>>
>>>     regards, Achim
>>>
>>>     --
>>>
>>>     Apache Member
>>>     Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>     OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>     Committer &
>>>     Project Lead
>>>     blog <http://notizblog.nierbeck.de/>
>>>     Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>
>>>     Software Architect / Project Manager / Scrum Master
>>>
>>>
>>>
>>>
>>> --
>>> --
>>> Christian Schneider
>>> http://www.liquid-reality.de
>>> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de>
>>>
>>>
>>> Open Source Architect
>>> http://www.talend.com
>>> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>
>>>
>>
>>
>> --
>> Christian Schneider
>> http://www.liquid-reality.de
>>
>> Open Source Architect
>> http://www.talend.com
>
>

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

Mime
View raw message