Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8202786

JEP 335: Deprecate the Nashorn JavaScript Engine

    Details

    • Author:
      Jim Laskey
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Subcomponent:
    • Scope:
      JDK
    • Discussion:
      jdk dash dev at openjdk dot java dot net
    • Effort:
      S
    • JEP Number:
      335

      Description

      Summary

      Deprecate the Nashorn JavaScript script engine and APIs, and the jjs tool, with the intent to remove them in a future release.

      Motivation

      The Nashorn JavaScript engine was first incorporated into JDK 8 via JEP 174 as a replacement for the Rhino scripting engine. When it was released, it was a complete implementation of the ECMAScript-262 5.1 standard.

      With the rapid pace at which ECMAScript language constructs, along with APIs, are adapted and modified, we have found Nashorn challenging to maintain.

      Non-Goals

      This deprecation does not affect, in any way, the javax.script API.

      Description

      Two JDK modules will be terminally deprecated, that is, annotated with @Deprecated(forRemoval=true):

      • jdk.scripting.nashorn -- contains the jdk.nashorn.api.scripting and jdk.nashorn.api.tree packages.

      • jdk.scripting.nashorn.shell -- contains the jjs tool. Running jjs will display a warning:

        Warning: The jjs tool is planned to be removed from a future JDK release.

      A separate JEP will be filed for the actual removal of the types and modules in a future JDK feature release.

      Alternatives

      An alternative is for a set of credible developers to express a clear desire to maintain Nashorn going forward. If that happens before this JEP is integrated then this JEP can be withdrawn. If that happens after this JEP is integrated, but before Nashorn is removed, then a follow-on JEP can revert the deprecation.

      Risks and Assumptions

      The risk of removing Nashorn is that certain applications will no longer run because of the expectation that JavaScript is present. The breadth of Nashorn usage has not been easy to track. It is hoped that feedback for this JEP might provide better insight into actual Nashorn usage.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jlaskey Jim Laskey
                Reporter:
                jlaskey Jim Laskey
                Owner:
                Jim Laskey
                Reviewed By:
                Alex Buckley, Brian Goetz, Dalibor Topic
                Endorsed By:
                Mark Reinhold
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: