30 July 2018
Today one of my favourite open source projects got a major release, now under Apache Foundation, welcome back NetBeans!.
The @TheASF @NetBeans community is proud to announce the 1st official release of @TheASF @NetBeans (incubating): https://t.co/GJLsExeWXO Especially for devs, users, and students of JDK 8, 9, and 10. 100% free and open source and we welcome pull requests: https://t.co/AT39k8NCnO pic.twitter.com/Ae70AyqiGp
— Apache NetBeans (incubating) (@netbeans) July 29, 2018
In this line, I think that the most frequent question since beta release is:
What about Java EE/C++/PHP/JavaME . . .? You name it
Quick response:
First source code donation to Apache includes only base NetBeans platform modules plus Java SE support
Long response:
Please see Apache Foundation official statement.
Short answer: No
Long answer: Currently Oracle already did a second donation, where most of NetBeans modules considered as external are included, as Apache statement suggests we could expect these modules on future NetBeans releases.
Considering that NetBeans has been modular since . . . ever, we could expect support for old modules in the new NetBeans version. As a matter of fact, this is the official approach to enable Java EE support on NetBeans 9, by using kits.
Hence I've prepared a small tutorial to achieve this. This tutorial is focused on MacOS but steps should be exactly the same for Linux and Windows. To show some caveats, I've tested two app server over Java 8 and Java 10.
First, you should download NetBeans package from official Apache Mirrors, at this time distributions are only available as .zip files.
After download, just uncompress the .zip file
unzip incubating-netbeans-java-9.0-bin.zip
You should find a netbeans executable at bin/
directory, for Unix:
cd netbeans
bin/netbeans
Whit this you would be able to run NetBeans 9. By default, NetBeans will run on the most up-to date JVM available at system.
To install Java EE support you should enable also NetBeans 8.2 update center repository.
First go to Tools > Plugins > Settings
.
Second, add a new update repository:
http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz
Third, search for new plugins with the keyword "Kit", as the name suggests, these are plugins collections for specific purposes
From experience I do recommend the following plugins:
Restart the IDE and you're ready to develop apps with Java EE :).
To test NetBeans setup, I added a new application server and ran a recent Java EE 8 REST-CRUD application, from recent jEspañol presentation (in Spanish).
You have to select WildFly Application Server
As WildFly release notes suggests if you wanna Java EE 8 support, you should choose standalone-ee8.xml
as domain configuration.
Domain configuration will be detected by NetBeans 9
WildFly team has been working on Java 9 and 10 compatibility, hence application ran as expected delivering new records from in-memory database.
To test vanilla experience, I tried to connect Payara and Glassfish 5 app server, as in the case of WildFly, configuration is pretty straight forward:
You have to select Payara Application Server
Domain 1 default configuration should be ok
Since Payara and Glassfish only support Java 8 (Java 11 support is on the roadmap) you have to create a new platform with Java 8. Go to Tools -> Java Platforms
and click on Add Platform
Select a new Java SE Platform
Pick the home directory for Java 8
Finally, go to server properties and change Java Platform
At this time, it seem that NetBeans should be running on Java 8 too, otherwhise you won't be able to retrieve server's configuration and logs, there is a similar report on Eclipse Plugin.
Finally, I configured NetBeans to use JDK 8 as NetBeans JDK, for this, you sould edit etc/netbeans.conf
file and point the netbeans_jdkhome
variable to JDK 8, since I'm using jenv to manage JVM environments the right value is netbeans_jdkhome="/Users/tuxtor/.jenv/versions/1.8"
With this NetBeans 9 is able to run Payara 5 and Glassfish 5 as expected:
I'm Still not sure about TomEE, OpenLiberty, WebSphere and WebLogic, but it seems like it would be a matter of hacking a litle bit on JDK versions.
Long live to NetBeans and Jakarta EE!