Is there a replacement library for CORBA in JDK 11
JavaCorbaJava ModuleJava 11Java Problem Overview
JDK-11 will remove a lot of older parts of the JDK ([JEP-320][1]). For some of them (e.g. JAXB) functionality will be provided as regular library. You simply add another dependency and everything works fine again.
But not so for CORBA, because
> There is no significant interest in developing modern applications with CORBA in Java
I am however in the painful situation of needing to maintain older applications that still require CORBA while still wanting to update to JDK-11.
Is there a replacement-library out there or another good way of migrating to JDK-11 without removing the CORBA functionality of these applications?
[1]: http://openjdk.java.net/jeps/320 "JEP-320"
Java Solutions
Solution 1 - Java
You can definitely take a look at javaee/glassfish-corba. The documented home page reads -
> The GlassFish ORB complies with the CORBA 2.3.1 specification, and > with the CORBA 3.0 specifications for the Interoperable Name Service > and Portable Interceptors. It includes both IDL and RMI-IIOP support. > The GlassFish ORB has an open, extensible architecture that supports > flexible configuration and extension through an open SPI.
Further what shall also interest developers, from the JEP itself -
> The risks of removing the java.corba
module are:
>
> 1. CORBA implementations will not compile or run if they include only a
> subset of the "endorsed" CORBA APIs and expect the JDK to provide the
> remainder.
>
> 2. Applications and CORBA implementations that use RMI-IIOP will not
> compile or run. The RMI-IIOP packages (javax.rmi
and javax.rmi.CORBA
)
> are located in the java.corba
module and tied to the CORBA
> implementation therein, so there will be no RMI-IIOP support in Java
> SE once java.corba
is removed.
>
> 3. Applications and CORBA implementations that use the javax.activity
> package will not compile or run. This package is located in the
> java.corba
module and tied to the CORBA implementation therein, so
> there will be no support in Java SE once java.corba
is removed.
and further down there
- > The transition of stewardship of Java EE from the JCP to the Eclipse > Foundation includes the GlassFish implementation of CORBA and > RMI-IIOP.
additionally,
- The "CORBA interop package" if required is implemented along with the artifact
javax.transaction : javax.transaction-api
.
Solution 2 - Java
this dependency could be used in JDK11
<dependency>
<groupId>org.glassfish.corba</groupId>
<artifactId>glassfish-corba-omgapi</artifactId>
<version>4.2.1</version>
</dependency>
Solution 3 - Java
I haven't moved to Java 11 yet but I always had problems with the Java CORBA implementation anyway as it was incomplete and didn't support all the Object methods defined in the standards, didn't support ssliop, etc. etc. I always replaced it by placing th JacORB OMG jar in the endorsed directory and setting the system property to pont to the JacORB orb:
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
BTW. I do not agree that ""There is no significant interest in developing modern applications with CORBA in Java" after all what is J2EE sitting on?
Solution 4 - Java
JDK 11 is fully supported by all of the ORB's supplied by Micro Focus.