// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= DevFaqNetBeansPlatformManager
:jbake-type: wiki
:jbake-tags: wiki, devfaq, needsreview
:jbake-status: published
:keywords: Apache NetBeans wiki DevFaqNetBeansPlatformManager
:description: Apache NetBeans wiki DevFaqNetBeansPlatformManager
:toc: left
:toc-title:
:syntax: true

=== How do I set up a NetBeans Platform in the IDE

By default, a NetBeans Platform application will use the developer's copy of the IDE as the platform.  This is certainly easy, but there are also link:http://wiki.netbeans.org/DevFaqGeneralWhereIsPlatformHowToBuild[drawbacks to using the current IDE as a platform]. With that in mind, lets check out, and reference our own copy of the NetBeans source code. This way we can also use breakpoints to step through the NetBeans source code, make changes, and create patches!

At a high level the steps are as follows. First get the NetBeans source code checked out. This part is interesting because what you end up with is a complete copy of the NetBeans source repository on your local file system. The second thing you need to do is build the NetBeans platform using the source repository that you just checked out. This is important because without building the platform you will not have the dependencies required by the platform modules. The next step is to create a new platform reference. Of course the platform to reference will be the one that you just checked out and built. Then finally, in your module suite's project properties, select the platform reference that you just created.

So, in more detail then...

==== 1. Check Out NetBeans Source Code

First link:HgNetBeansSources.asciidoc[get the source code] from the Mercurial repository. In the following example the source code is checked out to a local ~/netbeans-repository/ directory. In this example the tilde is used to represent the home directory of your file system.

So far, so good, but you still need to build the source code so that you have a complete NetBeans Platform, along with all the jar dependencies.

==== 2. Build The NetBeans Source

Building the NetBeans source is very easy, and very satisfying to watch! Just open up your favorite terminal client and navigate to your local repository.

[source,java]
----

cd ~/netbeans-repository/main/
----

Set the available memory that Ant can use:

[source,java]
----

set ANT_OPTS=-Xmx256M
----

 
(or on Unix, `export ANT_OPTS=-Xmx256M`)

Then simply run ant. 

[source,java]
----

ant -Dpermit.jdk6.builds=true
----

Note, I am choosing to build NetBeans using JDK1.6 so I have to explicitly tell NetBeans that I understand that only JDK1.5 is supported.  As of NetBeans 6.9, NetBeans is built with JDK 6, and this flag is no longer needed.

==== 3. Create A New Platform Reference In NetBeans

In order to work with the NetBeans platform that you just built it needs to be added as a platform in the IDE.

1. Click Tools -> NetBeans Platforms (note that the menu item name varies slightly in older versions)

2. Click the "Add Platform..." button in the lower right

3. Locate the platform binary and click OK. In this example the proper path is ~/netbeans-repository/main/nbbuild/netbeans/.

4. You can associate sources and javadoc for this platform using the respective tabs in the platform manager

5. You can also choose which version of the build scripts you want to us on the Harness tab.  You'll usually want to use the version corresponding to that platform.

==== 4. Reference The New NetBeans Platform

Now just select the platform in your module suite's Project Properties. There you will see a Netbeans Platform dropdown box where you can select the platform that you set up.

_Note: I did have to go through and resolve some of the cluster dependencies. That just means that I had to check the dependencies that Netbeans said that other modules needed. Once you get this far it will be very obvious what to do._

==== Appendix: NetBeans Platform And Using JDK1.6

In order to use JDK1.6 with the Netbeans source code we need to tell the Netbeans platform that we understand that only JDK1.5 is supported. What you need to do is create a "user.build.properties" file and put it in the nbbuild directory.

[source,java]
----

touch ~/netbeans-repository/main/nbbuild/user.build.properties
----

Inside the user.build.properties file put the following line.

[source,java]
----

permit.jdk6.builds=true
----

_This tutorial applies to: versions 6.7 and earlier of the NetBeans Java IDE.  _

=== Apache Migration Information

The content in this page was kindly donated by Oracle Corp. to the
Apache Software Foundation.

This page was exported from link:http://wiki.netbeans.org/DevFaqNetBeansPlatformManager[http://wiki.netbeans.org/DevFaqNetBeansPlatformManager] , 
that was last modified by NetBeans user Tboudreau 
on 2010-01-24T05:10:20Z.


*NOTE:* This document was automatically converted to the AsciiDoc format on 2018-02-07, and needs to be reviewed.
