IIOP Interoperability was ‘proposed optional’ in Java EE 8 Platform SPEC (see table EE.6-1 EJB3.2 entry that mentions POPTc which means interoperability could be removed from Jakarta EE 9 which it was).
EJB 1.x spec was RMI focused, Corba could be used but JRMP was generally used initially.
PortableRemoteObject#narrow was there from near the beginning of EJB 1.x, which use of ensured that ejb calls would work with varies EJB implementations.
EJB 3 eliminated the need for PortableRemoteObject to be used, as new remote interfaces could automatically handle remote calls without calling #narrow. Works under the covers.
Also note that Corba/IIOP is removed from Java SE 11, which means for future JDK11+ support, javax.rmi.portableremoteobject can not be referenced in Platform EE 9 TCK.
At least not in tests that would be included in TCK test runs on Java SE 11.
The Platform TCK currently only allows for tests to be required or optional.
The Platform TCK does not have a way to test removed technologies.
https://github.com/eclipse-ee4j/jakartaee-tck/pull/543 is being tested.
The use of remote tiers being invoked may see different outcomes with applications that try to type cast instead of calling javax.rmi.PortableRemoteObject#narrow
We need a conclusion on how removal of IIOP Interoperability applies to TCK testing.
Do we need to verify that remote EJB 2 style calls to separate JVM can work with GlassFish?
If we test this, we will remove the requirement for PortableRemoteObject#narrow from EJB spec.
javax.rmi.PortableRemoteObject is the only interface that we removed from JDK 11 and haven’t translated to jakarta.* since it wasn’t donated to Jakarta.
If we do have permission to move javax.rmi.PortableRemoteObject into jakarta.* namespace, we could include jakarta.PortableRemoteObject in EJB SPEC API.
javax.rmi.PortableRemoteObjectClass needs to be implemented by GlassFish
DECISION: Deal with this in EE 9.1 for addressing JDK11 issues
Platform TCK tests can continue to use javax.rmi.PortableRemoteObject#narrow, instead we will deal with the pull request for EE 9.1.
FYI… Kevin verified with the IBM EJB Lead that we have packaged the necessary RMI/IIOP classes for our use with Java SE 11. The Liberty support of EJB requires the use of javax.rmi.PortableRemoteObject#narrow.
Could we deal with JDK 11 in EE 10 as an alternative?
There is a lot of feedback that we need JDK11 for EE 9.x
How much time to deal with this (just javax.rmi.PortableRemoteObject) change now for EE 9?
We don’t have ability to test for EE 9 since we don’t yet support JDK11
Updating the Platform SPEC for removed Corba/IIOP
There are a bunch of Corba things that have to be described still in Platform SPEC.
These have nothing to do with interoperability
Update Platform SPEC wording from Compatible Implementations MAY additionally certify and support later versions of the Java SE runtime. to only support Java SE 8?
Since later JDK versions removed features, it is currently difficult to to support any later version.
TCK signature tests need updates for JDK11 to pass on JDK11.
Will leave Java SE versions later than SE 8 may be used.