Re: Cruisecontrol dependencies on JDK-Internal APIs

"Rory O'Donnell" <[email protected]> Fri, 05 Jun 2015 11:39:37 +0100
Newsgroups gmane.comp.java.cruise-control.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============4558794831357400865==
Content-Type: multipart/alternative;
	boundary="------------090400060600060107080305"

This is a multi-part message in MIME format.
--------------090400060600060107080305
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by aserp1040.oracle.com id
	t55Adfjw024167

Hi Kent,

Just checking in with you, have you had a chance to check for=20
dependencies on JDK-Internal APIs ?

Rgds,Rory

On 29/05/2015 16:24, Rory O'Donnell wrote:
>
> Hi Kent,
>
> As part of the preparations for JDK 9, Oracle=E2=80=99s engineers have =
been=20
> analyzing open source projects like yours to understand usage. One=20
> area of concern involves identifying compatibility problems, such as=20
> reliance on JDK-internal APIs.
>
> Our engineers have already prepared guidance on migrating some of the=20
> more common usage patterns of JDK-internal APIs to supported public=20
> interfaces.  The list is on the OpenJDK wiki [0].
>
> As part of the ongoing development of JDK 9, I would like to inquire=20
> about your usage of  JDK-internal APIs and to encourage migration=20
> towards supported Java APIs if necessary.
>
> The first step is to identify if your application(s) is leveraging=20
> 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.ht=
ml>)
>     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,=20
> you can contact the provider and let them know of the upcoming=20
> changes. You can then either work with the provider to get an updated=20
> library that won't rely on Internal APIs, or you can find an=20
> alternative provider for the capabilities that the offending library=20
> provides.
>
> _Dynamic use of Internal APIs:_
> JDeps can not detect dynamic use of internal APIs, for example through=20
> reflection, service loaders and similar mechanisms.
>
> Rgds,Rory
>
> [0]=20
> https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Too=
l
> --=20
> Rgds,Rory O'Donnell
> Quality Engineering Manager
> Oracle EMEA , Dublin, Ireland

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


--------------090400060600060107080305
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by aserp1040.oracle.com id
	t55Adfjw024167

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Ty=
pe">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi Kent,<br>
    <br>
    Just checking in with you, have you had a chance to check for
    dependencies on JDK-Internal APIs ?<br>
    <br>
    Rgds,Rory<br>
    <br>
    <div class=3D"moz-cite-prefix">On 29/05/2015 16:24, Rory O'Donnell
      wrote:<br>
    </div>
    <blockquote cite=3D"mid:[email protected]" type=3D"cite">
      <meta http-equiv=3D"content-type" content=3D"text/html; charset=3Du=
tf-8">
      <br>
      Hi Kent,<br>
      <br>
      As part of the preparations for JDK 9, Oracle=E2=80=99s engineers h=
ave
      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. <br>
      <br>
      Our engineers have already prepared guidance on migrating some of
      the more common usage patterns of JDK-internal APIs to supported
      public interfaces.=C2=A0 The list is on the OpenJDK wiki [0].<br>
      <br>
      As part of the ongoing development of JDK 9, I would like to
      inquire about your usage of=C2=A0 JDK-internal APIs and to encourag=
e
      migration towards supported Java APIs if necessary.<br>
      <br>
      The first step is to identify if your application(s) is leveraging
      internal APIs. <br>
      <br>
      =C2=A0 <i>Step 1: Download JDeps. </i><br>
      <blockquote>Just download a preview release of JDK8(<a
          moz-do-not-send=3D"true"
          href=3D"https://jdk8.java.net/download.html">JDeps Download</a>=
).

        You do not need to actually test or run your application on
        JDK8.=C2=A0 JDeps(<a moz-do-not-send=3D"true"
href=3D"http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.h=
tml">Docs</a>)
        looks through JAR files and identifies which JAR files use
        internal APIs and then lists those APIs.=C2=A0=C2=A0=C2=A0 <br>
      </blockquote>
      =C2=A0 <i>Step 2: To run JDeps against an application</i>. The comm=
and
      looks like:<br>
      <blockquote>jdk8/bin/jdeps -P -jdkinternals *.jar &gt;
        your-application.jdeps.txt<br>
        <br>
        The output inside your-application.jdeps.txt will look like:<br>
        <br>
        your.package (Filename.jar)<br>
        =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 -&gt; com.sun.corba.se=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 JDK internal API
        (rt.jar)</blockquote>
      <u>3rd party library using Internal APIs:</u><br>
      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.<br>
      <br>
      <u>Dynamic use of Internal APIs:</u><br>
      JDeps can not detect dynamic use of internal APIs, for example
      through reflection, service loaders and similar mechanisms.<br>
      <br>
      Rgds,Rory <br>
      <br>
      [0] <a moz-do-not-send=3D"true" class=3D"moz-txt-link-freetext"
href=3D"https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analys=
is+Tool">https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analy=
sis+Tool</a><br>
      <pre class=3D"moz-signature" cols=3D"72">--=20
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland </pre>
    </blockquote>
    <br>
    <pre class=3D"moz-signature" cols=3D"72">--=20
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland </pre>
  </body>
</html>

--------------090400060600060107080305--


--===============4558794831357400865==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--===============4558794831357400865==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Cruisecontrol-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cruisecontrol-devel

--===============4558794831357400865==--