james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bernd Waibel <BWai...@intarsys.de>
Subject AW: Use of Lambdas in Cassandra with target.jdk 1.6 [unsigned]
Date Tue, 15 Mar 2016 07:46:40 GMT
Thanks Benoit,

so: is there anything speaking AGAINST switching to JDK 1.8?
Yes. The OpenJDK versions delivered with Ubuntu 14.04 (LTS) is only JDK7.
So you need to install a JDK8 "by hand" on current running linux machines. 
This may vote against JDK8.

We always are using the Oracle versions, due to other limitations in the crypto engine, but
that is "our problem", not a rule for other users. It is not an act to install.

Deciding to switch a JDK level is not done with every release.
So this switch maybe the defined JDK for the next years.

For information: The official End-of-life matrix is:
V	GA		End Notify	End Updates
6 	Dec 2006 	Feb 2011 	Feb 2013
7 	Jul 2011 	Mar 2014 	Apr 2015
8 	Mar 2014 	TBD 		Sep 2017*
See: http://www.oracle.com/technetwork/java/eol-135779.html#Java6-end-public-updates
There is no longer premium support offered by Microsoft for 1.6. So this is not used often.
There is premium support for 1.7, so this may be used by some customers.

So my vote would be: JDK 8.


-----Ursprüngliche Nachricht-----
Von: Benoit Tellier [mailto:btellier@linagora.com] 
Gesendet: Dienstag, 15. März 2016 03:12
An: server-dev@james.apache.org
Betreff: Re: Use of Lambdas in Cassandra with target.jdk 1.6 [unsigned]

Hi Bernd,

A huge +1, I would be so happy to see JDK 1.8 used everywhere in James.
It would allow us to write readable code based on streams everywhere.

For your information, some modules uses a JDK 1.8 :

 - backends/cassandra
 - mailbox/cassandra
 - mailbox/elasticsearch
 - server/data/data-cassandra
 - server/protocols/jmap*
 - mpt/impl/imap-mailbox/cassandra
 - mpt/impl/imap-mailbox/elasticsearch
 - mpt/impl/imap-mailbox/external
 - server/container/cassandra-guice
 - mpt/impl/smtp

You will find in the POM of those project :

 - a build desactivation for JDK older than 1.8. An empty jar will be
 - all the project dependencies included for JDK >= 1.8
 - disable animal sniffer for JDK >= 1.8

So lambas are never used with an other JDK than 1.8. But it means having
a JDK < 1.8 you can not run  ElasticSearch, Cassandra, JMAP, and Guice

By the way, Linagora CI triggers two builds upon our pull requests :

 - One in Java 6 + Spring
 - One in Java 8 + Guice

I would love to have some POM simplification, and build simplification here.


Le 14/03/2016 19:59, Bernd Waibel a écrit :
> Hello together,
> I am trying to compile "james-project", but I am just following Maven errors.
> At this point I did find something, I am not sure if I interpret this correctly.
> The Cassandra implementation uses Lambdas. E.g. in CassandraTableManager.
> The pom.xml of "james-project" does define a target jdk of 1.6:
>         <target.jdk>1.6</target.jdk>
> The pom.xml of backends-common and the pom.xml of backends-cassandra do not redefine
the target.jdk to another level.
> Lamdas (and the used stream objects) are new in JDK 1.8, so a JDK Target of 1.6 for Cassandra
do not seem to be meaningful.
> The Cassandra project should redefine the target.jdk to 1.8, cause it will not compile
with a lower level.
> I would suggest to change the JDK target level for the whole project to a up-to-date
JDK level.
> I personally would prefer to use JDK 1.8 for the whole james-project target.
> (This maybe should be split into 2 tickets).
> Best regards,
> Bernd Waibel

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