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 :)
On Jan 20, 2016, at 11:41 AM, Paul Benedict
<pbenedict(a)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