12.0 is primarily a consolidation of the minor releases 11.1, 11.2, and 11.3. There is as little innovation as possible in 12.0 and as much qualitative solidifying of existing features and functionality.
The program through which qualitative consolidation takes place for 12.0 is NetCAT 12.0.
Focus areas of qualitative consolidation in NetCAT 12.0.
- Start up experience (new spec to be created that covers the Installer, including installing subsets, e.g., PHP only, start up experience, performance, etc, first impressions)
- Java – prioritize new Java language features
- Jakarta EE (including Payara)
- JavaFX (with Maven, not Ant)
- Maven
- Gradle (no test spec for this yet, since this is a new feature)
- PHP – focus on the newest PHP language features
In contrast to the above, some examples of areas to deprioritize (and if anyone disagrees, they are very welcome to focus on these areas themselves):
- Ant
- CVS/Subversion etc, i.e., anything not Git (and maybe Mercurial)
- Form Editor/GUI Builder/Matisse
New Features and Enhancements – and Impact on NetCAT 12.0.
Being aware of the below is important when reviewing the test specs. Because the below are new, new tasks or updated tasks need to be provided to the related test specs:
Start up experience
- Enhancement to the installer enables subsets of Apache NetBeans to be installed (from 11.2).
Java
- New JDK 14 Language Features
- JEP 359: Records (Preview), syntax coloring, Navigator support, and formatting of the new Java Records.
public class Foo {
public record Bar(String x, int y) {
}
}
Impacted NetCAT test spec: Java Editor, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/448
Task to be added to test spec: Run 12.0 on JDK 14, make sure to uninstall nb-javac if installed, create a Maven application and enable preview features (explain how), and create a class like the above, copy/pasted from the test spec. The syntax coloring should be not broken and the Navigator should show equals, hashCode, toString, x, y, etc.
Status: Done. Added as test case 1 in the new section 21, "Java Language Preview Features", of the above Java Editor test spec.
- JEP 359: Records (Preview), syntax coloring, Navigator support, and formatting of the new Java Records.
- New JDK 13 Language Features
- JEP 354: Switch Expressions (Preview Feature), as shown below.
Impacted NetCAT test spec: Java Editor, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/448
Task to be added to test spec: Run 12.0 on JDK 13 or later, make sure to uninstall nb-javac if installed, create a Maven application and enable preview features (explain how), verify that the syntax colouring for switch expressions is correct by creating the code above, copy/paste from the test spec, and then seeing that the colors are like the above, not broken, no error markings.
Status: Done. Added as test case 2 in the new section 21, "Java Language Preview Features", of the above Java Editor test spec. - JEP 355: Text Blocks (Preview Feature), hint for converting to/from text blocks.
Impacted NetCAT test spec: Java Hints, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/449
Task to be added to test spec: Run 12.0 on JDK 13 or later, make sure to uninstall nb-javac if installed, create a Maven application and enable preview features (explain how), and use code like the above, copy/pasted from test spec, to verify the hint works to/from text blocks.
Status: Done. Added as test case 1 in the new section 5, "Java Language Preview Features", of the above Java Hint test spec.
Impacted NetCAT test spec: Editor Options, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/451
Task to be added to test spec: Run 12.0 on JDK 13 or later, make sure to uninstall nb-javac if installed, create a Maven application and enable preview features (explain how), create code like the above, go to the Options window, go to Fonts & Colors, choose Syntax, "Java" in Language drop-down, "Text Block" in Category list, then change the Background to something different and then check that the new color is applied in the editor for text blocks.
Status: Done. Added as test case 1 in the new section 8, "Java Language Preview Features", of the above Java Hint test spec.
- JEP 354: Switch Expressions (Preview Feature), as shown below.
- New JDK 12 Language Features
- JEP 325: Switch Expressions (Preview) – code completion for JEP-325 preview feature for multiple case labels, as shown below.
Impacted NetCAT test spec: Java Code Completion, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/450
Task to be added to test spec: Run 12.0 on JDK 13 or later, make sure to uninstall nb-javac if installed, create a Maven application and enable preview features (explain how), and use code like the above, copy/pasted from test spec, to verify the code completion works as above.
Status: Done. Added as test case 1 in the new section 14, "Java Language Preview Features", of the above Java Code Completion test spec.
Hint for converting to JEP-325 preview feature for switch expressions:
Impacted NetCAT test spec: Java Hints, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/449
Task to be added to test spec: Run 12.0 on JDK 12 or later, make sure to uninstall nb-javac if installed, create a Maven application and enable preview features (explain how), and use code like the above, copy/pasted from test spec, to verify the hint works from switch expressions to rule switch.
Status: Done. Added as test case 2 in the new section 5, "Java Language Preview Features", of the above Java Hint test spec.
- JEP 325: Switch Expressions (Preview) – code completion for JEP-325 preview feature for multiple case labels, as shown below.
- New JDK 11 Language Features
- JEP 330: Launch Single-File Source-Code Programs – a new Java source file can be created in the Favorites window, it can be run, and debugged.
Impacted NetCAT test spec: Java Editor, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/448
Task to be added to test spec: Run 12.0 on JDK 11 or above, open the Favorites window, create a new Java source file, add some code, run it, and debug it.
Status: Done. Added as test case 1 and 2 in the new section 22, "Single Java Source Files", of the above Java Editor test spec.
- JEP 330: Launch Single-File Source-Code Programs – a new Java source file can be created in the Favorites window, it can be run, and debugged.
- Miscellaneous New Java Editor Features
- "main" is a new shortcut, that does the same as "psvm", i.e., creates 'public static void main'
Impacted NetCAT test spec: Java Code Completion, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/450
Task to be added to test spec: Run 12.0 on JDK 8 or above, create any kind of Java application, add a Java source file, type 'main', without the quotes, press Tab to complete it, and you should see "public static void main" constructor.
Status: Done. Added as test case 5 in the already existing section 6, "Generate - constructor", of the above Java Code Completion test spec.
- "main" is a new shortcut, that does the same as "psvm", i.e., creates 'public static void main'
- Support for inline parameter name hints for Java impacts the Java Editor test spec:
Impacted NetCAT test spec: Java Editor, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/448
Task to be added to test spec: Select View | Show Inline Hints, add the code above, copy/pasted from the test spec, and you should see the inline hints 'str' and 'fromIndex', like shown above.
Status: Done. Added as test case 6 in the already existing section 9, "Syntax Coloring", of the above Java Editor test spec.
- Support for inline parameter name hints for Java impacts the Java Editor test spec:
Java EE
- Java EE 8 support, for the first time since 11.1, for Maven-based and Gradle-based Web applications. The new Java EE 8 support provides the ability to create Java EE 8 applications and deploy to a Java EE 8 container, with new "webapp-javaee8" Maven archetype created for use with Apache NetBeans.
Impacted NetCAT test spec: Maven/Java EE Support Test Specification - javaee, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/title/maven%252Fjava_ee_support_test_specification_-_javaee/12.0
Task to be added to test spec:
Status: To be done. - Support for JSF 2.3; CDI Changes for JSF Artifact Injection (introduced in 11.3), e.g., f:websocket is now supported:
Impacted NetCAT test spec: Maven/Java EE Support Test Specification - javaee, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/title/maven%252Fjava_ee_support_test_specification_-_javaee/12.0
Task to be added to test spec:
Status: To be done. - Payara integration out of the box for the first time, including Payara Platform 5.194/5.201 support and Payara Server Hot Deploy support.
Impacted NetCAT test spec: Maven/Java EE Support Test Specification - javaee, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/title/maven%252Fjava_ee_support_test_specification_-_javaee/12.0
Task to be added to test spec:
Status: To be done. - Support for GlassFish 5.0.1.
Impacted NetCAT test spec: Maven/Java EE Support Test Specification - javaee, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/title/maven%252Fjava_ee_support_test_specification_-_javaee/12.0
Task to be added to test spec:
Status: To be done.
JavaFX
- The two OpenJFX Gluon Maven samples are now registered in the New Project dialog (from 11.2) – JavaFX test spec should be enhanced to try out these two samples and make sure they work.
Impacted NetCAT test spec: JavaFX Create Projects, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/452
Task to be added to test spec:
-- Create new FXML JavaFX Maven Archetype (Gluon)
-- Create new Simple JavaFX Maven Archetype (Gluon)
Status: To be done.
Maven
- Enabling Java preview features in a Maven project – new task needed in a Maven-related test spec, after creating new Java Maven project, the following must be added and then check whether one or more preview features (see above) can be used in the Java editor.
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <compilerArgs> <arg>--enable-preview</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>
Impacted NetCAT test spec: Maven Support Test Specification, https://netbeans-vm.apache.org/synergy/client/app/#/title/maven_support_test_specification/.
Tasks to be added to test spec: Add above to the POM of a Maven application and verify that preview features can be used.
Status: To be done. New test case to be added to section 11, "Edit pom.xml file". - Related to the above, new hint in Java Editor to turn on Preview Features in Maven-based Java projects:
When the above is clicked, i.e., this happens when a preview feature is recognized but the POM hasn't yet been updated to support it, the following is added to the POM:<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
Impacted NetCAT test spec: Java Hints, cloned to 12.0: https://netbeans-vm.apache.org/synergy/client/app/#/specification/449
Task to be added to test spec: Run 12.0 on JDK 12, 13, or 14, make sure to uninstall nb-javac if installed, create a Maven application and add a Java source file. Type String text = """ """, at which point the hint should appear, prompting the POM entry above to be generated.
Status: Done. Added as test case 3 in the new section 5, "Java Language Preview Features", of the above Java Hint test spec. - JaCoCo integration with Maven works again, make sure to check that during NetCAT 12.0 by adding a task around this in the Maven test spec.
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.3</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> <configuration> <outputDirectory>${project.reporting.outputDirectory}/jacoco_test</outputDirectory> </configuration> </execution> </executions> </plugin>
Impacted NetCAT test spec: Maven Support Test Specification, https://netbeans-vm.apache.org/synergy/client/app/#/title/maven_support_test_specification/.
Task to be added to test spec: Run 12.0, create a Maven application and add a Java source file. Add the above to the POM and then verify that the JaCoCo functionality is available on the Maven project's context menu.
Status: To be done. New test case to be added to section 11, "Edit pom.xml file". - Maven-based NetBeans modules can be created again, this was broken, make sure this works again correctly.
Impacted NetCAT test spec: Maven Support Test Specification - Maven Platform support, https://netbeans-vm.apache.org/synergy/client/app/#/title/maven_support_test_specification_-_maven_platform_support/
Tasks to be added to test spec:
-- Run 12.0, create a new Maven NetBeans module, add a Window Component, run it. Should result in NetBeans starting up and having a new window.
-- Run 12.0, create a new Maven NetBeans application, run it, add a module, add a Window Component, run it. Should result in new NetBeans application starting up and having a new window.
Status: Done, both these test cases are already in the Maven Support Test Specification - Maven Platform support test spec. - Default JDK for Maven projects can be set.
Gradle
Enabling Java preview features in a Gradle project – new task needed in a new Gradle-related test spec, after creating new Java Gradle project, the following must be added and then check whether one or more preview features (see above) can be used in the Java editor.
build.gradle snippettasks.withType(JavaCompile).each { it.options.compilerArgs.add('--enable-preview') } run.jvmArgs(['--enable-preview'])
- Gradle JavaEE Support
PHP
- PHP 7.4 Language Features and some new hints: see 11.2 Feature: PHP
- Autocomplete for PHP property and method without $this→
HiDPI and Painting Bugfixes
- In the editor, fix incorrectly positioned line-width marker (e.g. shown at 82 characters instead of 80 characters), and inaccurate tab alignments. This bug existed at certain editor zoom levels on Windows, Linux, and MacOS, including on non-HiDPI screens.
- Fix clipped file names in "Projects" pane on Windows on HiDPI screens.
Reference: Complete Listing of Closed PRs for 12.0