Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id EFAD9200C41 for ; Fri, 24 Mar 2017 18:22:38 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id EE41B160B93; Fri, 24 Mar 2017 17:22:38 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 16A68160B75 for ; Fri, 24 Mar 2017 18:22:37 +0100 (CET) Received: (qmail 99989 invoked by uid 500); 24 Mar 2017 17:22:37 -0000 Mailing-List: contact dev-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list dev@ignite.apache.org Received: (qmail 99960 invoked by uid 99); 24 Mar 2017 17:22:37 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Mar 2017 17:22:37 +0000 Received: from [192.168.75.184] (c-73-222-138-29.hsd1.ca.comcast.net [73.222.138.29]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id D46761A0185 for ; Fri, 24 Mar 2017 17:22:36 +0000 (UTC) From: Denis Magda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\)) Subject: Re: Should we take care of Java 9 in Ignite 2.0 scope? Date: Fri, 24 Mar 2017 10:22:35 -0700 References: <8199DD25-985D-4F03-AC8C-7EFAF316A127@apache.org> <35D39810-A2F8-4CDC-BAF6-588FA580F005@apache.org> <27BAD8DF-A755-45E9-A7CD-0A89B60B782A@apache.org> <3403C32E-522D-4630-B02C-603E27D38854@apache.org> <10CD02A1E92EF946.19d9dc2b-e2ac-4ff7-9a0e-dd3cee154df3@mail.outlook.com> To: dev@ignite.apache.org In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3259) archived-at: Fri, 24 Mar 2017 17:22:39 -0000 Evgenii, Thanks for the investigation. Could you update the ticket with all of = your findings and suggestions? If you feel you can=E2=80=99t fix it by 2.0 then let=E2=80=99s do it in = the next minor release like 2.x. I don=E2=80=99t think that we introduce = any breaking compatibilities when JDK 9 support is added later. Do you = think so as well? =E2=80=94 Denis > On Mar 24, 2017, at 9:24 AM, Evgenii Zhuravlev = wrote: >=20 > Igniters, >=20 > I found that maven-war-plugin, that used in ignite-websphere-test = doesn't > work with java 9. Here is issue: > https://issues.apache.org/jira/browse/MWAR-397.They have workaround = with > setting MAVEN_OPTS, but this workaround doesn't fit us. >=20 > 2017-03-24 0:51 GMT+03:00 zixu mo : >=20 >>=20 >>=20 >> JB IDEA2017.1 released, support jdk 9. >>=20 >>=20 >>=20 >>=20 >> On Fri, Mar 24, 2017 at 12:14 AM +0800, "Anton Vinogradov" < >> avinogradov@gridgain.com> wrote: >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >> Denis, >>=20 >> I'm not sure, but javac usage seems to be not our but IDE "problem". >> No one call javac directly, AFAIK. >>=20 >> So, any --add-exports can be added to wrapping maven, .bat/.sh or IDE >> settings. >> I'm pretty sure JB's IDEA will handle this right after Java9 release = :) >>=20 >> On Wed, Mar 22, 2017 at 12:19 PM, Anton Vinogradov wrote: >>=20 >>> Denis, >>>=20 >>> I'm not sure, but javac usage seems to be not our but IDE "problem". >>> No one call javac directly, AFAIK. >>>=20 >>> So, any --add-exports can be added to wrapping maven, .bat/.sh or = IDE >>> settings. >>> I'm pretty sure JB's IDEA will handle this right after Java9 release = :) >>>=20 >>> On Wed, Mar 22, 2017 at 1:43 AM, Denis Magda wrote: >>>=20 >>>> For using internal classes that not exported by default, we will = need to >>>> add new args(--add-exports) when compiling (javac) *and* when = running >>>> (java >>>> ). >>>> Is it ok? >>>>=20 >>>>=20 >>>> Anton, are you fine with this approach? >>>>=20 >>>> =E2=80=94 >>>> Denis >>>>=20 >>>> On Mar 21, 2017, at 11:05 AM, Evgenii Zhuravlev >>>> wrote: >>>>=20 >>>> Denis, >>>>=20 >>>> I've found that some internal classes like sun.misc.SharedSecrets, >>>> sun.misc.URLClassPath, sun.misc.PerfCounter, sun.misc.Cleaner = changed >>>> their >>>> packages. I can create wrapper for this classes with 2 modules, = that can >>>> be >>>> enabled by profiles for java9 and java7-8. >>>> For using internal classes that not exported by default, we will = need to >>>> add new args(--add-exports) when compiling (javac) *and* when = running >>>> (java >>>> ). >>>> Is it ok? >>>>=20 >>>>=20 >>>> Also, there are a two different Unsafe classes in java 9 - >>>> sun.misc.Unsafe >>>> & jdk.internal.misc.Unsafe, but both of them doesn't have = monitorEnter & >>>> monitorExit methods, that we use in >>>> org.apache.ignite.internal.util.GridUnsafe. What should I do with = this >>>> case? >>>>=20 >>>>=20 >>>>=20 >>>> 2017-03-21 11:21 GMT+03:00 =D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9= =D0=96=D1=83=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=B2 : >>>>=20 >>>> Denis, >>>>=20 >>>> I found some recommendations on openjdk wiki: >>>> https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+ >> Analysis+Tool >>>>=20 >>>> 2017-03-20 20:44 GMT+03:00 Denis Magda : >>>>=20 >>>> Referring to your report only the following API was removed = completely. >>>> The rest is still deprecated and stowed in special JDK 9 modules. >>>>=20 >>>>=20 >>>> "org.apache.ignite.internal.processors.hadoop.HadoopClassLoader" = -> >>>> "sun.misc.PerfCounter (JDK internal API (JDK removed internal = API))=E2=80=9D; >>>>=20 >>>>=20 >>>> "org.apache.ignite.internal.processors.platform.memory.Pla >>>> tformMemoryPool" >>>> -> "sun.misc.Cleaner (JDK internal API (JDK removed internal = API))=E2=80=9D; >>>>=20 >>>> "org.apache.ignite.internal.util.nio.GridNioServer$Abstrac >>>> tNioClientWorker" >>>> -> "sun.misc.Cleaner (JDK internal API (JDK removed internal = API))"; >>>>=20 >>>>=20 >>>> "org.apache.ignite.internal.processors.rest.protocols.GridRe >>>> stProtocolAdapter" >>>> -> "sun.misc.BASE64Encoder (JDK internal API (JDK removed internal >> API))=E2=80=9D; >>>>=20 >>>> "org.apache.ignite.internal.util.IgniteUtils" -> >>>> "sun.misc.JavaNetAccess (JDK internal API (JDK removed internal = API))=E2=80=9D; >>>>=20 >>>>=20 >>>> "org.apache.ignite.internal.util.IgniteUtils" -> >>>> "sun.misc.SharedSecrets (JDK internal API (JDK removed internal = API))=E2=80=9D; >>>>=20 >>>>=20 >>>> "org.apache.ignite.internal.util.IgniteUtils" -> >>>> "sun.misc.URLClassPath (JDK internal API (JDK removed internal = API))=E2=80=9D; >>>>=20 >>>>=20 >>>>=20 >>>> *Evgeniy*, does Oracle officially suggest replacements for deleted = APIs? >>>> Probably it=E2=80=99s a matter of day to do a switch. >>>>=20 >>>>=20 >>>> =E2=80=94 >>>> Denis >>>>=20 >>>> On Mar 20, 2017, at 9:57 AM, =D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9= =D0=96=D1=83=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=B2 >>>>=20 >>>> wrote: >>>>=20 >>>>=20 >>>> Igniters, >>>>=20 >>>> There are a few JDK internal APIs removed in JDK 9, that we use in >>>>=20 >>>> ignite. We need to decide what to do with these dependencies. Here = is a >>>> list of dependencies after using jdeps >>>>=20 >>>>=20 >>>> 2017-01-26 12:07 GMT+03:00 Anton Vinogradov > >>>>>> : >>>>=20 >>>> Denis, >>>>=20 >>>> I've created issue > >>>> https://issues.apache.org/jira/browse/IGNITE-4615>> related >>>>=20 >>>> to discussion. >>>> We have a lot of legacy code inside pom.xml files. One of legacy = issues >>>>=20 >>>> is >>>>=20 >>>> a tools.jar usage. >>>> So, it will be nice to fix this as well. >>>>=20 >>>> On Thu, Jan 26, 2017 at 2:54 AM, Denis Magda > >>>>>> wrote: >>>>=20 >>>>=20 >>>> Well, the build fails almost immediately on the latest JDK 9. >>>>=20 >>>> This is the reason (https://issues.jenkins-ci.org >>>>=20 >>>> /browse/JENKINS-25993 > >>>> ). >>>>=20 >>>>=20 >>>> [ERROR] Failed to execute goal on project ignite-tools: Could not >>>>=20 >>>> resolve >>>>=20 >>>> dependencies for project org.apache.ignite:ignite-tools >>>>=20 >>>> :jar:2.0.0-SNAPSHOT: >>>>=20 >>>> Could not find artifact com.sun:tools:jar:9-ea at specified path >>>> /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/.. >>>>=20 >>>> /lib/tools.jar >>>>=20 >>>> -> [Help 1] >>>>=20 >>>>=20 >>>> If to tweak pom files cleaning out references to tools.jar then = other >>>> exceptions arise. >>>>=20 >>>> *Anton V*, could try to build the master on your side applying all = the >>>> required changes to pom files? I don=E2=80=99t think I=E2=80=99ll = do everything >>>>=20 >>>> correctly. >>>>=20 >>>> If the build goes through at least with minor modifications then = this >>>>=20 >>>> would >>>>=20 >>>> be a good sign. >>>>=20 >>>> =E2=80=94 >>>> Denis >>>>=20 >>>>=20 >>>> On Jan 25, 2017, at 3:22 PM, Denis Magda > >>>> dmagda@apache.org>> wrote: >>>>=20 >>>>=20 >>>> Vovan, >>>>=20 >>>> As far as I understand, under the module they mean new >>>>=20 >>>> component/feature >>>>=20 >>>> of Java 9 [1]. If you don=E2=80=99t use Java modules then there = shouldn=E2=80=99t be >>>>=20 >>>> any >>>>=20 >>>> issues at all. >>>>=20 >>>> In any case, let me try to build the project with JDK 9 that has >>>>=20 >>>> passed >>>>=20 >>>> feature complete phase. >>>>=20 >>>> [1] http://openjdk.java.net/projects/jigsaw/spec/sotms/#defining >>>>=20 >>>> -modules > g-modules> < >>>>=20 >>>> = http://openjdk.java.net/projects/jigsaw/spec/sotms/#defining-modules >>>>=20 >>>>>=20 >>>>=20 >>>>=20 >>>> =E2=80=94 >>>> Denis >>>>=20 >>>> On Jan 25, 2017, at 5:47 AM, Vladimir Ozerov > >>>>>> wrote: >>>>=20 >>>>=20 >>>> Igniters, >>>>=20 >>>> Please see this article [1] from Kotlin guys. They had to re-pack >>>>=20 >>>> public >>>>=20 >>>> API because Java 9 doesn't allow several modules to share the same >>>>=20 >>>> public >>>>=20 >>>> package. Looks like this limitation could impact us at some point, = so >>>>=20 >>>> that >>>>=20 >>>> we will not be able to support Java 9 without breaking API changes. >>>>=20 >>>> May be it makes sense to perform some initial investigation of Java = 9 >>>> impact before AI 2.0 release, so that we can minimize (or at least >>>> estimate) potential future impact? >>>>=20 >>>> Vladimir. >>>>=20 >>>> [1] >>>> https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1- < >>>>=20 >>>> https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-> >>>>=20 >>>> whats-coming-in-the-standard-library/ >>>>=20 >>>>=20 >>>>=20 >>>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20