[Geoserver-devel] Java 8 is out! Hem... shall we start using java 7? ; -)

Hi,
given that java 6 has been out of support for a while now, and java 8 is out,
how do people feel about upping our minimal java requirement to java 7
on the master branches of GeoTools and GeoServer?

Pro/cons, issues you see?

Cheers
Andrea

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


+1.

I also recommend OpenJDK 7 over Oracle when on Linux. Please find below the arguments I used in January on an internal email:

******

I also propose that we switch to OpenJDK 7 (amd64/x86_64) for all Debian and CentOS deployments.

(1) From Java 7, OpenJDK is the Reference Implementation.
http://en.wikipedia.org/wiki/OpenJDK

(2) Using OpenJDK 7 gives us a full open-source stack.

(3) OpenJDK 7 is shipped with Debian and CentOS and is taking over the world, particularly as Oracle JDK >=6u29 including 7 lacks the redistribution licence of Oracle JDK <6u29 and so was kicked from Debian:
http://mrpogson.com/2011/12/14/sun-java-no-longer-welcome-in-debian-gnulinux/

Oracle JDK includes some additional closed-source components that are licensed from third-parties, including audio codecs and fonts. The absence of these components is unlikely to be important for server deployments. OpenJDK also lacks the web browser plugin and webstart; I see this as a feature! The former was notorious for security problems and the latter is awful spaghetti code (a former coworker signed the NDA, ha ha!). Neither are relevant for server deployments (except JNLP Jenkins slaves?).

https://blogs.oracle.com/henrik/entry/java_7_questions_answers
"Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?
A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases."

Does anyone have blockers moving to OpenJDK 7? Sure I saw lots of problems with OpenJDK 6, but OpenJDK 7 is a very different beast and much, much closer to Oracle, without any of the encumberances.

******

On 26/03/14 17:21, Andrea Aime wrote:

Hi,
given that java 6 has been out of support for a while now, and java 8 is
out,
how do people feel about upping our minimal java requirement to java 7
on the master branches of GeoTools and GeoServer?

Pro/cons, issues you see?

Cheers
Andrea

--

Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech

_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

--
Ben Caradoc-Davies <Ben.Caradoc-Davies@anonymised.com>
Software Engineer
CSIRO Earth Science and Resource Engineering
Australian Resources Research Centre

I guess my feedback remains the same as it always has been: until there are compelling language reasons to break backwards compatibility I think the cons outweigh the pros. While I would certainly recommend new installations use a 1.7 runtime the version itself doesn’t bring that many new language features that i am aware of. So being able to remain 1.6 compatible while still able to utilize the newer runtime feels like having our cake and eating it too.

Java 8 on the other hand is an entirely different animal. Some very interesting new features there indeed like lambdas, interface defaults, and optionals. I imagine fans of the guava library will want to upgrade sooner rather than later. Me being one of them :slight_smile:

All that said I certainly understand that Java 6 is bordering on ancient these days and it makes it increasingly hard to setup a development environment. So while I wouldn’t urge for upping the minimum requirement I wouldn’t resist either. I will throw in a neutral vote on this one.

$0.02

···

On Wed, Mar 26, 2014 at 3:21 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

Hi,
given that java 6 has been out of support for a while now, and java 8 is out,
how do people feel about upping our minimal java requirement to java 7
on the master branches of GeoTools and GeoServer?

Pro/cons, issues you see?

Cheers
Andrea

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it



Learn Graph Databases - Download FREE O’Reilly Book
“Graph Databases” is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech


GeoTools-Devel mailing list
GeoTools-Devel@anonymised.coms.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Justin Deoliveira
Vice President, Engineering | Boundless
jdeolive@anonymised.com
@j_deolive

Well one benefit would be a new version of Jetty. I like the try-with-resource syntax as well.

···

Jody Garnett

On Wed, Mar 26, 2014 at 8:21 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

Hi,
given that java 6 has been out of support for a while now, and java 8 is out,
how do people feel about upping our minimal java requirement to java 7
on the master branches of GeoTools and GeoServer?

Pro/cons, issues you see?

Cheers
Andrea

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it



Learn Graph Databases - Download FREE O’Reilly Book
“Graph Databases” is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech


GeoTools-Devel mailing list
GeoTools-Devel@anonymised.coms.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

On Wed, Mar 26, 2014 at 12:03 PM, Justin Deoliveira <
jdeolive@anonymised.com> wrote:

I guess my feedback remains the same as it always has been: until there
are compelling language reasons to break backwards compatibility I think
the cons outweigh the pros. While I would certainly recommend new
installations use a 1.7 runtime the version itself doesn't bring that many
new language features that i am aware of. So being able to remain 1.6
compatible while still able to utilize the newer runtime feels like having
our cake and eating it too.

Like Jody I also like try with resources, and to a lesser extend, diamond
operator.

I don't mind staying with java 6 and supporting java 7 officially too, but
we'd need to double the build servers and make the java 7 ones official
(and
we cannot really rely on Travis, our builds are too big for it) meaning
each commit would have to be validated twice and
developers would have to pay extra attention (and I guess, either build
twice before committing, or build once in java 6 and hope the change
does not break java 7 builds)

Java 8 on the other hand is an entirely different animal. Some very
interesting new features there indeed like lambdas, interface defaults, and
optionals. I imagine fans of the guava library will want to upgrade sooner
rather than later. Me being one of them :slight_smile:

Indeed it's nice... but I guess we won't be able to adopt it until java 9
is out, which means at least two years.
That is, unless something unprecedented happens and the user base just
installs in mass java 8 on the
servers within the next year.
Looking around, what I see is people still working on java 7 upgrades, and
only because they are basically forced by security
considerations, with java 6 not receiving security patches anymore.

Cheers
Andrea

--

Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

I’m another admirer of try-with-resources and AutoCloseable and I’d be happy to see GWC upped to Java 7 minimum as well.

···

On 26 March 2014 04:58, Andrea Aime <andrea.aime@anonymised.com> wrote:


Learn Graph Databases - Download FREE O’Reilly Book
“Graph Databases” is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech


GeoTools-Devel mailing list
GeoTools-Devel@anonymised.coms.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Kevin Smith

Junior Software Engineer | Boundless

ksmith@anonymised.com

+1-778-785-7459

@boundlessgeo

On Wed, Mar 26, 2014 at 12:03 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

I guess my feedback remains the same as it always has been: until there are compelling language reasons to break backwards compatibility I think the cons outweigh the pros. While I would certainly recommend new installations use a 1.7 runtime the version itself doesn’t bring that many new language features that i am aware of. So being able to remain 1.6 compatible while still able to utilize the newer runtime feels like having our cake and eating it too.

Like Jody I also like try with resources, and to a lesser extend, diamond operator.

I don’t mind staying with java 6 and supporting java 7 officially too, but we’d need to double the build servers and make the java 7 ones official (and
we cannot really rely on Travis, our builds are too big for it) meaning each commit would have to be validated twice and
developers would have to pay extra attention (and I guess, either build twice before committing, or build once in java 6 and hope the change
does not break java 7 builds)

Java 8 on the other hand is an entirely different animal. Some very interesting new features there indeed like lambdas, interface defaults, and optionals. I imagine fans of the guava library will want to upgrade sooner rather than later. Me being one of them :slight_smile:

Indeed it’s nice… but I guess we won’t be able to adopt it until java 9 is out, which means at least two years.
That is, unless something unprecedented happens and the user base just installs in mass java 8 on the
servers within the next year.
Looking around, what I see is people still working on java 7 upgrades, and only because they are basically forced by security
considerations, with java 6 not receiving security patches anymore.

Cheers

Andrea

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


pretty much agree with all that's been said. I'm +1

On Wed, Mar 26, 2014 at 1:34 PM, Kevin Smith <ksmith@anonymised.com> wrote:

I'm another admirer of try-with-resources and AutoCloseable and I'd be happy
to see GWC upped to Java 7 minimum as well.

On 26 March 2014 04:58, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Wed, Mar 26, 2014 at 12:03 PM, Justin Deoliveira
<jdeolive@anonymised.com> wrote:

I guess my feedback remains the same as it always has been: until there
are compelling language reasons to break backwards compatibility I think the
cons outweigh the pros. While I would certainly recommend new installations
use a 1.7 runtime the version itself doesn't bring that many new language
features that i am aware of. So being able to remain 1.6 compatible while
still able to utilize the newer runtime feels like having our cake and
eating it too.

Like Jody I also like try with resources, and to a lesser extend, diamond
operator.

I don't mind staying with java 6 and supporting java 7 officially too, but
we'd need to double the build servers and make the java 7 ones official (and
we cannot really rely on Travis, our builds are too big for it) meaning
each commit would have to be validated twice and
developers would have to pay extra attention (and I guess, either build
twice before committing, or build once in java 6 and hope the change
does not break java 7 builds)

Java 8 on the other hand is an entirely different animal. Some very
interesting new features there indeed like lambdas, interface defaults, and
optionals. I imagine fans of the guava library will want to upgrade sooner
rather than later. Me being one of them :slight_smile:

Indeed it's nice... but I guess we won't be able to adopt it until java 9
is out, which means at least two years.
That is, unless something unprecedented happens and the user base just
installs in mass java 8 on the
servers within the next year.
Looking around, what I see is people still working on java 7 upgrades, and
only because they are basically forced by security
considerations, with java 6 not receiving security patches anymore.

Cheers
Andrea

--

Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

--

Kevin Smith

Junior Software Engineer | Boundless

ksmith@anonymised.com

+1-778-785-7459

@boundlessgeo

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

--
Gabriel Roldán

Software Developer | Boundless

groldan@anonymised.com

@gabrielroldan

+1 for 7 for me too. The last java server was upgraded from 6 to 7 last week. We have been using the 1.7 runtime in development for quite a long time.

Notice: This email and any attachments are confidential.
If received in error please destroy and immediately notify us.
Do not copy or disclose the contents.

There is one downside to this . for the osx users, we will be asking our developers to migrate to an Oracle JDK (as apple has not provided a Java 7).

···

Jody Garnett

On Wed, Mar 26, 2014 at 8:21 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

Hi,
given that java 6 has been out of support for a while now, and java 8 is out,
how do people feel about upping our minimal java requirement to java 7
on the master branches of GeoTools and GeoServer?

Pro/cons, issues you see?

Cheers
Andrea

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it



Learn Graph Databases - Download FREE O’Reilly Book
“Graph Databases” is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech


GeoTools-Devel mailing list
GeoTools-Devel@anonymised.coms.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

On Wed, Mar 26, 2014 at 10:08 PM, Jody Garnett <jody.garnett@anonymised.com>wrote:

There is one downside to this . for the osx users, we will be asking our
developers to migrate to an Oracle JDK (as apple has not provided a Java 7).

Interesting... is that a serious roadblock?

Reminds me of this tweet, how much truth is there into it?
https://twitter.com/shmcmahon/status/445329656602820608/photo/1

Cheers
Andrea

--

Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Not really a roadblock, it just means setting up a mac with java requires an install. They have a placeholder so if you type “java” it invites you to install. Oracle is providing Java 7 and 8 for mac, Apple if providing Java 6 (and keeps it up to date with security patches so far).

It seems there is a vast gulf between Java 6 (i.e. conservative deployment environments) and anything else. If we are going to leave Java 6 is there any reason not to skip ahead to 8?

Aside I have some recent experience trying out Oracle Java 7 recently - introduced some rendering test failures (based on reading a GeoTIFF coming back with 4 bands rather than the expected 3).

···

Jody Garnett

On Thu, Mar 27, 2014 at 7:41 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Wed, Mar 26, 2014 at 10:08 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

There is one downside to this . for the osx users, we will be asking our developers to migrate to an Oracle JDK (as apple has not provided a Java 7).

Interesting… is that a serious roadblock?

Reminds me of this tweet, how much truth is there into it?
https://twitter.com/shmcmahon/status/445329656602820608/photo/1

Cheers

Andrea

==
Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Thu, Mar 27, 2014 at 11:59 AM, Jody Garnett <jody.garnett@anonymised.com>wrote:

Not really a roadblock, it just means setting up a mac with java requires
an install <http://www.java.com/en/download/help/mac_install.xml&gt;\. They
have a placeholder so if you type "java" it invites you to install. Oracle
is providing Java 7 and 8 for mac, Apple if providing Java 6 (and keeps it
up to date with security patches so far).

It seems there is a vast gulf between Java 6 (i.e. conservative deployment
environments) and anything else. If we are going to leave Java 6 is there
any reason not to skip ahead to 8?

As the minimum version? I don't know of anyone running it in production
right now,
as I was saying before, a good amount of environments I'm in touch have
been rolling
in java 7 in the last few months due to java 6 being not supported anymore,
don't think they have any plan to switch to java 8 for the foreseeable
future.

Cheers
Andrea

--

Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

It seems there is a vast gulf between Java 6 (i.e. conservative deployment

environments) and anything else. If we are going to leave Java 6 is there
any reason not to skip ahead to 8?

As the minimum version? I don't know of anyone running it in production
right now,
as I was saying before, a good amount of environments I'm in touch have
been rolling
in java 7 in the last few months due to java 6 being not supported anymore,
don't think they have any plan to switch to java 8 for the foreseeable
future.

Good to know. +1 for Java 7

Well I would have immediate use of the
WatchService<http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html&gt;
in
GeoServer (better then polling the file system as we currently do).