This page lists the new features available in Apache NetBeans 10.0. There is a release schedule, based on the testing that will be done as part of the NetCAT program.
JDK 11 support
NetBeans 10.0 will include support for JDK 11, including:
- update of nbjavac module
- removal of Java EE and Corba modules from the JDK
- deprecation of Nashorn Javascript engine
- var support for implicitly typed lambda expressions
Primary tasks for JDK 11 uptake in Apache NetBeans are:
Task | Tracking Bug | Owner | Comments | |
---|---|---|---|---|
1 | nb-javac jdk11 uptake | NETBEANS-802 nb-javac JDK11 upgrade | Dusan.Balek | Done, nb-javac repository https://hg.netbeans.org/main/nb-java-x refreshed with JDK11-b24. |
2 | NetBeans - nb-javac 11 upgrade testing : | NETBEANS-803 nb-javac 11 upgrade in NetBeans | rtaneja1/ arusinha/ vikasprabhakar | Done, updated nb-javac jars under libs.javacapi and libs.javacimpl. Updated nb-javac plugin.
|
3 | Java EE and CORBA modules removal: http://openjdk.java.net/jeps/320 | NETBEANS-805 Update any dependencies on Java EE and CORBA modules | Arunava | Done . No dependencies found |
4 | Dynamic Class-File Constants | NETBEANS-804 Update any dependent code for JDK11 Class-file format change | Arunava | Pending Investigating based on Jan's inputs regarding impacted code areas. |
5 | Var support for implicitly typed lambda expressions. http://openjdk.java.net/jeps/323 | NETBEANS-806 Var support for Lambda Parameters | rtaneja1/ arusinha/ vikasprabhakar | Feature wiki: LVTI Support for Lamdba Parameters in NetBeans 10 List of Enhancements/Bugs below. |
6 | Deprecation of Nashorn JS Engine http://openjdk.java.net/jeps/335 | NETBEANS-1009 Deprecate the Nashorn Javascript Engine | Svata Dedic |
Var Support in Lambda expression parameters
Identified below enhancements/bugs to support this feature in Apache NetBeans.
Type | Apache Jira Id | Owner | Priority | ||
---|---|---|---|---|---|
1 | Enhancement | NETBEANS-860: Proposed new hint "Convert Lambda to Use 'var' Parameter Types" for Lambda expression | Done | Vikasprabhakar | Minor |
2 | Bug | NETBEANS-859: Hint :"Use explicit parameter type" is not working with var type lambda parameters | Verified fixed w JDK-8204674 | Rtaneja1 | Minor |
3 | Bug | NETBEANS-862: Autocomplete for var keyword not supported in Lambda parameter | Done | Arusinha | Minor |
4 | Bug | NETBEANS-863: Refactor rename of var type Lambda parameter is not proper | Verified fixed w JDK-8204674 | Arusinha | Minor |
5 | Bug | NETBEANS-1021: use explicit params type throws exception for invalid lambda params types | Done Pull Request #819 | Rtaneja1 | Minor |
Miscellaneous Features
As the code donations from Oracle keep coming in, they are being integrated into NetBeans. NetBeans 10.0 will see the return of Javascript and Groovy, as well as the addition of JUnit 5.
JavaScript: https://github.com/apache/incubator-netbeans/pull/882
Modules in the "webcommon" cluster are included in Apache NetBeans for the first time. I.e., all JavaScript features in Apache NetBeans GitHub are part of Apache NetBeans 10.
Groovy: https://github.com/apache/incubator-netbeans/pull/904
Modules in the "groovy" cluster are included in Apache NetBeans for the first time. I.e., all Groovy features in Apache NetBeans GitHub are part of Apache NetBeans 10.
Plus:
- Add simple infrastructure to write Groovy Hints: https://github.com/apache/incubator-netbeans/pull/902
- Add trait support for Groovy: https://github.com/apache/incubator-netbeans/pull/901
- First stab at flow typing: https://github.com/apache/incubator-netbeans/pull/903
OpenJDK
- Automatically detect JTReg from OpenJDK configuration: https://github.com/apache/incubator-netbeans/pull/925
- Register the expanded JDK as a Java Platform: https://github.com/apache/incubator-netbeans/pull/918
- Various improvements to make the OpenJDK project work better: https://github.com/apache/incubator-netbeans/pull/897
JUnit 5: https://github.com/apache/incubator-netbeans/pull/892
With NetBeans existing JUnit and Maven integration, the introduction of JUnit 5 didn't need much work, as in a lot of cases, NetBeans defers to Maven, and in particular the Maven Surefire plugin to execute tests. No work has been implemented for Ant specific JUnit 5 integration.
New JUnit 5 Library
Introducing support for JUnit 5.3.1 a new Library has been added to NetBeans.
Default version of JUnit when creating Java 8+ applications
When working with a Maven based Java 8+ project with no existing tests, or test framework defined in the project pom file, the IDE will use JUnit 5 as the default JUnit version, and add in the appropriate dependencies.
Support for Run / Debug Focused Test Methods
JUnit 5 introduced a new @Testable annotation, any method that includes an annotation that inherits from this, will be allowed to be executed with these action menu items.
New JUnit 5 Test Template
Default JUnit 5 Test Template provided out of the box. Note JUnit 5 doesn't currently support test suite's for its Jupiter engine, so the template provided will attempt to create a test suite using the Vintage engine.
Updated IDE Hints for JUnit 5's Assertion class
Introduced updated assertArrayEquals hints to support JUnit 5 as the method signatures have changed since JUnit 4.
PHP
A big addition to NetBeans 10 is that it will once again support PHP. Features will include support for PHP 7.0 through 7.3, PHPStan and Twig, as well as editing and debugging enhancements.
PHP 7.3 Support
- Allow a trailing comma in function calls
- list() Referenct Assignment
- Flexible Heredoc and Nowdoc Syntaxes
PHP 7.2 Support
- Trailing Commas In List Syntax
- Coloring for object type
- PHP version in Project Properties dialog
PHP 7.1 Support
- Class constant visibility
- Multi catch exception handling
- Nullable types
- Support for keys in list()
- Coloring for new keywords(void, iterable)
- PHP version in Project Properties dialog
PHP 7.0 Support
- Context sensitive lexer
PHPStan Support
- Options (Tools > Options > PHP > Code Analysis > PHPStan)
- Inspect (Source > Inspect... > Configuration: PHPStan)
Editor
- Hint for void return types
- Hint for incorrect non-abstract methods
- Suggestion for the strict types declaration. It is suggested when the caret is on the line which contains "<?php" and the file doesn't have the declaration.
- Lowercase code completion for TRUE, FALSE, and NULL constants. Enabled by default.
- Code folding for arrays
- Code foldings for use statements
- Code folding for php tags
- New vardoc support (/** @var VarType $varType */)
- Option for comment completion. Enabled by default. (Tools > Options > Editor > Code Completion > Language: PHP)
Debugger
- Conditional breakpoints
Twig
- Autocompletion for delimiters, brackets, and quotes
- Support for the palette