Has anyone seen this email? I haven't received any replies and I cannot find it 
in the mailing list archive...
-jt

Sent on Nov 28, 2020: 
> Hi.
> The release is successfully over, long live the next release!
> 
> Since the [failure of modern code](https://github.com/apache/netbeans/pull/
> 2369) experiment, I can't stop thinking about the enormous possibilities
> NetBeans project could get by adopting `--release` flag of `javac`. There
> has been numerous voices calling for "coding against never JDK" and that's
> what the `--release` flag and the nature of [NetBeans Runtime
> Container](http:// wiki.apidesign.org/wiki/NetBeans_Runtime_Container)
> allows us to do. However, let's start with the basics:
> 
> Let's enable usage of `--release` in our Ant Javac task and let's make it
> the same as the `javac.target` value:
> 
> ```diff
> --- a/nbbuild/antsrc/org/netbeans/nbbuild/CustomJavac.java
> +++ b/nbbuild/antsrc/org/netbeans/nbbuild/CustomJavac.java
> @@ -66,6 +66,11 @@
> 
>      @Override
>      public void execute() throws BuildException {
> +        String tgr = getTarget();
> +        if (tgr.matches("\\d+")) {
> +            tgr = "1." + tgr;
> +        }
> +        setRelease(tgr.substring(2));
>          String src = getSource();
>          if (src.matches("\\d+")) {
>              src = "1." + src;
> ```
> 
> That immediately shows errors in our code base. Just compile with JDK-11 and
> you'll see errors like:
> 
> ```bash
>  [nb-javac] Compiling 8 source files to /netbeans/platform/queries/build/
> classes
>  [nb-javac] Ignoring source, target and bootclasspath as release has been
> set [repeat] warning: [options] source value 6 is obsolete and will be
> removed in a future release
>    [repeat] warning: [options] target value 1.6 is obsolete and will be
> removed in a future release
>    [repeat] warning: [options] To suppress warnings about obsolete options,
> use -Xlint:-options.
>    [repeat] /netbeans/platform/queries/src/org/netbeans/api/queries/
> VersioningQuery.java:52: error: cannot find symbol
>    [repeat]         java.util.Objects.requireNonNull(uri);
>    [repeat]                  ^
>    [repeat]   symbol:   class Objects
>    [repeat]   location: package java.util
>    [repeat] 1 error
>    [repeat] 3 warnings
>   [nbmerge] Failed to build target: all-queries
> ```
> 
> What's the problem? In spite our code sets the `javac.target=1.6`, it is
> using API which isn't present in JDK6. That's wrong. Let's fix that!
> 
> We need a Travis job using JDK-11 to compile (JDK8 doesn't support the `--
> release` flag and Ant javac task just ignores it) and then we need us to fix
> all the compilation issues found.
> 
> If the change is done properly (and the `--release` flag is used at all
> compilations), we can drop the requirement to use JDK8 to compile Apache
> NetBeans. Yet the code will still run on JDK8 thanks to using `--release 8`
> or older. How does that sound?
> 
> Jaroslav Tulach
> NetBeans Platform Architect





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.apache.org
For additional commands, e-mail: dev-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to