Hi Rony,

Thanks for that!

Rgds,Rory

On 20/06/2015 17:27, Rony G. Flatscher (Apache) wrote:
Hi Rory,

just ran "jdeps -jdkinternals" on both, BSF 2.4.0 and BSF 3.1, both have no 
internal dependencies.

Best regards,

---rony



On 15.06.2015 14:19, Rony G. Flatscher (Apache) wrote:
On 15.06.2015 10:04, Rory O'Donnell wrote:
Hi Benedict,

I'm contacting you in relation to Apache Commons Configuration & Bean Scripting 
Framework (BSF),
both projects seems to be  very popular dependencies for other open source 
projects.

As part of the preparations for JDK 9, Oracle’s engineers have been analyzing 
open source projects
like yours to understand usage. One area of concern involves identifying 
compatibility problems,
such as reliance on JDK-internal APIs.

Our engineers have already prepared guidance on migrating some of the more 
common usage patterns
of JDK-internal APIs to supported public interfaces.  The list is on the 
OpenJDK wiki [0].

As part of the ongoing development of JDK 9, I would like to inquire about your 
usage of
JDK-internal APIs and to encourage migration towards supported Java APIs if 
necessary.

The first step is to identify if your application(s) is leveraging internal 
APIs.

/Step 1: Download JDeps. /

    Just download a preview release of JDK8(JDeps Download
    <https://jdk8.java.net/download.html>). You do not need to actually
    test or run your application on JDK8. JDeps(Docs
    <http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html>)
    looks through JAR files and identifies which JAR files use internal
    APIs and then lists those APIs.

/Step 2: To run JDeps against an application/. The command looks like:

    jdk8/bin/jdeps -P -jdkinternals *.jar > your-application.jdeps.txt

    The output inside your-application.jdeps.txt will look like:

    your.package (Filename.jar)
           -> com.sun.corba.se            JDK internal API (rt.jar)

_3rd party library using Internal APIs:_
If your analysis uncovers a third-party component that you rely on, you can 
contact the provider
and let them know of the upcoming changes. You can then either work with the 
provider to get an
updated library that won't rely on Internal APIs, or you can find an 
alternative provider for the
capabilities that the offending library provides.

_Dynamic use of Internal APIs:_
JDeps can not detect dynamic use of internal APIs, for example through 
reflection, service loaders
and similar mechanisms.

Rgds,Rory

[0] https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool

Maybe a few remarks: there are two different packages, one BSF 2.x and one BSF 
3.x. BSF 2.x is an
opensource scripting framework for Java, BSF 3.x is an Apache implementation of 
JSR-223
(javax.script, which was influenced by BSF 2.x). The Java baseline is 1.4, if I 
am not mistaken,
such that pre Java 1.6 (when javax.script appeared for the first time) 
installations could use
either framework. BSF 3.x uses the package name "javax.script" such that 
starting with Java 1.6, due
to the class loading rules, the Java supplied "javax.script" will be found and 
used, even if BSF 3
is installed.

Having said that, I would plan to analyze at least BSF 2.x (and also apply a few, 
"last" updates,
including supplying a "javax.script.BSF ScriptEngine" implementation to ease 
creating a javax.script
ScriptEngine for BSF 2.x script engines, as there may be som BSF 2.x scripting 
languages that could
be then deployed via the javax.script framework) with jdeps. In case it is using 
"JDK-internal APIs"
it will be interesting to learn whether (and how) one could use different APIs 
that are available in
the 1.4 world (unless we lift that baseline to Java 7 or 8).

---rony




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org


--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to