RFR: JDK-8244093 Move all IDE support into coherent structure in make directory

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue May 19 11:39:51 UTC 2020


On 2020-05-19 12:41, Maurizio Cimadamore wrote:
> The move looks good - but afaik, Netbeans also used to have some 
> langtools-specific project files.
I'm not sure what you mean. There used to be three netbeans IDE project; 
one for Hotspot, one for Langtools and one for the "JDK" (read: 
corelibs). I removed the JDK one, which is not needed anymore. The 
langtools netbeans files are still present in v2 of my patch at the new 
location make/ide/netbeans/langtools. (And the Hotspot files, as well).

I see now that I did not post the URL to the actual new webrev, so I 
understand if things sounded confusing just from what I wrote in the mail.
>
> There's also the topic of where to put source files that are in 
> support of the IDE. For instance there are a couple of Ant task which 
> used to support netbeans, and another to support Intellij (to provide 
> better logging). These still live (I think) in make/langtools under 
> proposed refactoring. Is that what we want?
For now, yes. Ideally, I'd get all IDE files in places, but since the 
langtools stuff still depens on the old ant build, I will not - per your 
request - touch them at this time. On a medium term, with Jan's 
intra-module depend enhancements, and the incremental build refinements 
I'm working on, I hope we can render the need for an ant build moot. 
Also, as part of the project of reorganizing the buildtools (which too, 
are spread all over the place), the tools from langtools/src that are 
actually used in the build process, will migrate away. At that point, we 
can take a renewed look at how to think about the langtools directory.
> Overall, it seems to me that the big win of this refactoring is to put 
> all JDK templates in one place (e.g. make/ide) which will make it more 
> discoverable for programmers. I'm not super convinced that we need to 
> do anything for not-so-commonly used projects such as langtools - 
> which are effectively used by selected developers. Applying any 
> refactoring there seems to be in the land of diminishing returns, 
> especially with the prospect that, one day, such projects will be 
> rendered useless by an improved makefile support for (incrementally) 
> building single components.
The main reason for this refactoring is to clear up all the "junk" that 
is spread out all over the make directories. Unfortunately, the "make" 
directory has, since historic times, been seen as a nice-to-have "misc" 
category where you can just put stuff willy-nilly and not care about the 
consequences. I've been working for a long time trying to get things a 
bit more organized. As such, I don't expect to see any particular gain 
for any specific IDE support implementation, but a gain for the general 
ability for the build system to be comprehensible, and to have a 
starting point for getting more and more integrated and improved support 
for a variety of IDEs for a variety of use cases.

/Magnus

>
> Maurizio
>
> On 18/05/2020 15:50, Magnus Ihse Bursie wrote:
>> Hi all,
>>
>> Sorry for the long time to follow up on this patch.
>>
>> From the reviewers' feedback, I have now restored all files to 
>> make/langtools, except for those in the netbeans and intellij 
>> directories. This also meant that in the make/ide/idea/langtools 
>> directory there were now only an "intellij" directory. This seemed 
>> awkward, so I moved everything up one level, effectively scrapping 
>> the "intellij" directory. Paths has been changed accordingly in 
>> make/langtools and make/ide/*/langtools.
>>
>> I also removed make/ide/netbeans/jdk. No-one seemed to be countering 
>> Jan's claim that it's unused. Instead, we got testimony on how 
>> Netbeans can be setup without any specific support from the build 
>> system. I think this excellent information should be properly 
>> documented. I've created JDK-8245210 for this, and I hope I can 
>> enroll the help of Jan and Brad to get this correctly documented.
>>
>> No other changes, outside the langtools files and 
>> make/ide/netbeans/jdk has been made, compared to the previous version.
>>
>> /Magnus
>>
>> On 2020-04-29 13:06, Jan Lahoda wrote:
>>> I am not sure if anyone is still using make/jdk/netbeans. Apache 
>>> NetBeans does not (should not) need these config files, it supports 
>>> OpenJDK modules out of the box (with some tweaks/dependencies on 
>>> make/langtools/** to speed up langtools build).
>>>
>>> As Maurizio, there may be some need to move the "fast" langtools 
>>> build more carefully. I'll try to take a look later, unless some 
>>> else wants to. Although, a little independently, I wonder somewhat 
>>> if there's an opportunity to further speed up the ordinary make 
>>> build in incremental environment to reduce the need for a "fast" 
>>> langtools build. E.g. by enhancing the current Depend javac plugin, 
>>> and possibly optionally disabling the interim langtools build. This 
>>> could improve incremental build behavior for other modules (like 
>>> java.base or java.desktop) as well.
>>>
>>> Jan
>>>
>>> On 29. 04. 20 12:36, Magnus Ihse Bursie wrote:
>>>> The IDE support in OpenJDK unfortunately leaves a lot to be 
>>>> desired. There have been a garden variety of attempt to support a 
>>>> specific IDE for a specific part of the code base, cluttered all 
>>>> over the code base.
>>>>
>>>> This patch is a first attempt go get one ring, eh..., structure, to 
>>>> rule them all.
>>>>
>>>> I have moved all IDE project creators into the following structure:
>>>>
>>>> make/ide/<ide>/<part of the code>
>>>>
>>>> where <part of the code> is one of currently "hotspot", "langtools" 
>>>> or "jdk", and <ide> is one of "vscode", "idea", "netbeans" or 
>>>> "vistualstudio".
>>>>
>>>> This will not magically improve IDE support, but will at least make 
>>>> it clearer what we have and what we are missing.
>>>>
>>>> Ownership of the IDE support is notoriously vague. I've cc:ed a 
>>>> bunch of people who has shown interest and/or submitted fixes to 
>>>> some of the IDE projects according to the hg history. I'd 
>>>> appreciate it if anyone who is interested in a particular case for 
>>>> IDE support can verify that it still works. I've tried my best to 
>>>> make sure all targets can run without errors, but I cannot verify 
>>>> that the IDE environment themselves are correct.
>>>>
>>>> If you know about an IDE project that is no longer relevant, and 
>>>> should be removed instead of shuffled around, please let me know!
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8244093
>>>> WebRev: 
>>>> http://cr.openjdk.java.net/~ihse/JDK-8244093-move-ide-support/webrev.01 
>>>>
>>>>
>>>> /Magnus
>>




More information about the build-dev mailing list