[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