
////
     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.
////
= Apache NetBeans 11.2 Features
:jbake-type: page-noaside
:jbake-tags: 11.2 features
:jbake-status: published
:keywords: Apache NetBeans 11.2 IDE features
:icons: font
:description: Apache NetBeans 11.2 features
:toc: left
:toc-title: 
:toclevels: 4
:syntax: true
:source-highlighter: pygments
:experimental:
:linkattrs:

Apache NetBeans 11.2 is the second Apache NetBeans release outside the Apache Incubator and the link:https://cwiki.apache.org/confluence/display/NETBEANS/Release+Schedule[second release of the new quarterly release cycle].

TIP: The LTS release of the Apache NetBeans 11 cycle is Apache NetBeans 11.0. The 11.1 and 11.2 releases have not been tested as heavily as the LTS release and may therefore be less stable. Use 11.2 to use the latest features and to provide feedback for the next LTS release, scheduled for April 2020. Go here to download  link:/download/nb110/nb110.html[Apache NetBeans 11.0], the current LTS release.

link:/download/nb112/nb112.html[Download, role="button success"]

== Release Drivers

=== Java

The highlights of enhancements in the Java area are focused on support for JDK 13.

- link:https://openjdk.java.net/jeps/354[JEP 354]: Switch Expressions (Preview Feature): 

[.feature]
--
image::jdk13-yield.png[role="left", link="jdk13-yield.png"]
-- 

- link:https://openjdk.java.net/jeps/355[JEP 355]: Text Blocks (Preview Feature)

[.feature]
--
image::jdk13-textblock.png[role="left", link="jdk13-textblock.png"]
--  

TIP: link:https://openjdk.java.net/jeps/12[JEP 12] provides for a preview language or VM feature, which "is a new feature of the Java SE Platform that is fully specified, fully implemented, and yet impermanent. It is available in a JDK feature release to provoke developer feedback based on real world use; this may lead to it becoming permanent in a future Java SE Platform".

Preview features can only be used if the Java compiler's `--enable-preview` flag is set, as shown below for Maven. 

[source,xml]
----
<build>
   <plugins>
      <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
              <compilerArgs>
                    <arg>--enable-preview</arg>
              </compilerArgs>
         </configuration>
     </plugin>
  </plugins>
</build>
----

An example to add `--enable-preview` in Gradle:

[source,groovy]
----
tasks.withType(JavaCompile).each {
    it.options.compilerArgs.add('--enable-preview')
}

run.jvmArgs(['--enable-preview'])
----

=== PHP

The highlights of enhancements in the PHP area are focused on support for PHP 7.4.

[.feature]
--
image::php-7.4.png[role="left", link="php-7.4.png"]
--  

Highlights of PHP 7.4 integration are listed below.

- PHP RFC: link:https://wiki.php.net/rfc/typed_properties_v2[Typed Properties 2.0]
- PHP RFC: link:https://wiki.php.net/rfc/null_coalesce_equal_operator[Null Coalescing Assignment Operator]
- PHP RFC: link:https://wiki.php.net/rfc/spread_operator_for_array[Spread Operator in Array Expression]
- PHP RFC: link:https://wiki.php.net/rfc/arrow_functions_v2[Arrow Functions 2.0]
- PHP RFC: link:https://wiki.php.net/rfc/numeric_literal_separator[Numeric Literal Separator]
- PHP RFC: link:https://wiki.php.net/rfc/custom_object_serialization[New Custom Object Serialization Mechanism]

Further details on new support for PHP 7.4 features are provided link:https://cwiki.apache.org/confluence/display/NETBEANS/11.2+Feature%3A+PHP[here].

== Enhancements and Fixes

The highlights of the enhancements and fixes are listed below.

See link:https://github.com/apache/netbeans/milestone/3?closed=1[the closed pull requests for 11.2] for details.

=== Enhancements

==== Performance

- Speed up finding binaries for source files, most notable performance increase on refactoring. (link:https://github.com/apache/netbeans/pull/1430[PR-1430])
- Using Java NIO2 Watchers on Windows and Linux (link:https://github.com/apache/netbeans/pull/1349[PR-1349])
- Optimized the archive file detection (link:https://github.com/apache/netbeans/pull/1422[PR-1422])

==== Gradle

- The Gradle features can now read Java compiler arguments, enabling NetBeans support for Java preview features in Gradle projects. (link:https://github.com/apache/netbeans/pull/1494[PR-1494])
- Gradle now can accept user input from its Output tab. (link:https://github.com/apache/netbeans/pull/1461[PR-1461])
- NetBeans honors the project's `org.gradle.jvmargs` property when launching Gradle Daemon (link:https://github.com/apache/netbeans/pull/1501[PR-1501]) 

==== Other
- JavaScript parser is now correctly licensed and no longer needs to be installed separately (link:https://github.com/apache/netbeans/pull/1407[PR-1407])
- Enhancement to the installer enables subsets of Apache NetBeans to be installed (link:https://github.com/apache/netbeans/pull/1505[PR-1505])
- Upgraded Payara support to Payara Platform 5.193 (link:https://github.com/apache/netbeans/pull/1470[PR-1470])
- Amazon Beanstalk support updates (link:https://github.com/apache/netbeans/pull/1312[PR-1312])
- HTML5 attribute syntax support (link:https://github.com/apache/netbeans/pull/1380[PR-1380])
- Cleaned up Welcome Screen no longer refers to Oracle backends (link:https://github.com/apache/netbeans/pull/1457[PR-1457])

=== Fixes

- Maven-based NetBeans modules can now be created again (link:https://github.com/apache/netbeans/commit/9e32a853c38f2b7514a42a3395a673d8ad06300f[commit 9e32a85])
- "Copy Dependent Libraries" in Ant-based projects works again (link:https://github.com/apache/netbeans/pull/1469[PR-1469])
- OpenJFX Gluon samples are now correctly registered (link:https://github.com/apache/netbeans/pull/1503[PR-1503])

== Notes

- The donation of the NetBeans C and C&#x2b;&#x2b; features from Oracle to Apache was not complete at the time of the 11.2 release, though it is not far off, and the 11.3 release (January 2020) is scheduled to focus primarily on the integration of the C and C++ features, once they land in the Apache NetBeans GitHub. Until then, go to the Plugin Manager, enable the NetBeans IDE 8.2 Update Center, which lets you install the NetBeans IDE 8.2 modules providing C and C&#x2b;&#x2b; features.
- WildFly integration is supported by means of the link:http://plugins.netbeans.org/plugin/76472/wildfly-application-server[WildFly Application Server] plugin located in the Plugin Portal.
- Support for JSF 2.3 is available as a pull request, too late for inclusion in link:https://github.com/apache/netbeans/milestone/3[11.2], scheduled for link:https://github.com/apache/netbeans/milestone/4[11.3]: link:https://github.com/apache/netbeans/pull/1576[PR-1576]

