Joerg Heinicke skrev:
On 10.08.2006 11:41, Daniel Fagerstrom wrote:
As Java 5 was released almost 2 years ago, I propose making it the
minimum requirement for trunk and all artifacts released from there.
-0, because this means eliminating cocoon 2.2 on "older" application
servers eg weblogic 8.1.
IIUC weblogic 8.1 uses servlet 2.3 so I guess you need to veto the
use of servlet 2.4 to make this a valid point.
Don't know about Weblogic (it was not my argument),
Joerg, vetoing a proposal is a serious issue as your single vote blocks
everyone else vote. That means that all argument for the veto must be
scrutinized so that we as a community can find a consensus based on facts.
And as your veto is based on among other things servlet container
compatibility we need to know if there are containers that we find it
important to support for 2.2 that doesn't work with Java 5.
but servlet spec does not matter that deeply IMO. I voted +1 on
servlet 2.4 mostly because of the request listeners. As long as the
2.4 features are kept out of core (which of them can surface
coincidentally?) we still can claim 2.3 compatibility and provide 2.4
features like request listeners as optional features. The same way
Spring is handling the request/session scoped beans by providing a
listener [1] (see Javadoc) and a filter [2].
The servlet API has always been a central part of Cocoon and with 2.2 it
becomes even more important as it is used instead of the Processor
interface. To follow what you say above means in practice that core
parts of Cocoon must not use 2.4 and that 2.4 can only be used in
optional blocks that no important functionality should depend on. The
vote about Servlet 2.4 was about using Servlet 2.4 in trunk. If you want
to achieve what you describe above you must veto that proposal and make
an alternative proposal.
If there are other use cases that require Java 1.4 you should
seriously consider if Simones proposal of using the Retroweaver would
be enough.
This works only as long as you don't use extensions made to the JDK
classes. Different JDK versions are not just about language features
but also about APIs. So this is no replacement IMO.
OK. So that bring us back to the key question: what specific problem
would we get by using Java 5?
Frankly, I don't see the point in upgrading unless there's a killer
feature in 1.5 that
1) we are likely to use and implement in the near future (2006) and,
2) will improve cocoon by a significant margin.
We never require something like that when we update the version on
libraries we depend on. For libraries we depend on the latest stable
version as long as it doesn't create any problems, we never require
that anybody is going to use the latest features.
Don't understand that point.
Our policy is to always use the latest stable version of all libraries
that we depend on. There are many good reasons for that: we get
presumably less buggy and better versions of the libraries, our adaption
becomes to newer versions becomes gradual instead of abrupt as we update
often and we help both the communities we depend on and ourselves by
testing early.
So our policy for updating libraries is far for what you require for
updating JDK. Also, not updating JDK will give us increasing problems in
using the latest stable version of used libraries as they are starting
to require Java 5.
For the "killer features", lots of people have said that they are
interested in using various features in Java 5, do you find your lack of
interest in these features a strong enough reason to prevent others from
using them?
I second this, but vote even -1. I wonder why a framework should set
such high requirements. Have a look on spring. They have a Java 1.3
as minimum requirement and only need Java 5 for special features.
IMO we should do it in a similar manner and not set the general
requirement to Java 5.
Cocoon is both a framework and a set of applications. Compared to
Spring, Cocoon is less framework oriented.
Understand what you want to claim, but can't follow. Why do you think so?
The core offering from the Spring framework is the bean factory, which
is a low level framework that is used in numerous other projects many of
which are used by still other projects in turn. Cocoon is a much higher
level framework, and is with a few exceptions used directly to build
applications with. This means that it is enough to ask our users what
they think, while Spring need to understand their users users. And
because of that need to be more conservative.
So, Cocoon and Spring are quite different kind of beasts, so we need to
understand why they support Java 1.3 to know if their reasons are
relevant for us.
If you want to follow the Spring policy I think you should formulate
an alternative proposal which describes when it is OK to use Java 5
and when it is not.
Isn't this quite easy? Always provide a Java 1.4 alternative and make
Java 5 features optional. See declarative transaction demarcation in
Spring. It's completely possible without Java 5. But you can use
annotations for it as well. And even those can be used with Java 1.4
and commons attributes IIRC.
Always providing a 1.4 alternative means a lot of extra, and fairly
boring, work. I think we better focus on one version.
I simply still can't see how Java 5 will help us significantly.
And if you keep your veto you will prevent all the rest of us who
believe that it would help us to explore if it will help us as well.
Look, there might be excellent reasons for not upgrading and if there
are it is better that we find them. And I agree with Jorg that if many
people who otherwise would use 2.2 don't because of Java 5, that would
be a good reason for waiting with upgrading to Java 5. But this far no
one have said that they would have any problems with it, neither at
cocoon-dev or cocoon-user.
/Daniel