Skip to content

Commit 5d992e8

Browse files
zulusvrubezhny
authored andcommitted
Fix #1247 - Maven build use node from PATH on mac os
1 parent 30e19f9 commit 5d992e8

File tree

10 files changed

+72
-12
lines changed

10 files changed

+72
-12
lines changed

org.eclipse.wildwebdeveloper.embedder.node.feature/feature.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<feature
33
id="org.eclipse.wildwebdeveloper.embedder.node.feature"
44
label="%name"
5-
version="1.0.6.qualifier"
5+
version="1.0.7.qualifier"
66
provider-name="Eclipse Wild Web Developer project"
77
license-feature="org.eclipse.license"
88
license-feature-version="0.0.0">

org.eclipse.wildwebdeveloper.embedder.node.feature/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<version>1.0.0-SNAPSHOT</version>
88
</parent>
99
<packaging>eclipse-feature</packaging>
10-
<version>1.0.6-SNAPSHOT</version>
10+
<version>1.0.7-SNAPSHOT</version>
1111
<build>
1212
<plugins>
1313
<plugin>

org.eclipse.wildwebdeveloper.embedder.node/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: Manager for embedded Node.js
44
Bundle-SymbolicName: org.eclipse.wildwebdeveloper.embedder.node
5-
Bundle-Version: 1.0.2.qualifier
5+
Bundle-Version: 1.0.3.qualifier
66
Bundle-Vendor: Eclipse Wild Web Developer
77
Automatic-Module-Name: org.eclipse.wildwebdeveloper.embedder.node
88
Bundle-RequiredExecutionEnvironment: JavaSE-17

org.eclipse.wildwebdeveloper.embedder.node/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<version>1.0.0-SNAPSHOT</version>
88
</parent>
99
<packaging>eclipse-plugin</packaging>
10-
<version>1.0.2-SNAPSHOT</version>
10+
<version>1.0.3-SNAPSHOT</version>
1111

1212
<build>
1313
<plugins>

org.eclipse.wildwebdeveloper.embedder.node/src/org/eclipse/wildwebdeveloper/embedder/node/NodeJSManager.java

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import java.io.InputStream;
2323
import java.io.InputStreamReader;
2424
import java.net.URL;
25+
import java.util.ArrayList;
26+
import java.util.Arrays;
27+
import java.util.List;
2528
import java.util.Properties;
2629

2730
import org.eclipse.core.internal.runtime.InternalPlatform;
@@ -117,12 +120,68 @@ public static File getNpmLocation() {
117120
File nodeJsLocation = getNodeJsLocation();
118121
if (nodeJsLocation != null) {
119122
File res = new File(nodeJsLocation.getParentFile(), npmFileName);
120-
if (res.canExecute()) {
123+
if (res.exists()) {
121124
return res;
122125
}
123126
}
124127
return which(npmFileName);
125128
}
129+
130+
public static File getNpmJSLocation() {
131+
132+
try {
133+
File npmLocation = getNpmLocation().getCanonicalFile();
134+
if (npmLocation.getAbsolutePath().endsWith(".js")) {
135+
return npmLocation;
136+
}
137+
String path = "node_modules/npm/bin/npm-cli.js";
138+
if (new File(npmLocation.getParentFile(), "node_modules").exists()) {
139+
return new File(npmLocation.getParentFile(), path);
140+
}
141+
File target = new File( npmLocation.getParentFile().getParentFile(), path);
142+
if (target.exists()) {
143+
return target;
144+
}
145+
146+
147+
return new File( npmLocation.getParentFile(), "lib/cli.js");
148+
} catch (IOException e) {
149+
}
150+
151+
return null;
152+
153+
154+
}
155+
156+
public static ProcessBuilder prepareNodeProcessBuilder(String... commands)
157+
{
158+
return prepareNodeProcessBuilder(Arrays.asList(commands));
159+
}
160+
161+
public static ProcessBuilder prepareNodeProcessBuilder(List<String> commands)
162+
{
163+
List<String> tmp = new ArrayList<>();
164+
tmp.add(getNodeJsLocation().getAbsolutePath());
165+
tmp.addAll(commands);
166+
167+
return new ProcessBuilder(tmp);
168+
}
169+
170+
public static ProcessBuilder prepareNPMProcessBuilder(String... commands)
171+
{
172+
return prepareNPMProcessBuilder(Arrays.asList(commands));
173+
}
174+
175+
public static ProcessBuilder prepareNPMProcessBuilder(List<String> commands)
176+
{
177+
List<String> tmp = new ArrayList<>();
178+
179+
180+
tmp.add(getNpmJSLocation().getAbsolutePath());
181+
tmp.addAll(commands);
182+
183+
return prepareNodeProcessBuilder(tmp);
184+
}
126185

127186
public static File which(String program) {
128187
Properties properties = getNodeJsInfoProperties();

org.eclipse.wildwebdeveloper.tests/src/org/eclipse/wildwebdeveloper/tests/TestAngular.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ public static void setUp() throws Exception {
5151
AllCleanRule.enableLogging();
5252

5353
project = Utils.provisionTestProject("angular-app");
54-
ProcessBuilder builder = new ProcessBuilder(NodeJSManager.getNpmLocation().getAbsolutePath(), "install",
55-
"--no-bin-links", "--ignore-scripts").directory(project.getLocation().toFile());
54+
ProcessBuilder builder = NodeJSManager.prepareNPMProcessBuilder("install", "--no-bin-links", "--ignore-scripts")
55+
.directory(project.getLocation().toFile());
5656
Process process = builder.start();
5757
System.out.println(builder.command().toString());
5858
String result = new BufferedReader(new InputStreamReader(process.getErrorStream())).lines()

org.eclipse.wildwebdeveloper.tests/src/org/eclipse/wildwebdeveloper/tests/TestESLint.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ public static void setUpProject() throws Exception {
7878
try (InputStream eslintRc = TestESLint.class.getResourceAsStream("/testProjects/eslint/ESLintProj.js")) {
7979
Files.copy(eslintRc, new File(projectDirectory, "ESLintProj.tsx").toPath());
8080
}
81-
ProcessBuilder builder = new ProcessBuilder(NodeJSManager.getNpmLocation().getAbsolutePath(), "install",
82-
"--no-bin-links", "--ignore-scripts").directory(projectDirectory);
81+
ProcessBuilder builder = NodeJSManager.prepareNPMProcessBuilder("install", "--no-bin-links", "--ignore-scripts")
82+
.directory(projectDirectory);
8383
Process dependencyInstaller = builder.start();
8484
System.out.println(builder.command().toString());
8585
String result = new BufferedReader(new InputStreamReader(dependencyInstaller.getErrorStream())).lines()

org.eclipse.wildwebdeveloper.tests/src/org/eclipse/wildwebdeveloper/tests/TestVue.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ public static void setUp() throws Exception {
5555
AllCleanRule.enableLogging();
5656

5757
project = Utils.provisionTestProject("vue-app");
58-
ProcessBuilder builder = new ProcessBuilder(NodeJSManager.getNpmLocation().getAbsolutePath(), "install",
59-
"--no-bin-links", "--ignore-scripts").directory(project.getLocation().toFile());
58+
ProcessBuilder builder = NodeJSManager.prepareNPMProcessBuilder("install", "--no-bin-links", "--ignore-scripts")
59+
.directory(project.getLocation().toFile());
6060
Process process = builder.start();
6161
System.out.println(builder.command().toString());
6262
String result = new BufferedReader(new InputStreamReader(process.getErrorStream())).lines()

org.eclipse.wildwebdeveloper/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
<arg>pack</arg>
194194
<arg>--no-bin-links</arg>
195195
<arg>--ignore-scripts</arg>
196+
<arg>--install-strategy=hoisted</arg>
196197
<arg>vscode/VSCode-linux-x64/resources/app/extensions/html-language-features/server</arg>
197198
<arg>vscode/VSCode-linux-x64/resources/app/extensions/css-language-features/server</arg>
198199
<arg>vscode/VSCode-linux-x64/resources/app/extensions/json-language-features/server</arg>

org.eclipse.wildwebdeveloper/src/org/eclipse/wildwebdeveloper/debug/npm/NpmLaunchDelegate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void launch(ILaunchConfiguration configuration, String mode, ILaunch laun
6363
final String argumentString = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(configuration.getAttribute(ARGUMENTS, "No NPM argument set") //$NON-NLS-1$
6464
.trim());
6565
List<String> arguments = new ArrayList<>();
66-
arguments.add(NodeJSManager.getNpmLocation().getAbsolutePath());
66+
arguments.addAll(NodeJSManager.prepareNPMProcessBuilder().command());
6767
arguments.addAll(Arrays.asList(argumentString.split(" "))); //$NON-NLS-1$
6868
monitor.beginTask(argumentString + ' ' + packageJSON.getAbsolutePath(), 2);
6969
monitor.worked(1);

0 commit comments

Comments
 (0)