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

Reply via email to