Folks,

some good news for y'all (presumably you're on this mailing list because you 
are interested in Nashorn.)

Since Nashorn's removal from JDK starting with Java 15, numerous people have 
realized that they, in fact, rely on it. To remedy the situation, Nashorn will 
continue as a standalone project within the OpenJDK organization.

You might ask, "But isn't Nashorn officially dead?", to which the answer is: 
no, it isn’t. The project’s product is merely no longer shipped as part of the 
JDK project. The Nashorn project in OpenJDK organization is still live[1], 
along with all of its resources including the mailing list this message is 
posted on. It was merely not active for a while, until now.

What does this mean in practical terms? The following will happen or are 
happening:

* Project communication will continue on this mailing list 
(<nashorn-dev@openjdk.java.net>).

* A GitHub project openjdk/nashorn will be set up. It will be populated by a 
clone of the openjdk/jdk14u repo that has been filtered for  Nashorn-only 
commits. (Thanks, git-filter-repo[2], you are awesome!) There will be no 
synchronization back to jdk14u afterwards, it won't act as an upstream. 
openjdk/nashorn proceeds independently from that point on.

* The project will change the module and package names as it can't keep living 
within the top-level "jdk." package. In accordance with other 
independently-developed OpenJDK projects, it will transition to module and 
package names within the "org.openjdk." package. Fortunately for Nashorn, it is 
mostly used through the "javax.script.*" APIs so people that use it through 
those APIs won't have to adapt their code. Creating the engine by name as 
described in Nashorn’s last (JDK 14) API docs[3] will continue to work. People 
that used to use the Nashorn-specific API (typically, AbstractJSObject and 
ScriptObjectMirror) will need to adapt their code for new package names, though.

* Project artifacts (in plain English: JAR file to be used with Maven etc.) 
will be published on SonaType under the "org.openjdk" organization, again 
similar to other independently-developed OpenJDK projects.

The goal for the initial release is to ship a standalone Nashorn with identical 
functionality to that in JDK 14, with the only changes being:

* reversing of deprecation and “scheduled for removal” notices,
* enacting the package and module name changes,
* replacing or removing dependencies on various jdk.internal.* packages since 
those are no longer exported from JDK modules to the Nashorn module.

It is possible for expediency that we will decide to ship Nashorn as a library 
first, and separately ship the initial version of the jjs shell sometime later.

I’m personally undertaking these initial tasks. I will let you know here on the 
list about the progress, and once the repo is set up the work will also start 
appearing on a branch.

There are some other aspects of the project that need to be worked out: 
contribution and review guidelines, publication location of the accompanying 
documentation (that will no longer be part of the JDK documentation) and so on. 
I will post discussion-initiating e-mails for these as well as time comes and 
will absolutely welcome feedback on them, just as I welcome feedback on this 
plan too.

Attila.

--
[1] https://openjdk.java.net/projects/nashorn/
[2] https://github.com/newren/git-filter-repo
[3] 
https://docs.oracle.com/en/java/javase/14/docs/api/jdk.scripting.nashorn/module-summary.html

Reply via email to