[infinispan-dev] Analysis of infinispan-6.0.2 dependency on JDK-Internal APIs
Rory O'Donnell Oracle, Dublin Ireland
rory.odonnell at oracle.com
Fri Oct 10 06:01:36 EDT 2014
Hi Galder,
Did you have time to review the report, any feedback ?
Rgds,Rory
On 24/09/2014 09:21, Rory O'Donnell Oracle, Dublin Ireland wrote:
> Below is a text output of the report for infinispan-6.0.2.
>
> Rgds,Rory
>
> ------------------------------------------------------------------------
>
>
> JDK Internal API Usage Report for infinispan-6.0.2.Final-all
>
> The OpenJDK Quality Outreach campaign has run a compatibility report
> to identify usage of JDK-internal APIs. Usage of these JDK-internal
> APIs could pose compatibility issues, as the Java team explained in
> 1996
> <http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html>.
> We have created this report to help you identify which JDK-internal
> APIs your project uses, what to use instead, and where those changes
> should go. Making these changes will improve your compatibility, and
> in some cases give better performance.
>
> Migrating away from the JDK-internal APIs now will give your team
> adequate time for testing before the release of JDK 9. If you are
> unable to migrate away from an internal API, please provide us with an
> explanation below to help us understand it better. As a reminder,
> supported APIs are determined by the OpenJDK's Java Community Process
> and not by Oracle.
>
> This report was generated by jdeps
> <http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html>
> through static analysis of artifacts: it does not identify any usage
> of those APIs through reflection or dynamic bytecode. You may also run
> jdeps on your own
> <https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool>
> if you would prefer.
>
> Summary of the analysis of the jar files within
> infinispan-6.0.2.Final-all:
>
> * Numer of jar files depending on JDK-internal APIs: 10
> * Internal APIs that have known replacements: 0
> * Internal APIs that have no supported replacements: 73
>
>
> APIs that have known replacements
> <https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool>:
>
> ID Replace Usage of With Inside
>
>
> JDK-internal APIs without supported replacements:
>
> ID Internal APIs (do not use) Used by
> 1 com.sun.org.apache.xml.internal.utils.PrefixResolver
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 2 com.sun.org.apache.xpath.internal.XPath
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 3 com.sun.org.apache.xpath.internal.XPathContext
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 4 com.sun.org.apache.xpath.internal.objects.XBoolean
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 5 com.sun.org.apache.xpath.internal.objects.XNodeSet
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 6 com.sun.org.apache.xpath.internal.objects.XNull
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 7 com.sun.org.apache.xpath.internal.objects.XNumber
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 8 com.sun.org.apache.xpath.internal.objects.XObject
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 9 com.sun.org.apache.xpath.internal.objects.XString
>
> * lib/freemarker-2.3.11.jar
>
> Explanation...
> 10 org.w3c.dom.html.HTMLAnchorElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 11 org.w3c.dom.html.HTMLAppletElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 12 org.w3c.dom.html.HTMLAreaElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 13 org.w3c.dom.html.HTMLBRElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 14 org.w3c.dom.html.HTMLBaseElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 15 org.w3c.dom.html.HTMLBaseFontElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 16 org.w3c.dom.html.HTMLBodyElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 17 org.w3c.dom.html.HTMLButtonElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 18 org.w3c.dom.html.HTMLCollection
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 19 org.w3c.dom.html.HTMLDListElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 20 org.w3c.dom.html.HTMLDirectoryElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 21 org.w3c.dom.html.HTMLDivElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 22 org.w3c.dom.html.HTMLDocument
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 23 org.w3c.dom.html.HTMLElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 24 org.w3c.dom.html.HTMLFieldSetElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 25 org.w3c.dom.html.HTMLFontElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 26 org.w3c.dom.html.HTMLFormElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 27 org.w3c.dom.html.HTMLFrameElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 28 org.w3c.dom.html.HTMLFrameSetElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 29 org.w3c.dom.html.HTMLHRElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 30 org.w3c.dom.html.HTMLHeadElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 31 org.w3c.dom.html.HTMLHeadingElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 32 org.w3c.dom.html.HTMLHtmlElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 33 org.w3c.dom.html.HTMLIFrameElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 34 org.w3c.dom.html.HTMLImageElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 35 org.w3c.dom.html.HTMLInputElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 36 org.w3c.dom.html.HTMLIsIndexElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 37 org.w3c.dom.html.HTMLLIElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 38 org.w3c.dom.html.HTMLLabelElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 39 org.w3c.dom.html.HTMLLegendElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 40 org.w3c.dom.html.HTMLLinkElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 41 org.w3c.dom.html.HTMLMapElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 42 org.w3c.dom.html.HTMLMenuElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 43 org.w3c.dom.html.HTMLMetaElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 44 org.w3c.dom.html.HTMLModElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 45 org.w3c.dom.html.HTMLOListElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 46 org.w3c.dom.html.HTMLObjectElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 47 org.w3c.dom.html.HTMLOptGroupElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 48 org.w3c.dom.html.HTMLOptionElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 49 org.w3c.dom.html.HTMLParagraphElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 50 org.w3c.dom.html.HTMLParamElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 51 org.w3c.dom.html.HTMLPreElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 52 org.w3c.dom.html.HTMLQuoteElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 53 org.w3c.dom.html.HTMLScriptElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 54 org.w3c.dom.html.HTMLSelectElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 55 org.w3c.dom.html.HTMLStyleElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 56 org.w3c.dom.html.HTMLTableCaptionElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 57 org.w3c.dom.html.HTMLTableCellElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 58 org.w3c.dom.html.HTMLTableColElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 59 org.w3c.dom.html.HTMLTableElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 60 org.w3c.dom.html.HTMLTableRowElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 61 org.w3c.dom.html.HTMLTableSectionElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 62 org.w3c.dom.html.HTMLTextAreaElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 63 org.w3c.dom.html.HTMLTitleElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 64 org.w3c.dom.html.HTMLUListElement
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 65 org.w3c.dom.ranges.DocumentRange
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 66 org.w3c.dom.ranges.Range
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 67 org.w3c.dom.ranges.RangeException
>
> * lib/xercesImpl-2.9.1.jar
>
> Explanation...
> 68 sun.misc.Signal
>
> * lib/aesh-0.33.7.jar
>
> Explanation...
> 69 sun.misc.SignalHandler
>
> * lib/aesh-0.33.7.jar
>
> Explanation...
> 70 sun.misc.Unsafe
>
> * lib/avro-1.7.5.jar
> * lib/guava-12.0.jar
> * lib/infinispan-commons-6.0.2.Final.jar
> * lib/mvel2-2.0.12.jar
> * lib/scala-library-2.10.2.jar
>
> Explanation...
> 71 sun.nio.ch.FileChannelImpl
>
> * lib/leveldb-0.5.jar
>
> Explanation...
> 72 sun.reflect.ReflectionFactory
>
> * lib/jboss-marshalling-1.4.4.Final.jar
>
> Explanation...
> 73 sun.reflect.ReflectionFactory$GetReflectionFactoryAction
>
> * lib/jboss-marshalling-1.4.4.Final.jar
>
> Explanation...
>
>
> Identify External Replacements
>
> You should use a separate third-party library that performs this
> functionality.
>
> ID Internal API (grouped by package) Used By Identify External
> Replacement
>
>
> ------------------------------------------------------------------------
>
>
> On 24/09/2014 08:55, Rory O'Donnell Oracle, Dublin Ireland wrote:
>> Hi Galder,
>>
>> 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], along with
>> instructions on how to run the jdeps analysis tool yourself .
>>
>> As part of the ongoing development of JDK 9, I would like to
>> encourage migration from JDK-internal APIs towards the supported Java
>> APIs. I have prepared a report for your project rele ase
>> infinispan-6.0.2 based on the jdeps output.
>>
>> The report is attached to this e-mail.
>>
>> For anything where your migration path is unclear, I would appreciate
>> comments on the JDK-internal API usage patterns in the attached jdeps
>> report - in particular comments elaborating on the rationale for them
>> - either to me or on this mailing list.
>>
>> Finding suitable replacements for unsupported interfaces is not
>> always straightforward, which is why I am reaching out to you early
>> in the JDK 9 development cycle so you can give feedback about new
>> APIs that may be needed to facilitate this exercise.
>>
>> Thank you in advance for any efforts and feedback helping us make JDK
>> 9 better.
>>
>> Rgds,Rory
>>
>> [0]
>> https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
>>
>>
>> --
>> Rgds,Rory O'Donnell
>> Quality Engineering Manager
>> Oracle EMEA , Dublin, Ireland
>>
>>
>>
>>
>
> --
> Rgds,Rory O'Donnell
> Quality Engineering Manager
> Oracle EMEA , Dublin, Ireland
>
>
>
>
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20141010/68d38cac/attachment-0001.html
More information about the infinispan-dev
mailing list