JDK-8242049 : Remove rmic from the set of supported tools
  • Type: CSR
  • Component: core-libs
  • Sub-Component: java.rmi
  • Priority: P3
  • Status: Closed
  • Resolution: Approved
  • Fix Versions: 15
  • Submitted: 2020-04-02
  • Updated: 2020-04-09
  • Resolved: 2020-04-07
Related Reports
CSR :  
Relates :  
Relates :  
Description
Summary
-------

Remove the `rmic` tool; it was deprecated for removal in JDK 13. This follows the deprecation of statically-generated stubs in Java SE 8 and the removal of support for generating IDL, and IIOP stubs tie classes, in JDK 11 (JEP 320).

Problem
-------

The `rmic` tool is obsolete and has been deprecated for removal in JDK 13 (JDK-8225025). The `rmic` tool was used to generate static stubs for the RMI protocol version 1.1.  The few remaining remote services that use the version 1.1 protocol use pre-generated stubs.
RMIC is no longer used by applications since the switch to the version 1.2 rmi protocol.

Solution
--------

Remove the `jdk.rmic` module and the `rmic` tool. Remove all references to the tool from the man pages and other documentation.

Update API docs to remove references to rmic's prior role while retaining necessary runtime support for the version 1.1 protocol.

Specification
-------------
Remove
```
 - jdk.rmic module
 - rmic tool
```

Update the API docs of the following packages/classes to remove references to rmic.
Detailed edits attached in `remove-rmic-api-edits.patch`.

```
- java.rmi.server package description
- java.rmi.server.Operation
- java.rmi.server.Skeleton
- java.rmi.server.SkeletonMismatchException
- java.rmi.server.UnicastRemoteObject
```



Comments
Change scope to SE since arguably some of the edits in java.rmi.server are more than just updates to informative text. Moving to Approved.
07-04-2020

I've updated the CSR to make it a bit clearer what is being removed. I think it would be useful to include the diffs to the API classes that are updated to remove references to the rmic tool.
06-04-2020

You are correct that removing it only affects the tools, not any APIs or behavior. I will correct the scope to JDK.
03-04-2020

Is the Scope really SE, not JDK ? Is there impact on API located in java.rmi package?
03-04-2020