Apache Netbeans



Skip to end of metadataGo to start of metadata

  • Apache NetBeans is free and open source and is governed by the Apache Software Foundation. Fast & Smart Editing Apache NetBeans is much more than a text editor. It highlights source code.
  • The Apache NetBeans IDE 12.0 Beta 4 build 1 is now available for download and the NetBeans team is interested in community feedback on the quality of the build. Once we gather enough responses, we will evaluate all issues pointed out in the survey and try to address all identified blockers 2.

Please join the Apache NetBeans dev mailing list, see netbeans.apache.org for details, to provide feedback. Highlights Jakarta EE 8. Ability to create a Jakarta EE 8. Gluon Plugin allows developers to create Java applications and their native images targeting Android, iOS, Linux, MacOS and Windows platforms using the same codebase.

Apache NetBeans (incubating) 9.0 Beta is the Apache NetBeans incubator release of the NetBeans Java SE IDE, i.e., the NetBeans Platform that underpins NetBeans IDE, released as Apache NetBeans (incubating) 9.0 Alpha, together with all the features and tools applicable to general Java development – including Java Swing, JavaFX, and the support created specifically for Java 9, i.e., JShell, JLink, and Jigsaw.

Apache NetBeans is much more than a text editor. It highlights source code syntactically and semantically, lets you easily refactor code, with a range of handy and powerful tools. Java, JavaScript, PHP, HTML5, CSS, and More.

The features making up the 9.0 release are listed here: Apache NetBeans 9.0 New and Noteworthy

Vote Threads

Netbeans

PPMC vote on RC2:
https://lists.apache.org/thread.html/796200c149232ba2da722c6d4b1310307708e09b2afa77eb90ecaebc@%3Cdev.netbeans.apache.org%3E

PPMC vote result for RC2:
https://lists.apache.org/thread.html/ff699b382e5498ca41e56315c9b97de83b3a625140b0ba451f828cfb@%3Cdev.netbeans.apache.org%3E

IPMC vote on RC2:
https://lists.apache.org/thread.html/8e9520d5e1e365ed2337940fb629c209c63efae24b0a2e44d50412a3@%3Cgeneral.incubator.apache.org%3E

Tasks for RC3:
Apache NetBeans 9.0 Beta rc3

PPMC vote on RC3:
https://lists.apache.org/thread.html/f1c5a2a3077690f2c7785ed81c36f1ba1920efa01b26f3e7a5f32f2b@%3Cdev.netbeans.apache.org%3E

PPMC vote result for RC3:
https://lists.apache.org/thread.html/079f610360463621276d6d8c99979991bded812559a34eff4458a073@%3Cdev.netbeans.apache.org%3E

IPMC vote on RC3:
https://lists.apache.org/thread.html/46e0e8c60e552d200dac9f844140a1f00337adb334e491567ada4ecf@%3Cgeneral.incubator.apache.org%3E

IPMC vote result for RC3:
https://lists.apache.org/thread.html/af11fa61827e3312daa53c5c18c4c551e60d627f78ab82fdfe671f50@%3Cgeneral.incubator.apache.org%3E

Announcement of the release of rc3 as Apache NetBeans 9.0 Beta:
https://lists.apache.org/thread.html/5cbd1dbe1dea2e1d33d2934ae7b5b20b4c83dcb0251753b798b29014@%3Cgeneral.incubator.apache.org%3E

Tasks for Apache NetBeans 9.0 Beta

Tasks to be completed for Apache NetBeans (incubating) 9.0 Beta to be released:

  • define a mechanism by means of which nb-javac is installed by the user, on demand, since it cannot be installed by default because it is GPL licensed: 'Any NetBeans user who wants to use the optional Java module will have to separately install the nb-javac module. The Apache NetBeans project will provide instructions and/or helpful scripts to assist in the installation. The user will be required to accept the terms of the license.' LEGAL-279 - Getting issue details...STATUS
    Solution: at startup, this dialog is shown, when running on JDK 8:

    When running on JDK 9, a notification appears, in Window | IDE Tools | Notifications, via which nb-javac can be installed, as an alternative to using javac directly from JDK 9.
    ...when 'Install nb-javac' is clicked, the user needs to explicitly accept the terms of the license:
    See:
    https://cwiki.apache.org/confluence/display/NETBEANS/Java+Editor+Using+JDK+javac

  • clear out Rat: https://builds.apache.org/job/incubator-netbeans-linux/lastSuccessfulBuild/artifact/nbbuild/build/rat-report.txt
  • clear out the problems in verify-libs-and-licenses (run 'ant verify-libs-and-licenses' in the root to get the report), specifically solve GPL usage:
    • mysql-connector-java-5.1.23: https://github.com/apache/incubator-netbeans/pull/294NETBEANS-70 - Getting issue details...STATUS
    • hibernate-4.3.1: NETBEANS-171 - Getting issue details...STATUS
    • nb-javac: LEGAL-279 - Getting issue details...STATUS
    • nb-jshell: NETBEANS-191 - Getting issue details...STATUScompile-time only, it's not part of the distribution (Svata Dedic) (PR312)
    • beansbinding-1.2.1: NETBEANS-172 - Getting issue details...STATUS
    • jaxws-2.2.6: dual licensed, CDDL (drop the GPL) https://github.com/apache/incubator-netbeans/pull/304 (merged)
    • jaxb-2.2.x: dual licensed, CDDL (drop the GPL) https://github.com/apache/incubator-netbeans/pull/304 (merged)
  • look at DEPENDENCIES and other files, if there are any issues, fix them
  • start the IDE, and check the licenses shown (Accept License dialog), texts, About window, etc. make sense (fix what does not)
    • See NETBEANS-71 - Getting issue details...STATUS (PR305)
    • See NETBEANS-144 - Getting issue details...STATUS (PR275)
  • folks have some bugs reported with label Java9-IDE. We need to decide whether those absolutely need to be fixed for the first/beta release – though probably not.
  • complete analysis of impact of those files that were removed prior to donation. (wiki link)

Kanban board:

Related issues:

NETBEANS-54 - Getting issue details...STATUS

Next steps: put together a distribution and start a VOTE thread on the Apache NetBeans dev mailing list for the Apache NetBeans (incubating) 9.0 Beta release.

After Apache NetBeans (incubating) 9.0 Beta is released, the NetCAT community will begin its process, after which Apache NetBeans (incubating) 9.0 will be released.

NetBeans Status at FossBack '18

The session outlining 10 tips for large corporate projects moving to Apache, with NetBeans as an illustrative example, presented at FossBack '18, is now available on YouTube:

Click above or, alternatively, go here: https://www.youtube.com/watch?v=Bnznard9Nls

The full report on the session and NetBeans attendance is here: https://blogs.apache.org/netbeans/entry/apache-netbeans-at-foss-backstage

Posted at 07:58PM Jun 22, 2018 by Geertjan in General | |

1.5M Lines of NetBeans Code from Oracle to Apache

Great news: the process of completing the 2nd donation is now done and Oracle has made available a ZIP file constituting the 2nd donation. Oracle donated around 4,000,000 lines of code in the 1st donation last year and has now completed the 2nd donation constituting around 1,500,000 lines of code. This donation constitutes the modules of NetBeans dealing with enterprise Java, JavaScript, PHP, Groovy, as well as miscellaneous features applicable to Mobile and Web development.

We will continue to wrap up the final release of Apache NetBeans (incubating) 9.0, which will be focused on Java SE only. After that, or at least separate from that process, we will start relicensing the new code, i.e., from the 2nd donation, once it is in Apache NetBeans Git. Right now, it is a ZIP file, it needs to be moved to Apache NetBeans Git, and we need to do that in the right way, and figure out what the right way is.

This is a significant step forward in the transition of NetBeans from Oracle to Apache.

Posted at 12:12PM Jun 21, 2018 by Geertjan in General | Comments [1] |

Apache NetBeans at FOSS Backstage 2018

Yesterday I attended FOSS Backstage in Berlin. FOSS Backstage is a 'conference on everything governance, collaboration, legal & economics within the scope of FOSS'. I went there to present my session, based on the Apache NetBeans experiences of the past two years or so, entitled 10 Tips for Moving Large Corporate Projects to Apache. I also went because I knew that several people from the Apache Software Foundation who have been instrumental in the transition of NetBeans to Apache would also be there and I thought it was time to put some faces to the many new names that we've been confronted with during the transition process!

The event began for me with a wonderful speakers dinner, where I met three of the absolute key Apache people involved in the Apache NetBeans project — Emmanuel Lecharny, Bertrand Delacretaz, and Mark Struberg. Here we are, literally about 5 minutes after meeting, discussing the current status of the transition process (click the image below to increase size):

Bertrand and Mark are two of the Apache NetBeans mentors, while Emmanuel was a mentor during the beginning phase of the transition. Both Bertrand and Emmanuel were involved really in the pre-start phase of the donation, with many thanks to Emmanuel Hugonnet who introduced us, after a very nice and long conversation some years ago in Athens!

During the event, I also met several others who I have seen on Apache mailing lists — Justin McLean, Shane Curcuru, and Jim Jagielski. Really amazing to meet all these names in person — and not to forget, I also met Mark Thomas, who is the Apache VP for Brand Management, i.e., who we need to work with for the brand/domain donation, and Malcolm Bain, a lawyer specialising in ICT law, based in Barcelona, with a special focus on Open Source Projects. I also spoke with Kevin A. McGrail, who is Apache VP Fundraising, who later sent me this very nice and welcome message: 'Did I hear you correct and you wanted to talk about how I can help NetBeans with sponsorship?' Yes, you did, Kevin!

What really struck me is how positive everyone at Apache is about the Apache NetBeans project. Everyone mentioned how great and active the Apache NetBeans community is, i.e., active mailing lists, several discussion threads, voting in new PPMC members, and of course also doing releases already, with everyone positive and committed to the project. I realized, especially as I was doing my presentation, when I was talking about the history of NetBeans, that the reason why Apache NetBeans is going so well in many respects is because we've been working on our community from the very beginning. I.e., even while NetBeans was part of commercial entities (i.e., Sun and Oracle), we had an army of volunteers all over the world, organized in structures such as NetCAT (i.e., volunteer testers), and the NetBeans Dream Team (i.e., volunteer evangelists), while we've also been organizing NetBeans Days all over the world for several years, i.e., we've come to Apache with a ready-made community, whereas for the majority of other projects coming to Apache the reason that they're coming to Apache is because they don't yet have a community and are looking to Apache to provide the infrastructure for doing so.

Apache Netbeans 11

Also, really crucially, we've spent years educating developers everywhere about the NetBeans APIs, the NetBeans source structure, etc. That's been massively impactful now that we're in Apache, since those who are most active right now are those that have been involved with NetBeans for around 20 years or so. In short, there are definitely advantages to being a large corporate project in terms of transitioning to Apache — just like NetBeans, you may take a long time to get all your code across (because the donating company needs to spend time auditing and cleaning the code etc), though on the other hand you'll potentially be bringing a massive amount of existing knowledge and a vibrant community along with you.

In short, it was great to be at FOSS Backstage and I am sure more and more Apache NetBeans community members will be submitting sessions to similar Apache events around the world and sharing their experiences, too.

Posted at 08:48AM Jun 14, 2018 by Geertjan in General | Comments [1] |

[ANNOUNCE] Apache NetBeans (incubating) 9.0 RC1 released

The Apache NetBeans team is proud to announce the release of Apache NetBeans (incubating) 9.0 RC1.

Apache NetBeans (incubating) 9.0 RC1 constitutes all the modules in the 'release90' branch of the Apache NetBeans Git repo (https://github.com/apache/incubator-netbeans), which together provide the NetBeans Platform (i.e., the underlying application framework), which was released as Apache NetBeans 9.0 Alpha (incubating), as well as all the modules that provide the Java SE-related features of Apache NetBeans. In short, Apache NetBeans (incubating) 9.0 RC1 is a full IDE for Java SE development.

Get it and read more on our download page:

Details on Apache NetBeans (incubating) 9.0 RC1, including a list of open issues to be resolved prior to the final release:

What must be done for the final version of Apache NetBeans (incubating) 9.0 to be released?

1. The items in the link above need to be fixed, e.g, new splash screen needs to be integrated.
2. Cherry picking of pull requests merged into 'main' for 'release90' branch.
3. Put together rc2 release, sanity test it via NetCAT, and publish it.
4. Community Acceptance survey.
5. Start Apache voting for the final release, incorporating input from the Community Acceptance survey.
6. Release 9.0, which will be an IDE for Java SE development only, the other features have not been donated yet by Oracle and are being audited and processed and be part of subsequent releases of Apache NetBeans.

Take note of the Apache NetBeans release criteria:

FYI, see the below for the donation status of features that have not been donated to Apache yet, e.g., features for working with Java EE, JavaScript, PHP, C/C++, and more:

Work is being done on bringing netbeans.org to Apache. We already have our Apache site set up, here:

On behalf of the Apache NetBeans PPMC

Geertjan

Apache Netbeans Ide

Posted at 01:22PM May 29, 2018 by Geertjan in General | Comments [4] |

New Apache NetBeans (incubating) Logo!

After a discussion and voting process on the Apache NetBeans (incubating) dev and user mailing lists... we have a new logo! Here it is:

Netbeans

Posted at 12:59PM Mar 06, 2018 by Geertjan in Technology | |

[ANNOUNCE] Apache NetBeans (incubating) 9.0 Beta released

The Apache NetBeans team is proud to announce the release of Apache NetBeans (incubating) 9.0 Beta.

Apache NetBeans 9.0 Beta (incubating) constitutes all the modules in the Apache NetBeans Git repo, which together provide the NetBeans Platform (i.e., the underlying application framework), which was released as Apache NetBeans 9.0 Alpha (incubating), as well as all the modules that provide the Java SE-related features of Apache NetBeans. In short, Apache NetBeans 9.0 Beta (incubating) is a full IDE for Java SE development.

See the below for the donation status of features that have not been donated to Apache yet, e.g., features for working with Java EE, JavaScript, PHP, C/C++, and more:

Note: Apache NetBeans (incubating) 9.0 Beta is primarily focused on IP clearance. Its functionality has not been tested — the NetCAT (NetBeans Community Acceptance Testing) process will begin now that Apache NetBeans (incubating) 9.0 Beta has been released. Watch this space for upcoming announcements about NetCAT. When NetCAT completes, we will vote on the final release of Apache NetBeans (incubating) 9.0.

Details on Apache NetBeans (incubating) 9.0 Beta:

Download and try out Apache NetBeans (incubating) 9.0 Beta:

Work is being done on bringing netbeans.org to Apache. In the meantime, refer to the below for all details related to Apache NetBeans:

On behalf of the Apache NetBeans PPMC
Geertjan

Posted at 03:35PM Feb 16, 2018 by Geertjan in General | |

NetBeans Status Session at Devoxx 2017

Watch this quick session, with a number of Apache NetBeans team members, to learn about the status of the process at Apache NetBeans (incubating):

Posted at 12:00AM Nov 08, 2017 by Geertjan in General | |

The case of the different jsch 0.1.54 binaries

As part of the Apache NetBeans IP clearance we are combing through all the code and dependencies.

One interesting thing we bumped into was that the jsch 0.1.54 binary JAR we are using has a different hash (and size) than the binary JAR from Maven Central.

The old hash is 0D7D8ABA0D11E8CD2F775F47CD3A6CFBF2837DA4, the new one is DA3584329A263616E277E15462B387ADDD1B208D.

The binaries are 278,612 bytes vs 280,515 bytes in Maven Central.

Our version is actually the same as the one found on http://www.jcraft.com/jsch/

Also, the Maven JAR is properly signed with the author's CA7FA1F0 key.

This is where it becomes clear that reproducible builds are important. You do not want to have to wonder why a binary differs, especially years later when you are doing a review. And this one is a library doing SSH!

So, why the different binaries?

It seems the original JAR was compiled on Aug 30, 2016 with Java 1.4 (major version 48) while the Maven Central JAR was compiled Sep 3, 2016 with Java 5 (major version 49).

The original JAR also concatenates strings using StringBuffer while the Maven Central JAR uses the newly introduced in 1.5 StringBuilder. Which should also be a bit faster since it's not synchronized.

Next, most of the cypher classes use some reflection via a static java.lang.Class class$(java.lang.String) method.

What is this? It's just the way class literals worked in Java 1.4. As explained here, in Java 5 the ldc_w instruction was introduced to load a Class object.

In 1.4 the class literal was helped by the compiler by actually introducing the helper Class class$(java.lang.String className) method and replacing the Person.class with a class$('Person') call.

It conclusion, it seems that excluding the Java 1.4 to Java 5 compiler changes, the two JARs are identical. With the Maven Central JAR even a bit better due to StringBuilder being used.

There is no check so far that the sources do produce the specific JAR. This is an exercise left for the reader.

Posted at 01:17PM Oct 04, 2017 by Emilian Bold in Technology | |

NetBeans Status Interview at JavaOne 2017

Watch this quick interview to learn about the status of the process at Apache NetBeans (incubating):

Click the pic above or go here to see the interview: https://www.youtube.com/watch?v=o5qDm0yS8mc

Posted at 12:22PM Oct 03, 2017 by Geertjan in Technology | |

Introducing the Apache NetBeans Blog

Here, at last, is a community space for everyone working on Apache NetBeans, currently incubating, to post blogs.

I imagine this will be a place where we can announce new releases of Apache NetBeans, while it will also be a place for everyone to share their experiences and make all kinds of other announcements.

For example, did you know there's already an application created on top of Apache NetBeans? It is called YaMeter, read about it here.

Happy blogging everyone, at the brand new Apache NetBeans (incubating) blog.

Posted at 09:37PM Sep 30, 2017 by Geertjan in Technology | |