[Engine-devel] java 1.6 compatibility no more?

Allon Mureinik amureini at redhat.com
Sun Jul 22 08:07:37 UTC 2012



----- Original Message -----
> From: "Laszlo Hornyak" <lhornyak at redhat.com>
> To: "Juan Hernandez" <jhernand at redhat.com>
> Cc: engine-devel at ovirt.org
> Sent: Thursday, July 19, 2012 3:04:17 PM
> Subject: Re: [Engine-devel] java 1.6 compatibility no more?
> 
> 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)

The real solution for this is to stop using powermock, an effort we've been pursuing for the last couple of months.
After merging a couple more patches that were already approved and just waiting for merge on the subject 
(http://gerrit.ovirt.org/#/c/6280/ && http://gerrit.ovirt.org/#/c/6392/ - if one of the maintainers can lend a hand), 
we remain with two failures which both originate from the same place:
org.ovirt.engine.api.restapi.resource.BackendResourceDebugDetailTest
org.ovirt.engine.api.restapi.resource.BackendResourceInfoDetailTest

Both of these failures are due to powermocking in AbstractBackendResourceLoggingTest.
Basically, this test is used for testing that the logging in BaseBackendResource.detail(Throwable) method is done properly.
Not sure how useful this is (perhaps someone more familiar with REST-API can shed some insight?), but if this is the only thing preventing us from moving to jdk-7...
well..

> 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
> > 
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
> 



More information about the Devel mailing list