[Engine-devel] java 1.6 compatibility no more?

Laszlo Hornyak lhornyak at redhat.com
Thu Jul 19 12:04:17 UTC 2012


Hi,

At the moment if you update the <source> and <target> settings of the compiler plugin to 1.7 in the root pom, the project will build fine, but some of the junit tests will fail. (some strange problem with bytecode manipulation see here http://code.google.com/p/powermock/issues/detail?id=355)
Moving only the <source> does not work, moving only the <target> leaves the junit tests failing.

So as you see I have rejected my own patch :-) http://gerrit.ovirt.org/6447/

Laszlo

----- Original Message -----
> From: "Juan Hernandez" <jhernand at redhat.com>
> To: "Vojtech Szocs" <vszocs at redhat.com>
> Cc: engine-devel at ovirt.org
> Sent: Thursday, July 19, 2012 1:41:26 PM
> Subject: Re: [Engine-devel] java 1.6 compatibility no more?
> 
> On 07/19/2012 01:39 PM, Yair Zaslavsky wrote:
> > On 07/19/2012 02:31 PM, Vojtech Szocs wrote:
> >>> Don't we need that (the source part) to avoid Java 7 syntax in
> >>> GWT code?
> >>
> >> That's a very good point.
> >>
> >> In general, GWT compiler supports Java 5 syntax (note that there
> >> are no language changes between Java 5 and 6). For this reason,
> >> our frontend code should be compliant with Java 5. If someone
> >> uses new Java 7 language features in frontend code, GWT compiler
> >> will throw an error and the build will fail.
> >>
> >> So the 'Java 5 only' limitation applies to frontend code and any
> >> other code (e.g. shared modules) that is directly referenced by
> >> frontend code. This shouldn't affect the backend, however.
> >>
> >> We could do something like this:
> >>
> >> - let oVirt root POM declare source and target compliance to Java
> >> 7
> >> - let frontend modules POM (frontend/webadmin/modules/pom.xml)
> >> declare source compliance to Java 5 (or 6)
> >>
> >> (note that target compliance can be left to Java 7 since frontend
> >> compilation results in JavaScript code)
> >>
> >> What do you think?
> >>
> >> Vojtech
> > 
> > +1 - I really like this idea!
> 
> +1 from me as well.
> 
> >> ----- Original Message -----
> >> From: "Juan Hernandez" <jhernand at redhat.com>
> >> To: "Vojtech Szocs" <vszocs at redhat.com>
> >> Cc: "Yair Zaslavsky" <yzaslavs at redhat.com>, engine-devel at ovirt.org
> >> Sent: Thursday, July 19, 2012 11:01:00 AM
> >> Subject: Re: [Engine-devel] java 1.6 compatibility no more?
> >>
> >> On 07/19/2012 10:09 AM, Vojtech Szocs wrote:
> >>>> As I previously emailed - JDK7 already fixed a known issue with
> >>>> ldap and
> >>>> DNS ,and made one of my patches at gerrit redundant.
> >>>> Why not enjoy the bug fixes?
> >>>
> >>> I agree, but in that case, why not switch to '1.7' Java
> >>> source/target compliance for oVirt Maven build as well?
> >>>
> >>> If JDK6 cannot be used for building oVirt (because of missing
> >>> Java 7 APIs, because of LDAP/DNS issues in JDK6, etc.), we
> >>> should also update our Maven POM files. Currently, when I import
> >>> oVirt projects into Eclipse (using Eclipse Maven plugin), I'm
> >>> getting compile errors on 'bll' project. This is because our
> >>> Maven POM files declare '1.6' Java source/target compliance.
> >>>
> >>> Juan - you are right, but for me, it sounds quite strange to have
> >>> '1.6' Java source/target compliance for Maven build, and use
> >>> JDK7 to do the build.
> >>
> >> Don't we need that (the source part) to avoid Java 7 syntax in GWT
> >> code?
> >>
> >>> ----- Original Message -----
> >>> From: "Yair Zaslavsky" <yzaslavs at redhat.com>
> >>> To: engine-devel at ovirt.org
> >>> Sent: Thursday, July 19, 2012 7:59:45 AM
> >>> Subject: Re: [Engine-devel] java 1.6 compatibility no more?
> >>>
> >>> On 07/18/2012 08:21 PM, Juan Hernandez wrote:
> >>>> On 07/18/2012 06:33 PM, Vojtech Szocs wrote:
> >>>>> In fact, for both backend and frontend, Maven effective POM
> >>>>> contains:
> >>>>>
> >>>>> <artifactId>maven-compiler-plugin</artifactId>
> >>>>> <configuration>
> >>>>>   <source>1.6</source>
> >>>>>   <target>1.6</target>
> >>>>> </configuration>
> >>>>>
> >>>>> Therefore, according to Maven POM files, oVirt should be
> >>>>> build-able using Java 6, but it's not. (?)
> >>>>
> >>>> These maven settings just tell the java compiler to accept Java
> >>>> 6 syntax
> >>>> only and to generate a Java 6 compatible .class file format, but
> >>>> they
> >>>> don't restrict the set of APIs that can be used.
> >>>>
> >>>>> The problem is in backend/manager/modules/bll:
> >>>>> StorageDomainCommandBase class uses new Java 7 Long.compare()
> >>>>> static method.
> >>>>>
> >>>>> I think we should decide if we want to be compliant with Java
> >>>>> 7, or submit a patch that uses Java 6 API (Long.compareTo
> >>>>> instance method).
> >>>>>
> >>>>> Vojtech
> >>>
> >>> As I previously emailed - JDK7 already fixed a known issue with
> >>> ldap and
> >>> DNS ,and made one of my patches at gerrit redundant.
> >>> Why not enjoy the bug fixes?
> >>>
> >>>>>
> >>>>>
> >>>>> ----- Original Message -----
> >>>>> From: "Laszlo Hornyak" <lhornyak at redhat.com>
> >>>>> To: "engine-devel" <engine-devel at ovirt.org>
> >>>>> Cc: "Vojtech Szocs" <vszocs at redhat.com>
> >>>>> Sent: Wednesday, July 18, 2012 5:43:34 PM
> >>>>> Subject: java 1.6 compatibility no more?
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> It may be a historic moment, but for a few hours oVirt engine
> >>>>> is no longer building on java 1.6.
> >>>>> Is this intentional?
> >>>>>
> >>>>> Laszlo
> 
> 
> --
> Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
> 3ºD, 28016 Madrid, Spain
> Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat
> S.L.
> 
> 
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
> 



More information about the Engine-devel mailing list