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.

Greetings, 
Bernd   

-----Ursprüngliche Nachricht-----
Von: Benoit Tellier [mailto:btell...@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
produced
 - 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
stuff.

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.

Benoit

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-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org


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

Reply via email to