Re: Plugin module development with daily build on JDK9

geertjan wielenga <[email protected]> Sat, 22 Apr 2017 14:49:17 +0200
Newsgroups gmane.comp.java.netbeans.devel
Organization Oracle Corporation
Message-ID <[email protected]>
https://developer.jboss.org/blogs/scott.stark/2017/04/14/critical-deficiencies-in-jigsawjsr-376-java-platform-module-system-ec-member-concerns?_sscc=t

Some more thoughts, very recent, on Jigsaw.

Gj


On 15-3-2017 13:12, Svata Dedic wrote:
> Hi,
>
> The first thing to understand is that NB 9 release will be still
> compiled against JDK8.
>
> [*] So while NB 9 primarily aims support development for JDK9,
> developing *NB-based applications* will be most probably well tested
> only for JDK8 target.
> Specifically the NetBeans own buildsystem is not (as a whole) prepared
> to handle JDK9. Checks for various supplemental JARs fail as JDK has
> changed layout etc. Many Ant tasks are totally unaware of different ways
> how to read classes in JDK9 (nor jars, bud jmods), so they fail as well.
> The harness used to run/debug applications may lack --add-opens,
> --add-module switches, so the application may crash on reflective access
> etc. You are welcome to provide patches - don't forget about Apache Ant
> project as well.
>
> Second. Given the definition of JDK9 modular system as specified *at
> this point*, Jigsaw does not support *directly* many many features of NB
> module system. Just to name few - OpenIDE-Module-Needs, Recommends,
> Hide-Classpath-Packages ... entire versioning scheme is also out of
> scope of (current) Jigsaw, I think.
>
> So there is a lot of decisions to make, what features to keep, which
> ones can be approximated using Jigsaw, which need to be dropped and what
> will be the effect on NetBeans platform -- all those are nontrivial to
> decide, and even harder to implement. "A tool that replaces XML based
> definition" is a great underestimation of the problem, I am afraid.
>
> Back to the real and immediate problems.
>
> 1/ allowing source level 9 for NetBeans module development is easy to
> code, but because of [*], it may help but many corner cases handled by
> harness will simply fail. I would prefer consistency ("NB modules must
> be developed for JDK8 platform") over bleeding edge here.
> Again - contributions are welcome, as always.
>
> 2/ I need more information on that. I was able to _open_ any modules
> (Nb, samples) when running on JDK9 - but immediately run into issues in
> editor - these are being fixed right now.
> If you were not able to _open_ a module project - please elaborate /
> send logs / file issues.
>
> 3/ What does mean "dependencies do not work" ? If the editor marks
> identifier from the dependency as error/unknown - I've found that
> yesterday, and it is being fixed. The key point is that the module can
> be compiled, just the editor turned mad.
> If your observations are different - please elaborate.
>
> Thanks for the testing !
> -Svata
>
> Dne 15.3.2017 v 08:30 Peter Nabbefeld napsal(a):
>> Hello Martin,
>>
>> sorry, seems there's a problem with communication via Gmane.
>>
>> After re-thinking about the problem, it seems Java 9 is used for syntax
>> and dependency checking when running the dev build on JDK 9 (so it
>> becomes the default VM) - could You please check this?
>>
>> For NB modules: For which release is JDK 9 support planned for NB
>> modules? I'd guess You need a tool then to replace the XML based
>> dependency mechanism by modules-info.java (and fill this file with the
>> correct dependencies).
>>
>> Kind regards
>> Peter
>>
>>
>> Am 14.03.2017 um 16:06 schrieb Martin Balin:
>>> Peter,
>>> When you say "modules" do you mean NetBeans modules or JDK9 modules?
>>> NetBeans modules have to be developed for JDK8 platform, NB 9 will be
>>> built by JDK8.
>>> Martin
>>>
>>> On 13.3.2017 16:36, Peter Nabbefeld wrote:
>>>> No problem with JDK 8.
>>>>
>>>> Regards
>>>> P.
>>>>
>>>> Am 13.03.2017 um 15:55 schrieb Peter Nabbefeld:
>>>>> Hello Martin,
>>>>>
>>>>> (comments inlined)
>>>>>
>>>>> Am 13.03.2017 um 09:48 schrieb Martin Balin:
>>>>>> Hello Peter,
>>>>>> I've tried to open, compile and debug several module projects -
>>>>>> Java SE
>>>>>> with only 1 module inside dependencies among them defined. I've used
>>>>>> these projects several times in NB 9 dev builds. It works.
>>>>>> Can you file a bug for it? Exception,...
>>>>>>
>>>>> So, if it works for You, we should probably first find out about the
>>>>> differences. Did You use the same build? Probably it has to do with the
>>>>> default JDK, did You run NB on JDK9?
>>>>>
>>>>> BTW, I'm using Arch Linux.
>>>>>
>>>>>
>>>>>> And this is a development build, still far from release and undergoing
>>>>>> major update for JDK9 so it might not work and it is not guaranteed it
>>>>>> will work.
>>>>>>
>>>>> That's why I didn't file a bug yet.
>>>>>
>>>>> Kind regards
>>>>> P.
>>>>>
>>>>>> Regards,
>>>>>> Martin
>>>>>>
>>>>>> On 13.3.2017 08:21, Peter Nabbefeld wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> as the JDK9 branch has been merged into default:
>>>>>>> How can I use it for module development?
>>>>>>>
>>>>>>> I'm running netbeans-dev-201703120002 on Java9, with the following
>>>>>>> results:
>>>>>>> 1. I cannot set the source level of modules to Java 9.
>>>>>>> 2. I cannot open existing modules (which worked until merge)
>>>>>>> 3. New modules can be created. However, dependencies don't work
>>>>>>> (which
>>>>>>> is essentially the same issue as [2])
>>>>>>>
>>>>>>> [2] IMHO is most important, currently - sth. is broken in
>>>>>>> dependencies
>>>>>>> management.
>>>>>>>
>>>>>>> Kind regards
>>>>>>> Peter
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>