44

JDK-11 will remove a lot of older parts of the JDK (JEP-320). 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?

Naman
  • 23,555
  • 22
  • 173
  • 290
rli
  • 1,426
  • 1
  • 11
  • 24
  • 9
    Don't know why this got DV'd, it's a very valid question. The answer is unfortunately "no" however in my research thus far - it's definitely *possible* for it to be integrated as part of an external library, but I haven't seen anyone take this up yet. There's possibly just not enough interest for someone to take it on in an open source fashion. – Michael Berry Aug 06 '18 at 14:47
  • @MichaelBerry It's arguably off-topic for being a library recommendation request. I'm guessing that whoever cast the close vote for that reason was also the downvoter (I could be wrong, though). It seems like this question may be an edge case in the rule, though; it might be worth discussing on Meta (especially since the upvotes suggest that most voters - myself included - apparently feel that the question is worth considering). – EJoshuaS - Reinstate Monica Aug 06 '18 at 15:11
  • 3
    @EJoshuaS There's a big difference between a question that says "recommend me a library to do `x`" and one that says "I've been doing `x` for the past 15 years in Java and will need to migrate to Java 11, what's the best way to proceed given this functionality has been removed?" This is *especially* the case as free Java 8 updates are due to end in a few months. – Michael Berry Aug 06 '18 at 15:16
  • 1
    @MichaelBerry I agree - I didn't vote to close, I upvoted because I think that the question is useful. – EJoshuaS - Reinstate Monica Aug 06 '18 at 15:17

4 Answers4

25

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

additionally,

Naman
  • 23,555
  • 22
  • 173
  • 290
7

this dependency could be used in JDK11

        <dependency>
            <groupId>org.glassfish.corba</groupId>
            <artifactId>glassfish-corba-omgapi</artifactId>
            <version>4.2.1</version>
        </dependency>
slavb18
  • 81
  • 1
  • 2
  • 3
    This is just the API. To run on JDK 11 one needs the actual implementation. The one working for me is: `glassfish-corba-orb` – Ivan Nov 01 '19 at 03:35
5

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?

pkanis
  • 51
  • 1
  • 1
  • 1
    I'm not sure that this answers the question. Can JacORB be used in java 11? Would a developer need to stop using the java interfaces from java 8 and use JacORB implementation classes instead? – John Mercier Mar 28 '19 at 12:55
  • I don't agree with the Oracle quotation either. I have a commercial product supporting bushfire crew despatching that uses 50,000 remote CORBA objects per instance. I find this significant. – user207421 Oct 14 '19 at 03:05
0

JDK 11 is fully supported by all of the ORB's supplied by Micro Focus.

double-beep
  • 3,889
  • 12
  • 24
  • 35