This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 124910

Summary: Add an IDE feature to create a customized platform distribution
Product: apisupport Reporter: fabriziogiudici <fabriziogiudici>
Component: ProjectAssignee: Martin Kozeny <mkozeny>
Status: NEW ---    
Severity: blocker CC: puce, tomwheeler
Priority: P3 Keywords: PLATFORM
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:

Description fabriziogiudici 2008-01-08 19:24:18 UTC
Since platform binaries are not being distributed any longer, there's the need for RCP developers to get them in some other way. For me it's important to have 
my target platform explicitly built (and checked into my subversion) rather than depending on the IDE platform, for reproducibility issues (in this way I can 
change/update the IDE without fear of touching the distribution).

Perhaps the best one would be to provide an IDE feature when one could select the modules to include the platform, the IDE would suggest the missing 
modules required for dependencies, and create the desired platform in a target directory. A backing ant script that can be used in batch mode would be also 
a good thing.
Comment 1 tomwheeler 2008-01-10 16:33:24 UTC
I have the same need.  I currently use a custom Ant script to check out and build a specific subset of the NetBeans
sources.  The subset is more than what was in the "platform" but less than what is in any of the IDE distributions
available.  The script is inspired by the platform.xml script in the dvbcentral project:
 
    http://dvbcentral.cvs.sourceforge.net/dvbcentral/sources/platform.xml

It would be nice, though, if I could also include NBM files for modules from other projects that I do not want to build
but which I want to include in my project.  Rudolf Balada describes a technique for doing this here:

   http://blogs.sun.com/Chreston/entry/building_product_on_top_of

Perhaps the build process could fetch a list of NBM files (using an Ant CVS or HTTP get task) and include them in the build.
Comment 2 tomwheeler 2008-01-10 16:39:10 UTC
I also meant to add that it is currently possible to build against a platform checked out from a source control system
instead of against the IDE itself.  The suite's platform.properties file should have these two properties set:

# location of the custom platform to build against
# in this case, it's in a subdirectory of the suite called "platform"
netbeans.dest.dir=${suite.dir}/platform

# location of the build harness to use
# in this case, it's in a subdirectory of the platform called "harness"
harness.dir=${netbeans.dest.dir}/harness

And the "nbplatform.active" (or similarly named) property must also be removed.  Note that this does not work reliably
in versions of NetBeans prior to 6.0 beta 1.
Comment 3 Jesse Glick 2008-08-06 03:50:05 UTC
If you ignore "perhaps the build process could fetch a list of NBM files" then a very simple implementation would be an
action on a suite "Freeze Platform" which would copy enabled clusters (minus files associated with disabled modules)
into ${suite.dir}/platform/ and make the mentioned changes to platform.properties. Not exactly consistent with the UI of
sharable Java SE projects, but probably workable.
Comment 4 tomwheeler 2008-08-06 20:24:52 UTC
I'm willing to ignore "perhaps the build process could fetch a list of NBM files" in this case, because I later filed 
that request in a separate issue (#125522).  

Comment 5 puce 2008-12-08 10:12:57 UTC
I second that either the platform binaries or a one-step button to create the platform out of the IDE is really required
for easy set-up of a project in a version control system and build by a continuous integration system.

+1 Vote
Comment 6 rmichalsky 2008-12-08 14:40:02 UTC
The last comments, starting at the one from Jesse, seem fairly easy to implement. Maybe little hard to find as most
users will IMHO look for this feature somewhere in NB platform manager, not in suite project, but existing UI and
relative location to suite dir are probably worth it. UI for depending suites (issue #152960) could also offer clusters
from custom platform. 

Fabrizzio, would that fulfill your original proposal? Not sure what "have my target platform explicitly built" precisely
means. Did you mean copying to separate platform as described above or really building from sources?

If so, I'd plan it for 7.0.