This is an automated email from the ASF dual-hosted git repository.

normanbreau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-android.git


The following commit(s) were added to refs/heads/master by this push:
     new 6d803e2  Bugfix/java checks (#1228)
6d803e2 is described below

commit 6d803e2f7236db32fc963150c1683e097f453867
Author: Norman Breau <[email protected]>
AuthorDate: Sun May 9 17:52:35 2021 -0300

    Bugfix/java checks (#1228)
    
    * fix: Java version parsing if java executable prints out additional 
information with --version
    
    * fix: Ensure JAVA_HOME path comes first in the PATH environment
    
    * refactor: Removed redundent code in favour of keeping a change introduced 
from another PR
---
 bin/templates/cordova/lib/env/java.js |  9 ++++-----
 spec/unit/java.spec.js                | 14 ++++++++++++--
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/bin/templates/cordova/lib/env/java.js 
b/bin/templates/cordova/lib/env/java.js
index 2cd720c..5343beb 100644
--- a/bin/templates/cordova/lib/env/java.js
+++ b/bin/templates/cordova/lib/env/java.js
@@ -93,16 +93,15 @@ const java = {
             return;
         }
 
-        const javacPath = utils.forgivingWhichSync('javac');
         const javaHome = environment.CORDOVA_JAVA_HOME || 
environment.JAVA_HOME;
         if (javaHome) {
             // Ensure that CORDOVA_JAVA_HOME overrides
             environment.JAVA_HOME = javaHome;
-            // Windows java installer doesn't add javac to PATH, nor set 
JAVA_HOME (ugh).
-            if (!javacPath) {
-                environment.PATH += path.delimiter + 
path.join(environment.JAVA_HOME, 'bin');
-            }
+            // Ensure that the JAVA_HOME bin path is before anything else
+            // to cover cases where different Java versions is in the PATH
+            environment.PATH = path.join(environment.JAVA_HOME, 'bin') + 
path.delimiter + environment.PATH;
         } else {
+            const javacPath = utils.forgivingWhichSync('javac');
             if (javacPath) {
                 // OS X has a command for finding JAVA_HOME.
                 const find_java = '/usr/libexec/java_home';
diff --git a/spec/unit/java.spec.js b/spec/unit/java.spec.js
index d19f1b0..66c8ef2 100644
--- a/spec/unit/java.spec.js
+++ b/spec/unit/java.spec.js
@@ -47,9 +47,19 @@ describe('Java', () => {
                 all: 'javac 1.8.0_275'
             }));
 
-            console.log('BEFORE', process.env.JAVA_HOME);
             const result = await Java.getVersion();
-            console.log('AFTER', process.env.JAVA_HOME);
+            expect(result.major).toBe(1);
+            expect(result.minor).toBe(8);
+            expect(result.patch).toBe(0);
+            expect(result.version).toBe('1.8.0');
+        });
+
+        it('detects JDK when additional details are printed', async () => {
+            Java.__set__('execa', () => Promise.resolve({
+                all: 'Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8\njavac 
1.8.0_275'
+            }));
+
+            const result = await Java.getVersion();
             expect(result.major).toBe(1);
             expect(result.minor).toBe(8);
             expect(result.patch).toBe(0);

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to