On Sep 3, 2015, at 3:43 AM, Peter <j...@zeus.net.au> wrote:
+1 for putting it in the net.jini.config API namespace, the DSL lives in
net.jini.config.
Arguably, the important thing, the thing that really _should_ be in
net.jini.config, is the Configuration interface., bakes that forms part of
the API that one uses to create services. If the Configuration interface
changed, the code to start up any service would immediately break.
The ConfigurationFile implementation is in there because it’s in there.
Developers never see the ConfigurationFile class if they’re using the
Configuration interface and the ConfigurationProvider correctly.
This is a good thing, we should consider deprecating the DSL in favour
of Groovy.
Really? We should force Java developers to learn a new programming
language so they can configure their system?
I do not understand your logic in saying “we should consider deprecating
the DSL in favour of Groovy”. Nor your logic. I’m not saying the
Java-like Configuration DSL is wonderful, but surely a Groovy-based DSL vs
a Java-based DSL is purely a matter of taste.
There's no standards body for Jini standardization, we need to be able
to manage and evolve our API sensibly,
This is my point, lest you think I’m just “resisting progress”. Sensibly
is the key word. We, the Apache River project, inherited the Jini
Specification, but then we very purposefully drew a line around it, saying
“This is a point of reference for when people write services”. We adopted
the policy that changes to the specification need to be discussed and voted
on, because those changes affect users of the tool set. Changes to the
Jini API cross a line of demarcation where _we_ decided, long ago, that “we
really need to talk about it”. That’s why I’m challenging cavalier
statements like “we should consider deprecating the DSL in favour of
Groovy”.
The demarcation point of the specification should serve as a reminder that
we’re writing this thing in order to let people create service-oriented
architectures. We need to consider the users.
locking out progress would lead to paralysis and inevitable obsolesence.
The Groovy configuration is far superior to the DSL in many ways,
Please specify.
leaving it as an implementation detail, discourages usage.
Here is my real point when I suggest that GroovyConfiguration might be
best separated out into a separate project. We could structure a project,
discuss it, vote on a release and have it into Maven Central by the end of
next week. So users of River could have an easy way to use a
GroovyConfiguration pretty much RIGHT NOW (I realize they can use it now,
but it would be easier if they had a jar file with the right provider api
hooks) instead of having it when they get around to adopting River 3.0,
which will be after we get around to releasing River 3.0.
When I have, in the past, talked about “navel gazing”, this is what I
mean. Here we are, arguing over whether the existing configuration DSL
should be entirely replaced, and what the right package is, when we could
have created a separate deliverable and had it done by now, if only we were
willing to use the actual extension mechanism that’s built into the
existing product rather than talk about changing the public API!
When I argue against messing around with the JTSK, it’s because delivering
useful functionality to users in small increments will be faster than
making any changes to that behemoth. No matter how you slice it, the
larger the deliverable, the longer things take, especially if we’re doing
our due diligence correctly and considering the downstream impact. Believe
it or not, when I show a bias against touching the JTSK I am promoting a
bias towards action.
Pardon my venting. It’s because I have used Jini in real applications and
truly, truly think it’s a technology that we should be promoting, so
anything that gets in the way of ACTUALLY SHIPPING SOMETHING kind of gets
under my skin. I’ll stop now.
Cheers,
Greg Trasuk
Peter.
On 3/09/2015 5:17 AM, Dennis Reedy wrote:
On Sep 2, 2015, at 304PM, Greg Trasuk<tras...@stratuscom.com> wrote:
On Sep 2, 2015, at 2:45 PM, Dennis Reedy<dennis.re...@gmail.com>
wrote:
Hi Greg,
I am quite aware of the purpose of the net.jini namespace :) The
GroovyConfig class follows net.jini.config.ConfigurationFile packaging.
Building groovy-config.jar follows the current approach of external jars
(dependent jars) relies on the dep-libs/groovy/groovy-all2.3.8.jar. The
only time you’ll have a Groovy runtime dependency is when you add
groovy-config.jar to your classpath. Furthermore, the groovy-config.pom
declared a dependency on groovy-all so you’ll get groovy resolved
transitively when using dependency management.
OK, I’m just trying to avoid entanglements in the build. We keep
talking about wanting to modularize and simplify the build, so it seems odd
to be adding more stuff into the JTSK core rather than spinning stuff out
of it. But as I said, I don’t have a strong opinion.
I was just following the lead of net.jini.config.ConfigurationFile. If
others feel strongly about this, I’ll move it into org.apache.river.config.
If thats the case, then ConfigurationFile should move as well? Otherwise
lets keep it in net.jini.config
I do have a strong opinion about the use of dep-libs. I don’t like
it. I don’t like it at all. We need to deal with getting jar files out of
the source release. I don’t think we have any business archiving and
distributing someone else’s artifacts, even if the license does allow it.
I do know that Apache policy is that releases are source code only. I
tried to introduce Ivy a while ago and got slapped down, so I’ll let
someone else figure out how to separate the stuff out and then distribute
the deps separately.
I tend to agree with the dep-libs, but it’s what we have now. Do you
want to make this a pre-requisite to the 3.0 release? I have a small window
to help getting 3.0 in shape to be a release candidate, if we all agree to
adding Ivy (yuck, but its a step towards dependency management), I could
try and fit that in - that is as long as all the dep-libs are resolvable
from central.
Simplest case; for a source release we can exclude dep-libs. If someone
wants to build they can svn checkout a branch.
Also, took a look at your mods to deploy_river.groovy, no problem
that you needed to use gpg:sign-and-deploy-file, but curious as to why you
chose to put the command to execute in a list instead of use the string as
before?
I don’t remember, it was a while ago. I seem to recall that I had to
change it to get it to work. Probably something about escaping the
characters to keep Maven happy, but I don’t recall exactly. Feel free to
change it if it makes more sense.
No problem, it’s a utility, if that makes it work, fine with me. Was
just curious.
Thanks
Dennis