<div dir="ltr">Hi Rory<div><br></div><div>Galder is on PTO for another week, so I'll try to answer instead.</div><div><br></div><div>We only use sun.misc.Unsafe directly, in order to implement a variation of Doug Lea's ConcurrentHashMapV8 that accepts a custom Equivalence (implementation of equality/hashCode). I guess we'll have to switch to AtomicFieldUpdaters if we want it to work with JDK 9, and possibly move to the volatile extensions once they are implemented.</div><div><br></div><div>The rest of the internal class usages seem to be from our dependencies on WildFly, JBoss Marshalling, LevelDB, Smooks, and JBoss MicroContainer. Smooks and JBoss MicroContainer likely won't see any updates for JDK 9, but they're only used in the demos so they're not critical. JBoss Marshalling is used in the core, however, so we'll need a release from them before we can run anything on JDK 9.</div><div><br></div><div>Cheers</div><div>Dan</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 10, 2014 at 1:01 PM, Rory O'Donnell Oracle, Dublin Ireland <span dir="ltr"><<a href="mailto:rory.odonnell@oracle.com" target="_blank">rory.odonnell@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Hi Galder,<br>
<br>
Did you have time to review the report, any feedback ?
<br>
<br>
Rgds,Rory
<br><div><div class="h5">
<br>
<div>On 24/09/2014 09:21, Rory O'Donnell
Oracle, Dublin Ireland wrote:<br>
</div>
<blockquote type="cite">
Below is a text output of the report for infinispan-6.0.2.<br>
<br>
Rgds,Rory<br>
<br>
<hr size="2" width="100%">
<h1>JDK Internal API Usage Report for infinispan-6.0.2.Final-all</h1>
<p> 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 <a href="http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html" target="_blank">the
Java team explained in 1996</a>. 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. </p>
<p> 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. </p>
<p> This report was generated by <a href="http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html" target="_blank">jdeps</a>
through static analysis of artifacts: it does not identify any
usage of those APIs through reflection or dynamic bytecode. You
may also <a href="https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool" target="_blank">run
jdeps on your own</a> if you would prefer. </p>
<p> Summary of the analysis of the jar files within
infinispan-6.0.2.Final-all: </p>
<ul>
<li> Numer of jar files depending on JDK-internal APIs: 10 </li>
<li> Internal APIs that have known replacements: 0 </li>
<li> Internal APIs that have no supported replacements: 73 </li>
</ul>
<h3>APIs that have <a href="https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool" target="_blank">
known replacements</a>:</h3>
<table border="1">
<tbody>
<tr>
<th>ID</th>
<th>Replace Usage of</th>
<th>With</th>
<th>Inside</th>
</tr>
</tbody>
</table>
<h3>JDK-internal APIs without supported replacements:</h3>
<table border="1">
<tbody>
<tr>
<th>ID</th>
<th>Internal APIs (do not use)</th>
<th>Used by</th>
</tr>
<tr>
<td rowspan="2">1</td>
<td>com.sun.org.apache.xml.internal.utils.PrefixResolver</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">2</td>
<td>com.sun.org.apache.xpath.internal.XPath</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">3</td>
<td>com.sun.org.apache.xpath.internal.XPathContext</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">4</td>
<td>com.sun.org.apache.xpath.internal.objects.XBoolean</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">5</td>
<td>com.sun.org.apache.xpath.internal.objects.XNodeSet</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">6</td>
<td>com.sun.org.apache.xpath.internal.objects.XNull</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">7</td>
<td>com.sun.org.apache.xpath.internal.objects.XNumber</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">8</td>
<td>com.sun.org.apache.xpath.internal.objects.XObject</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">9</td>
<td>com.sun.org.apache.xpath.internal.objects.XString</td>
<td>
<ul>
<li>lib/freemarker-2.3.11.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">10</td>
<td>org.w3c.dom.html.HTMLAnchorElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">11</td>
<td>org.w3c.dom.html.HTMLAppletElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">12</td>
<td>org.w3c.dom.html.HTMLAreaElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">13</td>
<td>org.w3c.dom.html.HTMLBRElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">14</td>
<td>org.w3c.dom.html.HTMLBaseElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">15</td>
<td>org.w3c.dom.html.HTMLBaseFontElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">16</td>
<td>org.w3c.dom.html.HTMLBodyElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">17</td>
<td>org.w3c.dom.html.HTMLButtonElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">18</td>
<td>org.w3c.dom.html.HTMLCollection</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">19</td>
<td>org.w3c.dom.html.HTMLDListElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">20</td>
<td>org.w3c.dom.html.HTMLDirectoryElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">21</td>
<td>org.w3c.dom.html.HTMLDivElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">22</td>
<td>org.w3c.dom.html.HTMLDocument</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">23</td>
<td>org.w3c.dom.html.HTMLElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">24</td>
<td>org.w3c.dom.html.HTMLFieldSetElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">25</td>
<td>org.w3c.dom.html.HTMLFontElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">26</td>
<td>org.w3c.dom.html.HTMLFormElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">27</td>
<td>org.w3c.dom.html.HTMLFrameElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">28</td>
<td>org.w3c.dom.html.HTMLFrameSetElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">29</td>
<td>org.w3c.dom.html.HTMLHRElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">30</td>
<td>org.w3c.dom.html.HTMLHeadElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">31</td>
<td>org.w3c.dom.html.HTMLHeadingElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">32</td>
<td>org.w3c.dom.html.HTMLHtmlElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">33</td>
<td>org.w3c.dom.html.HTMLIFrameElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">34</td>
<td>org.w3c.dom.html.HTMLImageElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">35</td>
<td>org.w3c.dom.html.HTMLInputElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">36</td>
<td>org.w3c.dom.html.HTMLIsIndexElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">37</td>
<td>org.w3c.dom.html.HTMLLIElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">38</td>
<td>org.w3c.dom.html.HTMLLabelElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">39</td>
<td>org.w3c.dom.html.HTMLLegendElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">40</td>
<td>org.w3c.dom.html.HTMLLinkElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">41</td>
<td>org.w3c.dom.html.HTMLMapElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">42</td>
<td>org.w3c.dom.html.HTMLMenuElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">43</td>
<td>org.w3c.dom.html.HTMLMetaElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">44</td>
<td>org.w3c.dom.html.HTMLModElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">45</td>
<td>org.w3c.dom.html.HTMLOListElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">46</td>
<td>org.w3c.dom.html.HTMLObjectElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">47</td>
<td>org.w3c.dom.html.HTMLOptGroupElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">48</td>
<td>org.w3c.dom.html.HTMLOptionElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">49</td>
<td>org.w3c.dom.html.HTMLParagraphElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">50</td>
<td>org.w3c.dom.html.HTMLParamElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">51</td>
<td>org.w3c.dom.html.HTMLPreElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">52</td>
<td>org.w3c.dom.html.HTMLQuoteElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">53</td>
<td>org.w3c.dom.html.HTMLScriptElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">54</td>
<td>org.w3c.dom.html.HTMLSelectElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">55</td>
<td>org.w3c.dom.html.HTMLStyleElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">56</td>
<td>org.w3c.dom.html.HTMLTableCaptionElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">57</td>
<td>org.w3c.dom.html.HTMLTableCellElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">58</td>
<td>org.w3c.dom.html.HTMLTableColElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">59</td>
<td>org.w3c.dom.html.HTMLTableElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">60</td>
<td>org.w3c.dom.html.HTMLTableRowElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">61</td>
<td>org.w3c.dom.html.HTMLTableSectionElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">62</td>
<td>org.w3c.dom.html.HTMLTextAreaElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">63</td>
<td>org.w3c.dom.html.HTMLTitleElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">64</td>
<td>org.w3c.dom.html.HTMLUListElement</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">65</td>
<td>org.w3c.dom.ranges.DocumentRange</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">66</td>
<td>org.w3c.dom.ranges.Range</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">67</td>
<td>org.w3c.dom.ranges.RangeException</td>
<td>
<ul>
<li>lib/xercesImpl-2.9.1.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">68</td>
<td>sun.misc.Signal</td>
<td>
<ul>
<li>lib/aesh-0.33.7.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">69</td>
<td>sun.misc.SignalHandler</td>
<td>
<ul>
<li>lib/aesh-0.33.7.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">70</td>
<td>sun.misc.Unsafe</td>
<td>
<ul>
<li>lib/avro-1.7.5.jar</li>
<li>lib/guava-12.0.jar</li>
<li>lib/infinispan-commons-6.0.2.Final.jar</li>
<li>lib/mvel2-2.0.12.jar</li>
<li>lib/scala-library-2.10.2.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">71</td>
<td>sun.nio.ch.FileChannelImpl</td>
<td>
<ul>
<li>lib/leveldb-0.5.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">72</td>
<td>sun.reflect.ReflectionFactory</td>
<td>
<ul>
<li>lib/jboss-marshalling-1.4.4.Final.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
<tr>
<td rowspan="2">73</td>
<td>sun.reflect.ReflectionFactory$GetReflectionFactoryAction</td>
<td>
<ul>
<li>lib/jboss-marshalling-1.4.4.Final.jar</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">Explanation...</td>
</tr>
</tbody>
</table>
<h3>Identify External Replacements</h3>
<p>You should use a separate third-party library that performs
this functionality.</p>
<table border="1">
<tbody>
<tr>
<th>ID</th>
<th>Internal API (grouped by package)</th>
<th>Used By</th>
<th>Identify External Replacement</th>
</tr>
</tbody>
</table>
<br>
<hr size="2" width="100%"><br>
<br>
<div>On 24/09/2014 08:55, Rory O'Donnell
Oracle, Dublin Ireland wrote:<br>
</div>
<blockquote type="cite">
Hi Galder,<br>
<br>
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. <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. The list is on the OpenJDK wiki
[0], along with instructions on how to run the jdeps analysis
tool yourself . <br>
<br>
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. <br>
<br>
The report is attached to this e-mail. <br>
<br>
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. <br>
<br>
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. <br>
<br>
Thank you in advance for any efforts and feedback helping us
make JDK 9 better. <br>
<br>
Rgds,Rory <br>
<br>
[0] <a href="https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool" target="_blank">https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool</a>
<br>
<br>
<br>
<pre cols="72">--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
</pre>
</blockquote>
<br>
<pre cols="72">--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
</pre>
</blockquote>
<br>
<pre cols="72">--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
</pre>
</div></div></div>
<br>_______________________________________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br></blockquote></div><br></div>