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

1nb-javac jdk11 uptakeNETBEANS-802 nb-javac JDK11 upgradeDusan.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.

  • Run tests for modules java.completion, java.editor, java.editor.base, java.hints, java.source, java.source.base,lib.nbjavac
  • Upload updated nb-javac jars

Pull Request #812

  • Uploaded nb-javac plugin 1.5 in Update Center 10
3

Java EE and CORBA modules removal: http://openjdk.java.net/jeps/320



NETBEANS-805 Update any dependencies on Java EE and CORBA modulesArunava

Done .

No dependencies found

4

Dynamic Class-File Constants

http://openjdk.java.net/jeps/309

NETBEANS-804 Update any dependent code for JDK11 Class-file format changeArunava

Pending

Investigating based on Jan's inputs regarding impacted code areas.

PR 910

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.

6Deprecation of Nashorn JS Engine

http://openjdk.java.net/jeps/335
NETBEANS-1009 Deprecate the Nashorn Javascript EngineSvata Dedic


Var Support in Lambda expression parameters

Identified below enhancements/bugs to support this feature in Apache NetBeans. 


Type

Apache Jira Id


Owner

Priority

1Enhancement

NETBEANS-860:  Proposed new hint "Convert Lambda to Use 'var' Parameter Types"

for Lambda expression

Done

Pull Request #596

Vikasprabhakar

Minor
2Bug

NETBEANS-859: Hint :"Use explicit parameter type" is not working with var type

lambda parameters

Verified fixed w JDK-8204674

Rtaneja1

Minor
3BugNETBEANS-862: Autocomplete for var keyword not supported in Lambda parameter

Done

Pull Request #849

Arusinha

Minor

4BugNETBEANS-863: Refactor rename of var type Lambda parameter is not properVerified fixed w JDK-8204674
ArusinhaMinor
5Bug

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:

OpenJDK

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.

All the PHP support for NetBeans 9 was contributed by our NetBeans user Junichi Yamamoto.

PHP 7.3 Support

https://lists.apache.org/thread.html/3f7fee458f5b47d5531ad42350c6e7f619636f0708b6bbc33db2f49a@%3Cdev.netbeans.apache.org%3E

  • 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




  • No labels