[hibernate-dev] Java 9: progress on compatibility

Steve Ebersole steve at hibernate.org
Wed Jun 15 16:14:19 EDT 2016


No worries, I understand.

On Wed, Jun 15, 2016 at 3:13 PM Sanne Grinovero <sanne at hibernate.org> wrote:

> On 15 June 2016 at 19:29, Steve Ebersole <steve at hibernate.org> wrote:
> > WRT JAXB (XJC) I am completely lost.
> >
> > Sanne I tried your solution of specifying an addmod for jaxb to
> GRADLE_OPTS
> > but get the same result (ExceptionInInitializerError) with and without
> that
> > change.  So not sure how you got that to work.
>
> Steve, sorry if that wasn't clear: this didn't work for me either.
> I used the GRADLE_OPTS to bypass other issues which I had before
> reaching this point, but then I got stuck on the 'xjc' plugin, and
> that's were I asked if we could bypass/skip/rewrite the plugin.
>
> >
> > I did try the alternative we discussed of defining an explicit build
> > dependency on JAXB (which again has no effect):
> >
> >
> > xjc 'org.glassfish.jaxb:jaxb-core:2.2.11'
> > xjc 'org.glassfish.jaxb:jaxb-xjc:2.2.11'
> > xjc 'org.jvnet.jaxb2_commons:jaxb2-basics:0.11.0'
> > xjc 'org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.11.0'
> >
> >
> > For some background, XJC is currently performed via Gradle's AntBuilder
> > support using the jaxb2_commons Ant task
> > (org.jvnet.jaxb2_commons.xjc.XJC2Task). I also have tried using Sun's
> > com.sun.tools.xjc.XJCTask directly.  Neither make any difference.  The
> > fundamental problem is that for Ant execution Gradle simply reuses its
> VM.
> > So to get this applied (iiuc) the only real option is to configure the
> > Gradle launch to include the addmod (which makes it more odd that
> > GRADLE_OPTS did not work for me).
> >
> > The other option is to write a new Gradle XjcTask that executes the XJC
> tool
> > directly.  That we can use Gradle to help us fork and pass the addmod
> option
> > to the forked process.  I think :)
> >
> >
> > On Mon, Jun 13, 2016 at 3:00 AM Gunnar Morling <gunnar at hibernate.org>
> wrote:
> >>
> >> Yep, we discussed that approach last year already:
> >> http://lists.jboss.org/pipermail/hibernate-dev/2015-March/012250.html
> >>
> >> 2016-06-13 9:49 GMT+02:00 Sanne Grinovero <sanne at hibernate.org>:
> >>
> >> > On 13 June 2016 at 07:34, Gunnar Morling <gunnar at hibernate.org>
> wrote:
> >> > > Hey,
> >> > >
> >> > > I hit the same issue with the injection plug-in in HV.
> >> > >
> >> > > It was used for obtaining the version of HV at runtime. I worked
> >> > > around
> >> > it
> >> > > by obtaining that from the package instead [1]:
> >> > >
> >> > >     return
> SomeHvClass.class.getPackage().getImplementationVersion();
> >> >
> >> > Right, that looks a lot like
> >> >  -
> >> >
> >> >
> https://github.com/hibernate/hibernate-search/commit/fde388e9fd822abf877e56ab4147ac95c9fffd51
> >> > ;)
> >> >
> >> > >
> >> > > If that's all what the injection plug-in is used for in ORM as well
> >> > > (and
> >> > you
> >> > > don't depend on that version info e.g. during testing in the IDE,
> >> > > where
> >> > > there is no JAR manifest yet which is the source of the version with
> >> > > that
> >> > > approach), you could do the same there.
> >> > >
> >> > > --Gunnar
> >> > >
> >> > > [1]
> >> > >
> >> >
> >> >
> https://github.com/hibernate/hibernate-validator/commit/8a0eb0bfbc7610ea6fc9962eef024a98c3f9468c#diff-963bab11ed76f80c4a804903ed66e03fR34
> >> > >
> >> > >
> >> > > 2016-06-12 22:18 GMT+02:00 Sanne Grinovero <sanne at hibernate.org>:
> >> > >>
> >> > >> Some more progress by simply setting this environment variable:
> >> > >>
> >> > >>
> >> >
> >> >
> GRADLE_OPTS="-XaddExports:java.security.sasl/com.sun.security.sasl.digest=ALL-UNNAMED
> >> > >> -XaddExports:java.security.sasl/com.sun.security.sasl=ALL-UNNAMED
> >> > >> -XaddExports:jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
> >> > >> -XaddExports:jdk.unsupported/sun.reflect=ALL-UNNAMED -addmods
> >> > >> java.xml.bind"
> >> > >>
> >> > >> But it's getting tricky:
> >> > >>
> >> > >> Caused by: compile error: javassist.NotFoundException:
> >> > >> java.lang.String
> >> > >>    at javassist.compiler.Javac.compileBody(Javac.java:229)
> >> > >>    at javassist.CtBehavior.setBody(CtBehavior.java:438)
> >> > >>    ... 76 more
> >> > >>
> >> > >> This seems to be caused by the following plugin, which I'm not
> >> > >> familiar
> >> > >> with:
> >> > >>  -
> >> > >>
> >> >
> >> >
> org.hibernate.build.gradle.inject.InjectionAction.execute(InjectionAction.java:62)
> >> > >> Is this something which we could disable/skip/remove for now, or
> >> > >> update to not require Javassist?
> >> > >>
> >> > >> Thanks,
> >> > >> sanne
> >> > >>
> >> > >> On 12 June 2016 at 20:56, Sanne Grinovero <sanne at hibernate.org>
> >> > >> wrote:
> >> > >> > On 11 June 2016 at 18:47, Sanne Grinovero <sanne at hibernate.org>
> >> > wrote:
> >> > >> >> On 11 June 2016 at 18:25, Steve Ebersole <steve at hibernate.org>
> >> > wrote:
> >> > >> >>> The ORM failure seems to be a Gradle/JDK9 issue.  Any idea
> about
> >> > that?
> >> > >> >>
> >> > >> >> Not sure, that's a new one :)
> >> > >> >> It could be related to
> >> > >> >> https://issues.gradle.org/browse/GRADLE-3287
> >> > ?
> >> > >> >>
> >> > >> >> Might be worth trying to upgrade to Gradle 2.12 .. I'm not at a
> >> > >> >> terminal at the moment, I could try later.
> >> > >> >
> >> > >> > I've upgraded to Gradle 2.13, the pull request is here:
> >> > >> >  - https://github.com/hibernate/hibernate-orm/pull/1417#
> >> > >> >
> >> > >> > It solved that specific issue, but it's not enough. I'm still
> >> > >> > trying
> >> > >> > to hack a workaround for the next step, but in the meantime that
> PR
> >> > >> > could be considered independently.
> >> > >> >
> >> > >> > I could use some pointers with Gradle and the custom plugins we
> >> > >> > use;
> >> > >> > essentially we need to pass some additional JVM flags, including
> to
> >> > >> > javac, like here:
> >> > >> >  -
> >> > >> >
> >> >
> >> >
> https://github.com/hibernate/hibernate-orm/commit/5e6a8ea754e3c4c59925fe7f824092490efc008b
> >> > >> >
> >> > >> > But the failure happens during:
> >> > >> >  Execution failed for task ':hibernate-core:xjc'
> >> > >> >
> >> > >> > and I'm not sure how to override the JVM flags for that plugin
> >> > >> > execution.
> >> > >> >
> >> > >> > Thanks,
> >> > >> > Sanne
> >> > >> >
> >> > >> >
> >> > >> >>
> >> > >> >>>
> >> > >> >>> On Fri, Jun 10, 2016, 4:39 PM Sanne Grinovero
> >> > >> >>> <sanne at hibernate.org>
> >> > >> >>> wrote:
> >> > >> >>>>
> >> > >> >>>> Hi all,
> >> > >> >>>> please try to have a look at this page when you have a moment:
> >> > >> >>>>  - http://ci.hibernate.org/view/JDK9/
> >> > >> >>>>
> >> > >> >>>> Hibernate Search is working, and it shouldn't be too hard to
> get
> >> > the
> >> > >> >>>> others "green" as well.
> >> > >> >>>>
> >> > >> >>>> I've disabled some integration tests to get there, notably:
> >> > >> >>>>  - OSGi tests: Karaf is not ready for it.
> >> > >> >>>>  - Documentation build: Asciidoc will probably need an update.
> >> > >> >>>>  - WildFly integration tests: the WildFly team is aware, will
> >> > >> >>>> need
> >> > a
> >> > >> >>>> minor upgrade.
> >> > >> >>>>
> >> > >> >>>> I don't believe these issues are relevant, so I'm satisfied
> that
> >> > all
> >> > >> >>>> other tests working fine mean that the project will pretty
> much
> >> > work
> >> > >> >>>> out of the box for end users - at worst their container won't
> >> > >> >>>> work,
> >> > >> >>>> but that's not our responsibility to test for.
> >> > >> >>>>
> >> > >> >>>> Could you all contribute a bit to get all projects show
> "green"
> >> > >> >>>> on
> >> > >> >>>> this
> >> > >> >>>> page?
> >> > >> >>>>
> >> > >> >>>> Some "workarounds" you might want to apply:
> >> > >> >>>>  - the Logger interfaces won't compile because of a known
> issue,
> >> > this
> >> > >> >>>> can be worked around for now by having the compilation phase
> >> > >> >>>> also
> >> > >> >>>> explicitly depend on this artifact:
> >> > >> >>>>
> >> > >> >>>>
> >> > >> >>>>
> >> >
> >> >
> https://github.com/hibernate/hibernate-search/blob/master/pom.xml#L878-L883
> >> > >> >>>>  - you'll have a ClassNotFoundException on JAXB usage unless
> you
> >> > set
> >> > >> >>>> this JVM flag:
> >> > >> >>>>
> >> > >> >>>>
> >> >
> https://github.com/hibernate/hibernate-search/blob/master/pom.xml#L1429
> >> > >> >>>> (This one is not a bug but will be required to be set by end
> >> > >> >>>> users
> >> > as
> >> > >> >>>> well - or we provide our own XML parser, that might be more
> user
> >> > >> >>>> friendly).
> >> > >> >>>>
> >> > >> >>>> As far as I know, other issues with the build tools have been
> >> > solved
> >> > >> >>>> already - including Gradle.
> >> > >> >>>>
> >> > >> >>>> Thanks,
> >> > >> >>>> Sanne
> >> > >> >>>> _______________________________________________
> >> > >> >>>> hibernate-dev mailing list
> >> > >> >>>> hibernate-dev at lists.jboss.org
> >> > >> >>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >> > >> _______________________________________________
> >> > >> hibernate-dev mailing list
> >> > >> hibernate-dev at lists.jboss.org
> >> > >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >> > >
> >> > >
> >> >
> >> _______________________________________________
> >> hibernate-dev mailing list
> >> hibernate-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>


More information about the hibernate-dev mailing list