Skip to content

Commit ccea9c6

Browse files
authored
Merge pull request #240 from oracle/main
Sync testing branch with main
2 parents 8eaa42c + 8693aa0 commit ccea9c6

17 files changed

+1398
-37
lines changed

BUILD.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<!--
44
5-
Copyright (c) 2023, Oracle and/or its affiliates.
5+
Copyright (c) 2023, 2024, Oracle and/or its affiliates.
66
77
Licensed to the Apache Software Foundation (ASF) under one
88
or more contributor license agreements. See the NOTICE file
@@ -30,20 +30,20 @@
3030
- JDK, version 11 or later upto JDK 22
3131
- Ant, latest version
3232
- Maven, latest version
33-
- node.js, latest LTS (to build VSIX)
33+
- Node.js, latest LTS (to build VSIX)
3434

35-
36-
## Fetching and building netbeans code
35+
## Fetching and building the code
3736

3837
```bash
38+
$ git clone https://github.com/oracle/javavscode.git
39+
$ cd javavscode/
3940
$ git clone https://github.com/apache/netbeans.git
4041
$ cd netbeans/
4142
$ git checkout 22
4243
$ cd ..
4344
# the following target requires git executable to be on PATH:
4445
$ ant apply-patches
4546
$ ant build-netbeans
46-
4747
```
4848

4949
## Building VS Code extension

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ If the system does not detect any JDK, the extension will offer a downloader and
7979
Alternatively, you can manually specify the path to JDK binaries by utilizing the JDK downloader.
8080
You can also access the JDK downloader through the "Download, install, and Use JDK" option in the command palette.
8181
![JDK Downloader](vscode/images/jdk_downloader.png)
82+
## Enabling Java Preview Features
83+
When using preview features use the quick fix action option to easily enable them.
8284

85+
![Enable Preview](vscode/images/enable_preview.gif)
8386
## Supported Refactorings
8487

8588
Class level refactorings as well as variable refactorings are supported in VSCode via Oracle Java Platform extension. See following screenshots:

build.xml

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,39 @@
3131
<property name="nbplatform.default.harness.dir" location="${nbplatform.default.netbeans.dest.dir}/harness" />
3232
<property name="nbantext.jar" location="netbeans/nbbuild/build/nbantext.jar" />
3333
<property name="nb_all" location="netbeans" />
34-
<property name="patches" value="patches/6330.diff patches/7001.diff patches/7271.diff patches/7353.diff patches/7368.diff patches/7370.diff patches/7382.diff patches/7491-preliminary.diff patches/mvn-sh.diff patches/generate-dependencies.diff patches/rename-debugger.diff patches/remove-db.diff patches/nbjavac-not-required.diff" />
34+
<loadresource property="patch-files">
35+
<string>
36+
patches/6330.diff
37+
patches/7001.diff
38+
patches/7271.diff
39+
patches/7353.diff
40+
patches/7368.diff
41+
patches/7370.diff
42+
patches/7382.diff
43+
patches/7491-preliminary.diff
44+
patches/7548_source-1.8.diff
45+
patches/7583_source-1.8.diff
46+
patches/7610.diff
47+
patches/7621.diff
48+
patches/7641.diff
49+
patches/7654.diff
50+
patches/mvn-sh.diff
51+
patches/generate-dependencies.diff
52+
patches/rename-debugger.diff
53+
patches/remove-db.diff
54+
patches/nbjavac-not-required.diff
55+
</string>
56+
<filterchain>
57+
<tokenfilter delimoutput=" ">
58+
<replaceregex pattern="\s+" replace=""/>
59+
</tokenfilter>
60+
</filterchain>
61+
</loadresource>
62+
<property name="patches" value="${patch-files}"/>
63+
<condition property="has-patches">
64+
<length string="${patches}" trim="true" when="greater" length="0"/>
65+
</condition>
66+
3567
<condition property="cmd.suffix" value=".cmd" else="">
3668
<os family="windows"/>
3769
</condition>
@@ -175,7 +207,8 @@
175207
</exec>
176208
</target>
177209

178-
<target name="apply-patches">
210+
<target name="apply-patches" if="has-patches">
211+
<echo>${patches}</echo>
179212
<exec executable="git">
180213
<arg value="apply"/>
181214
<arg value="--directory=netbeans"/>
@@ -184,7 +217,7 @@
184217
</exec>
185218
</target>
186219

187-
<target name="unapply-patches">
220+
<target name="unapply-patches" if="has-patches">
188221
<!--in the reverse order:-->
189222
<echo file="${build.dir}/Reverse.java">
190223
import java.util.Arrays;
@@ -218,6 +251,10 @@
218251
<ant dir="netbeans" inheritAll="false" inheritRefs="false" useNativeBasedir="true"/>
219252
</target>
220253

254+
<target name="clean-netbeans">
255+
<ant dir="netbeans" target="clean" inheritAll="false" inheritRefs="false" useNativeBasedir="true"/>
256+
</target>
257+
221258
<target name="generate-netbeans-license-summary" depends="-set-use-jdk-javac,proxy-setup" description="Generate license summary">
222259
<delete dir="${build.dir}/nblic" />
223260
<mkdir dir="${build.dir}/nblic/nbcode" />

nbcode/nbproject/platform.properties

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,13 @@ disabled.modules=\
146146
org.netbeans.modules.docker.ui,\
147147
org.netbeans.modules.editor.autosave,\
148148
org.netbeans.modules.editor.bookmarks,\
149-
org.netbeans.modules.editor.deprecated.pre65formatting,\
150149
org.netbeans.modules.editor.global.format,\
151150
org.netbeans.modules.editor.htmlui,\
152151
org.netbeans.modules.editor.kit,\
153152
org.netbeans.modules.editor.macros,\
154153
org.netbeans.modules.editor.plain,\
155154
org.netbeans.modules.editor.plain.lib,\
156155
org.netbeans.modules.editor.search,\
157-
org.netbeans.modules.editor.structure,\
158156
org.netbeans.modules.extbrowser,\
159157
org.netbeans.modules.extbrowser.chrome,\
160158
org.netbeans.modules.extexecution.impl,\

patches/7548_source-1.8.diff

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
diff --git a/java/java.hints/src/org/netbeans/modules/java/hints/bugs/Unused.java b/java/java.hints/src/org/netbeans/modules/java/hints/bugs/Unused.java
2+
index e681ed7b97..0d0c3c4c77 100644
3+
--- a/java/java.hints/src/org/netbeans/modules/java/hints/bugs/Unused.java
4+
+++ b/java/java.hints/src/org/netbeans/modules/java/hints/bugs/Unused.java
5+
@@ -20,6 +20,7 @@ package org.netbeans.modules.java.hints.bugs;
6+
7+
import com.sun.source.tree.Tree.Kind;
8+
import java.util.ArrayList;
9+
+import java.util.Arrays;
10+
import java.util.List;
11+
import javax.lang.model.element.ElementKind;
12+
import org.netbeans.modules.java.editor.base.semantic.UnusedDetector;
13+
@@ -34,6 +35,7 @@ import org.netbeans.spi.java.hints.JavaFixUtilities;
14+
import org.netbeans.spi.java.hints.TriggerTreeKind;
15+
import org.openide.util.NbBundle.Messages;
16+
17+
+import static org.netbeans.api.java.source.CompilationInfo.CacheClearPolicy.ON_TASK_END;
18+
/**
19+
*
20+
* @author lahvac
21+
@@ -52,25 +54,47 @@ public class Unused {
22+
@BooleanOption(displayName="#LBL_UnusedPackagePrivate", tooltip="#TP_UnusedPackagePrivate", defaultValue=DETECT_UNUSED_PACKAGE_PRIVATE_DEFAULT)
23+
public static final String DETECT_UNUSED_PACKAGE_PRIVATE = "detect.unused.package.private";
24+
25+
- @TriggerTreeKind(Kind.COMPILATION_UNIT)
26+
+ @TriggerTreeKind({
27+
+ //class-like kinds:
28+
+ Kind.ANNOTATION_TYPE, Kind.CLASS, Kind.ENUM, Kind.INTERFACE, Kind.RECORD,
29+
+ Kind.VARIABLE,
30+
+ Kind.METHOD
31+
+ })
32+
public static List<ErrorDescription> unused(HintContext ctx) {
33+
List<UnusedDescription> unused = UnusedDetector.findUnused(ctx.getInfo(), () -> ctx.isCanceled());
34+
- List<ErrorDescription> result = new ArrayList<>(unused.size());
35+
- boolean detectUnusedPackagePrivate = ctx.getPreferences().getBoolean(DETECT_UNUSED_PACKAGE_PRIVATE, DETECT_UNUSED_PACKAGE_PRIVATE_DEFAULT);
36+
+ if (unused.isEmpty()) {
37+
+ return null;
38+
+ }
39+
+ boolean detectUnusedPackagePrivate = getTaskCachedBoolean(ctx, DETECT_UNUSED_PACKAGE_PRIVATE, DETECT_UNUSED_PACKAGE_PRIVATE_DEFAULT);
40+
for (UnusedDescription ud : unused) {
41+
if (ctx.isCanceled()) {
42+
break;
43+
}
44+
+ if (ud.unusedElementPath.getLeaf() != ctx.getPath().getLeaf()) {
45+
+ continue;
46+
+ }
47+
if (!detectUnusedPackagePrivate && ud.packagePrivate) {
48+
continue;
49+
}
50+
ErrorDescription err = convertUnused(ctx, ud);
51+
if (err != null) {
52+
- result.add(err);
53+
+ return Arrays.asList(err);
54+
}
55+
+ break;
56+
}
57+
- return result;
58+
+ return null;
59+
}
60+
+
61+
+ // reading from AuxiliaryConfigBasedPreferences in inner loops is not cheap since it needs a mutex
62+
+ private static boolean getTaskCachedBoolean(HintContext ctx, String key, boolean defaultVal) {
63+
+ Object cached = ctx.getInfo().getCachedValue(key);
64+
+ if (cached instanceof Boolean) {
65+
+ return (Boolean)cached;
66+
+ }
67+
+ boolean fromPrefs = ctx.getPreferences().getBoolean(key, defaultVal);
68+
+ ctx.getInfo().putCachedValue(key, fromPrefs, ON_TASK_END);
69+
+ return fromPrefs;
70+
+ }
71+
72+
@Messages({
73+
"# {0} - variable name",

patches/7583_source-1.8.diff

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java
2+
index 024f95a670..0a106ffbb6 100644
3+
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java
4+
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java
5+
@@ -101,9 +101,10 @@ public final class GradleDistributionManager {
6+
GradleVersion.version("7.6"), // JDK-19
7+
GradleVersion.version("8.3"), // JDK-20
8+
GradleVersion.version("8.5"), // JDK-21
9+
+ GradleVersion.version("8.8"), // JDK-22
10+
};
11+
12+
- private static final GradleVersion LAST_KNOWN_GRADLE = GradleVersion.version("8.7"); //NOI18N
13+
+ private static final GradleVersion LAST_KNOWN_GRADLE = GradleVersion.version("8.9"); //NOI18N
14+
15+
final File gradleUserHome;
16+
17+
diff --git a/extide/libs.gradle/external/binaries-list b/extide/libs.gradle/external/binaries-list
18+
index 2e58f89b85fd..dff2c2265b37 100644
19+
--- a/extide/libs.gradle/external/binaries-list
20+
+++ b/extide/libs.gradle/external/binaries-list
21+
@@ -15,4 +15,4 @@
22+
# specific language governing permissions and limitations
23+
# under the License.
24+
25+
-5F48B9BB9099B900FC33864A3794F31C439D9F73 https://repo.gradle.org/artifactory/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.jar gradle-tooling-api-8.7.jar
26+
+7BCC4423C529A42ECA9D0CE5B5275369EF4DF55A https://repo.gradle.org/artifactory/libs-releases/org/gradle/gradle-tooling-api/8.9/gradle-tooling-api-8.9.jar gradle-tooling-api-8.9.jar
27+
diff --git a/extide/libs.gradle/external/gradle-tooling-api-8.7-license.txt b/extide/libs.gradle/external/gradle-tooling-api-8.9-license.txt
28+
similarity index 99%
29+
rename from extide/libs.gradle/external/gradle-tooling-api-8.7-license.txt
30+
rename to extide/libs.gradle/external/gradle-tooling-api-8.9-license.txt
31+
index 84a9de902f75..74cb1addb8d6 100644
32+
--- a/extide/libs.gradle/external/gradle-tooling-api-8.7-license.txt
33+
+++ b/extide/libs.gradle/external/gradle-tooling-api-8.9-license.txt
34+
@@ -1,7 +1,7 @@
35+
Name: Gradle Tooling API
36+
Description: Gradle Tooling API
37+
-Version: 8.7
38+
-Files: gradle-tooling-api-8.7.jar
39+
+Version: 8.9
40+
+Files: gradle-tooling-api-8.9.jar
41+
License: Apache-2.0
42+
Origin: Gradle Inc.
43+
URL: https://gradle.org/
44+
diff --git a/extide/libs.gradle/external/gradle-tooling-api-8.7-notice.txt b/extide/libs.gradle/external/gradle-tooling-api-8.9-notice.txt
45+
similarity index 100%
46+
rename from extide/libs.gradle/external/gradle-tooling-api-8.7-notice.txt
47+
rename to extide/libs.gradle/external/gradle-tooling-api-8.9-notice.txt
48+
diff --git a/extide/libs.gradle/manifest.mf b/extide/libs.gradle/manifest.mf
49+
index 64b5cf508e40..a489976e11ed 100644
50+
--- a/extide/libs.gradle/manifest.mf
51+
+++ b/extide/libs.gradle/manifest.mf
52+
@@ -2,4 +2,4 @@ Manifest-Version: 1.0
53+
AutoUpdate-Show-In-Client: false
54+
OpenIDE-Module: org.netbeans.modules.libs.gradle/8
55+
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/libs/gradle/Bundle.properties
56+
-OpenIDE-Module-Specification-Version: 8.7
57+
+OpenIDE-Module-Specification-Version: 8.9
58+
diff --git a/extide/libs.gradle/nbproject/project.properties b/extide/libs.gradle/nbproject/project.properties
59+
index 6cd0e22d8315..6e4605fe4922 100644
60+
--- a/extide/libs.gradle/nbproject/project.properties
61+
+++ b/extide/libs.gradle/nbproject/project.properties
62+
@@ -22,4 +22,4 @@ javac.compilerargs=-Xlint -Xlint:-serial
63+
# Sigtest fails to read the classes in the gradle-tooling-api
64+
sigtest.skip.gen=true
65+
66+
-release.external/gradle-tooling-api-8.7.jar=modules/gradle/gradle-tooling-api.jar
67+
+release.external/gradle-tooling-api-8.9.jar=modules/gradle/gradle-tooling-api.jar
68+
diff --git a/extide/libs.gradle/nbproject/project.xml b/extide/libs.gradle/nbproject/project.xml
69+
index dc58e80a4500..d82027b5e615 100644
70+
--- a/extide/libs.gradle/nbproject/project.xml
71+
+++ b/extide/libs.gradle/nbproject/project.xml
72+
@@ -39,7 +39,7 @@
73+
</public-packages>
74+
<class-path-extension>
75+
<runtime-relative-path>gradle/gradle-tooling-api.jar</runtime-relative-path>
76+
- <binary-origin>external/gradle-tooling-api-8.7.jar</binary-origin>
77+
+ <binary-origin>external/gradle-tooling-api-8.9.jar</binary-origin>
78+
</class-path-extension>
79+
</data>
80+
</configuration>

0 commit comments

Comments
 (0)