On Jan 20, 2016, at 12:15 PM, Jason Greene
<jason.greene(a)redhat.com> wrote:
Hi Paul,
Yes we have had a few discussions about some of our usage with the Oracle JVM QE group.
We have also provided some feedback at the JCP level.
To give one example, if you want to provide an alternative serialization mechanism (e.g.
to customize the protocol for various reasons such as performance, modularity, security),
yet still support the Java serialization API/contract, you have to be able to instantiate
empty uninitialized classes. This is something that Java serialization implementation
itself can’t work without, but the Java language is not intended to allow you to do. So
the common solution that many projects do to achieve this, is to either use reflection
internals or the Unsafe. Other examples typically involve the latter (e.g. custom
concurrency prims)
So naturally there has been resistance to expose hooks such as this, which is why I
predict they won’t be there in Java 9. I would love to be proven wrong though :)
Just to clarify, I predict they won’t be part of a public javax.xxx API. They will still
be internally available since Java itself needs them (as do we). There has been mention of
a flag to prevent removing visibility of these classes, as otherwise compatibility will
most certainly be broken. That is what I expect we will require.
That said, we should remove every occurrence that we don’t truly need.
> On Jan 20, 2016, at 11:41 AM, Paul Benedict <pbenedict(a)apache.org
<mailto:pbenedict@apache.org>> wrote:
>
> Jason, have you considered reaching out to Oracle (or have already) to discuss what
internal APIs have no public replacement? They are very receptive to that kind of
feedback.
>
> Cheers,
> Paul
>
> On Wed, Jan 20, 2016 at 11:37 AM, Jason Greene <jason.greene(a)redhat.com
<mailto:jason.greene@redhat.com>> wrote:
>
> > On Jan 20, 2016, at 11:12 AM, Tomasz Adamski <tadamski(a)redhat.com
<mailto:tadamski@redhat.com>> wrote:
> >
> >> In a standalone scenario we are not using modules so the JVM would use
> >> rt.jar unless the user updates the bootclasspath. I do not see how it would
> >> be possible to avoid the jdeps warnings.
> >
> > True, my mistake. I thought about a scenario in which despite using
xbootclasspath we have some orb dependencies to JDK, but this obviously can only be tested
on runtime which is not what jdeps does.
>
> While some thought on the feasibility of package renaming is progressing, I have an
semi-important tangent (more to say in a subsequent follow-up). At one point we had a long
term goal, or perhaps “hope” is more precise, that we would one day just be able to use
the ORB in the JVM without shipping a downstream variant. That may very well become a
possibility with virtually all known non-Oracle JVMs utilizing the openjdk lib, and thus
the same impl.
>
> I take this means that Naryana requires references to non org.omg APIs, and thus if
we remove them, this goal would no longer be possible.
>
> Note that with Java 9 internal APIs, I can pretty much guarantee that we are going to
have to use whatever override flag they add for running WildFly/EAP, and certainly many
other mainstream Java systems. We rely on those APIs, and there hasn’t been adequate
replacement. I wonder if the linkage you refer to here doesn’t also fit this category.
>
> --
> Jason T. Greene
> WildFly Lead / JBoss EAP Platform Architect
> JBoss, a division of Red Hat
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev(a)lists.jboss.org <mailto:wildfly-dev@lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/wildfly-dev
<
https://lists.jboss.org/mailman/listinfo/wildfly-dev>
--
Jason T. Greene
WildFly Lead / JBoss EAP Platform Architect
JBoss, a division of Red Hat
--
Jason T. Greene
WildFly Lead / JBoss EAP Platform Architect
JBoss, a division of Red Hat