On Jan 26, 2007, at 12:16 PM, Richard S. Hall wrote:
Alan D. Cabrera wrote:
On Jan 26, 2007, at 5:30 AM, Richard S. Hall wrote:
This would allow people to easily achieve the same behavior as
the old plugin by simply doing:
<embed-dependency>*;scope=compile,*;scope=runtime</embed-
dependency>
Thus, this instruction would automatically embed any maven
dependencies that were of scope "compile" or "runtime" and
append them to the bundle class path.
What do you think?
I like that finer degree of control that this gives but think
that we should stick to using XML elements. I think that it's
bad form to mix-in OSGi manifest like patterns in a Maven POM,
especially when those patterns govern the behavior of a Maven
plugin.
Do you have a proposal? I think it would be quite ugly/verbose to
break such syntax out into XML elements.
I am not sure I understand why there is a constraint on the form
of XML used by a plugin. It is almost as if you are saying that
BND's syntax isn't Maven-like enough.
This is a plugin for creating OSGi bundles, so it seems to make
sense for it to be comfortable for OSGi developers. Don't you think?
It's not the end of the world if the plugin uses this syntax.
This could arguably be a bike shed issue but let me give what I
think is a relevant analogy.
Let's say that we are writing a unix command that submits jobs to
a VAX/VMS system; gee I hope people remember DEC. One could say
that we should allow the VAX/VMS command flag syntax, e.g. "/OUT"
to be used for this unix command instead of the standard "-o"
because it makes sense for it to be comfortable for VAX/VMSers.
We would allow other unix options like "-v" and "-h", etc., hence
we would be mixing the two nomenclatures.
Not very pretty, in my opinion, in spite of my prowess and love
for VAX/VMS. It also causes problems for projects that may want
to automatically generate scripts that may include this command
because not only do those projects need to know unix commands but
they must remember that there was this one project that was
nostalgic for VAX/VMS command syntax.
Part of the power of POMs is not the terseness of its expressions
but that there is a single lingua franca. XML provides easy
access for tooling.
I agree that this is a reasonable argument, but this is only
relevant if we assume that at some point in time someone else might
want to parse the BND commands, which seems like an unlikely
possibility.
I'm not so sure. Lots of interesting stuff to configure for these
bundle puppies. Tooling can definitely help. However, I also had
the argument that it's just plain bad form; granted this definitely
falls into the grey realm of bike sheds.
To me, this is akin to maven version numbers. Version numbers are
not broken out into their individual elements, instead it is just
accepted that there is internal syntax which can be parsed and
certain pieces mean certain things, like SNAPSHOT.
I think that you would be hard pressed to find many more examples
like this and I would be quick to point out that the lexicon applies
across the board for *all* maven POMs.
Regards,
Alan