Netbeans and a subset of a JDK workspace

Brad Wetmore Bradford.Wetmore at Sun.COM
Wed Oct 15 18:02:03 PDT 2008


Thanks Daniel.

One of the other current limitations of the default projects was that 
the "j2se" project didn't index the build/<arch>/gensrc directory where 
java/nio/ByteBuffer and friends live (bug 6628175).  I was able to get 
the directories to show up in the file lister, but not hooked into the 
auto-completion/compilation mechanism.  I ended up talking to David 
Bristor, this group's moderator.  He had started working on the gensrc 
problem, but got 1/2 of it finished before he left Sun.  I was able to 
get the second half, so it's working now.

I am now hooking in all the closed source directories as well.

Once everything gets auto-compiled (15-20 minutes) and loaded into 
memory, it's surprisingly fast.  Restarting/scanning current project is 
just under a minute, and expanding the node for the shared sources is 
just under two.  :)  Fortunately, it's not crashing all the time like my 
first experience with NetBeans 4.1!  I don't really have to restrict to 
the files of interest once everything's loaded, it's responsive enough.

Unless I find something that's a showstopper, I'll probably start using 
netbeans for my day-day work.

Brad



daniel fuchs wrote:
> Hi Brad,
> 
> You could have a look at how the make/netbeans/jmx project is
> defined.
> This is a project that only compiles a subset of the jdk sources
> (the JMX sources) put them in a jmx.jar and then prepend that jar
> to the bootclasspath.
> 
> For us using the latest promoted JDK7 build with our work-in-progress
> jmx.jar in the bootclasspath is usually sufficient for 
> developing/testing/debugging purposes.
> 
> 
> Hope this helps,
> 
> -- daniel
> http://blogs.sun.com/jmxetc
> 
> Brad Wetmore wrote:
>> I'd recently drunk a bit (lot?) of the netbeans 6.1 Kool-Aid.  Wow, 
>> what an improvement over 4.1.  I swore that I'd rather die using vi 
>> after that initial netbeans experience, but here I am!  ;)
>>
>> If I open the "jdk/make/netbeans/j2se" project, I might as well walk 
>> away and have lunch.  The internal indexing/compiling of the entire 
>> j2se project simply takes forever on my relatively fast machine, with 
>> the majority of the time being in the internal compilation.  I'd 
>> really like to just limit the sources to specific code of interest 
>> (core libs, networking, security).  (What's this Swing thing I hear 
>> people talk about...  ;) )
>>
>> A big optimization that seems to be working for me is the following:
>>
>> 0)   Install netbeans 6.1
>>
>> 1)   Clone/build (using gnumake) a jdk workspace (say JSN) as usual.
>>
>> 2)   Go to Tools->Java platforms.
>>
>>      Add the built platform but do not include links to the sources.
>>      Call this "jsn-gate:  no sources"  We'll set the source
>>      locations in the project in the next step.
>>
>> 3)   Create a new project from existing sources (jdk/src/shared,
>>      jdk/src/solaris, etc).  Include only the JDK
>>      sources I care about (core libs, networking, security),
>>      everything else will be excluded.  For
>>      example:
>>
>>   =java/lang/, java/math/, java/net/, java/nio/, java/security/,
>>    java/text/, java/util/, javax/crypto/, javax/net/, javax/security/,
>>    javax/smartcardio/, javax/xml/crypto/, sun/io/, sun/launcher/,
>>    sun/misc/, sun/net/, sun/nio/, sun/security/, sun/text/, sun/tools/,
>>    sun/util/, com/sun/security/, com/sun/crypto/, com/sun/net/
>>
>>      In the properties menu for this project, link this project to the
>>      JDK platform just created in step 2 (jsn-gate: no sources).
>>      This seems to internally compile only the sources I care about, not
>>      the whole world!
>>
>>      Use this configuration to do your library development.  When you
>>      want to compile, do so in a separate window (that is, don't use the
>>      netbeans ant build, but use gnumake as usual).
>>
>> 4)   For testing:  Like in 2a, create a new jdk platform based on the
>>      build, but this time include links to all the sources in
>>      open/shared, open/solaris, etc.  Call this "jsn-gate."
>>
>>      Now create a new project with a simple test case.  Link with the
>>      platform "jsn-gate".  Then when you want to debug and step into
>>      the core libraries, you have *ALL* the sources you need, but
>>      without them being internally compiled.  Indexing seems to take
>>      much less time.  This also has all the javadoc as well.
>>
>> Is there an easier/faster way? This environment comes up in 30 seconds 
>> or so, and drilling into the source packages takes about 10 seconds 
>> the first use.
>>
>> Note I am *NOT* an expert in projects, maybe someone has already 
>> figured this out?  Looking at a few of these related projects in the 
>> jdk/make/netbeans directories, they look like they're being done in 
>> the same way as j2se.
>>
>> Thanks,
>>
>> Brad
>> Potential Netbeans Convert-  ;)
> 



More information about the nb-projects-dev mailing list