james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Zhukov <zhu...@ukrpost.net>
Subject Re: [James-NG] Avalon-free James proposal and reference implementation
Date Mon, 31 Jan 2005 20:46:49 GMT
Ahmed Mohombe wrote:
> Serge Knystautas wrote:
>> Ahmed Mohombe wrote:
>>>> One of the things I like about James is it's use of
>>>> pure Java. 
>>> Me too.
>>> Please, I beg you, put no Groovy/JPython or other things like this in 
>>> it. For Got sake, let JAMES be a JAVA project.
>> Can you explain your objection, or at least clarify it since Groovy is 
>> Java.
> IMHO Groovy is not Java. Just open a Groovy file in a modern IDE (e.g. 
> IntelliJ) and tell me what support do you have for it?
>> Either we use groovy, use another container's XML construct to 
>> configure James, or invent our own XML structure.  What do you suggest?
> Isn't the Jakarta-commons Digester not good enough?
> Besides, what's so complicated to make a simple and verbose XML 
> configuration (so that everyone understands it)?
> A simple XML structure can very easily get a simple Swing or Web GUI, so 
> that everyone can edit/change the configuration without too many errors.

Ahmed! It starts to seem like a holy war :)

Let me clearify, as far as I understand your points are:

XML: knows everybody, which means it is good for config
Groovy: knows very small amount of people - bad

I would say you are right.

However you may havent appreciated the CDI approach to configuration, 
basically it is ability to independently configure components and 
provide flow (if-then-else, for, etc.) control over the configuration.

In configuration everybody is used to you control data while in CDI IoC 
approach to configuration you control _components_ which are _Java objects_.
I would say the best thing to manipulate Java objects is Java language, 

But configuration has to be available to admin. And, unlike developers, 
admins dont like to use compilers (especially javac :)) to configure 
their servers.
So the natural approach is scripted java that does not have to be 
compiled - my choice is groovy - the most java-like, standards compliant 
(they have JSR for it) language.
You are not required to use groovy to glue components - you can do it in 
Java or any other language. XML can also be used to manipulate java 
objects but it is not very much suited for it.

To summarize:
Java/Groovy: manipulates Java objects - good for CDI IoC config
XML: not very much suited to manipulate Java objects - not very 
comfortable but still you can develop and easily replace my groovy 
config with xml-based config that would manipulate Java objects and you 
are welcome to do it, but believe me if you look into groovy and how it 
fits into the big picture of CDI IoC and jamesng reference 
implementation you'll appreciate it.

PS. no i dont have any income on saling groovy :)

> Just my 2 cents,
> Ahmed.
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org

To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org

View raw message