jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rory O'Donnell Oracle, Dublin Ireland" <rory.odonn...@oracle.com>
Subject Re: Analysis of apache-jmeter-2.11 dependency on JDK-Internal APIs
Date Wed, 24 Sep 2014 10:29:45 GMT
Let me know if the report below is legible ?


  JDK Internal API Usage Report for apache-jmeter-2.11

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 apache-jmeter-2.11:

  * Numer of jar files depending on JDK-internal APIs: 7
  * Internal APIs that have known replacements: 6
  * Internal APIs that have no supported replacements: 63


      APIs that have known replacements
      <https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool>:

ID 	Replace Usage of 	With 	Inside
1 	org.w3c.dom.xpath.XPathEvaluator 	Use javax.xml.xpath @since 1.5 	

  * lib/xalan-2.7.1.jar

2 	org.w3c.dom.xpath.XPathException 	Use javax.xml.xpath @since 1.5 	

  * lib/xalan-2.7.1.jar

3 	org.w3c.dom.xpath.XPathExpression 	Use javax.xml.xpath @since 1.5 	

  * lib/xalan-2.7.1.jar

4 	org.w3c.dom.xpath.XPathNSResolver 	Use javax.xml.xpath @since 1.5 	

  * lib/xalan-2.7.1.jar

5 	org.w3c.dom.xpath.XPathNamespace 	Use javax.xml.xpath @since 1.5 	

  * lib/xalan-2.7.1.jar

6 	org.w3c.dom.xpath.XPathResult 	Use javax.xml.xpath @since 1.5 	

  * lib/xalan-2.7.1.jar


      JDK-internal APIs without supported replacements:

ID 	Internal APIs (do not use) 	Used by
1 	java.awt.peer.ComponentPeer 	

  * lib/bsh-2.0b5.jar

Explanation...
2 	java.awt.peer.TextComponentPeer 	

  * lib/bsh-2.0b5.jar

Explanation...
3 	org.w3c.dom.html.HTMLAnchorElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
4 	org.w3c.dom.html.HTMLAppletElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
5 	org.w3c.dom.html.HTMLAreaElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
6 	org.w3c.dom.html.HTMLBRElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
7 	org.w3c.dom.html.HTMLBaseElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
8 	org.w3c.dom.html.HTMLBaseFontElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
9 	org.w3c.dom.html.HTMLBodyElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
10 	org.w3c.dom.html.HTMLButtonElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
11 	org.w3c.dom.html.HTMLCollection 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
12 	org.w3c.dom.html.HTMLDListElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
13 	org.w3c.dom.html.HTMLDirectoryElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
14 	org.w3c.dom.html.HTMLDivElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
15 	org.w3c.dom.html.HTMLDocument 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
16 	org.w3c.dom.html.HTMLElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
17 	org.w3c.dom.html.HTMLFieldSetElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
18 	org.w3c.dom.html.HTMLFontElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
19 	org.w3c.dom.html.HTMLFormElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
20 	org.w3c.dom.html.HTMLFrameElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
21 	org.w3c.dom.html.HTMLFrameSetElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
22 	org.w3c.dom.html.HTMLHRElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
23 	org.w3c.dom.html.HTMLHeadElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
24 	org.w3c.dom.html.HTMLHeadingElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
25 	org.w3c.dom.html.HTMLHtmlElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
26 	org.w3c.dom.html.HTMLIFrameElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
27 	org.w3c.dom.html.HTMLImageElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
28 	org.w3c.dom.html.HTMLInputElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
29 	org.w3c.dom.html.HTMLIsIndexElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
30 	org.w3c.dom.html.HTMLLIElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
31 	org.w3c.dom.html.HTMLLabelElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
32 	org.w3c.dom.html.HTMLLegendElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
33 	org.w3c.dom.html.HTMLLinkElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
34 	org.w3c.dom.html.HTMLMapElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
35 	org.w3c.dom.html.HTMLMenuElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
36 	org.w3c.dom.html.HTMLMetaElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
37 	org.w3c.dom.html.HTMLModElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
38 	org.w3c.dom.html.HTMLOListElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
39 	org.w3c.dom.html.HTMLObjectElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
40 	org.w3c.dom.html.HTMLOptGroupElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
41 	org.w3c.dom.html.HTMLOptionElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
42 	org.w3c.dom.html.HTMLParagraphElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
43 	org.w3c.dom.html.HTMLParamElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
44 	org.w3c.dom.html.HTMLPreElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
45 	org.w3c.dom.html.HTMLQuoteElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
46 	org.w3c.dom.html.HTMLScriptElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
47 	org.w3c.dom.html.HTMLSelectElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
48 	org.w3c.dom.html.HTMLStyleElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
49 	org.w3c.dom.html.HTMLTableCaptionElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
50 	org.w3c.dom.html.HTMLTableCellElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
51 	org.w3c.dom.html.HTMLTableColElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
52 	org.w3c.dom.html.HTMLTableElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
53 	org.w3c.dom.html.HTMLTableRowElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
54 	org.w3c.dom.html.HTMLTableSectionElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
55 	org.w3c.dom.html.HTMLTextAreaElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
56 	org.w3c.dom.html.HTMLTitleElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
57 	org.w3c.dom.html.HTMLUListElement 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
58 	org.w3c.dom.ranges.DocumentRange 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
59 	org.w3c.dom.ranges.Range 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
60 	org.w3c.dom.ranges.RangeException 	

  * lib/xercesImpl-2.9.1.jar

Explanation...
61 	sun.misc.Unsafe 	

  * lib/jodd-core-3.4.10.jar
  * lib/xstream-1.4.4.jar

Explanation...
62 	sun.net.www.protocol.http.HttpURLConnection 	

  * lib/soap-2.3.1.jar

Explanation...
63 	sun.reflect.ReflectionFactory 	

  * lib/xstream-1.4.4.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 11:27, sebb wrote:
> On 24 September 2014 09:14, Rory O'Donnell Oracle, Dublin Ireland
> <rory.odonnell@oracle.com> wrote:
>> Hi Philippe,
>>
>> 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 release apache-jmeter-2.11 based on the
>> jdeps output.
>>
>> The report is attached to this e-mail.
> We did not get the report - the mailing list drops attachments.
>
> If you can upload the report somewhere public and post the URL, that
> would be great.
> Alternatively, please create a Bugzilla issue [1] and attach the report there.
> Thanks.
>
> [1] http://jmeter.apache.org/issues.html
>
>> 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





Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message