You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2024/03/21 10:44:00 UTC

[jira] [Work logged] (KNOX-3024) Fix findJava in knox-functions.sh

     [ https://issues.apache.org/jira/browse/KNOX-3024?focusedWorklogId=910850&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-910850 ]

ASF GitHub Bot logged work on KNOX-3024:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 21/Mar/24 10:43
            Start Date: 21/Mar/24 10:43
    Worklog Time Spent: 10m 
      Work Description: smolnar82 opened a new pull request, #891:
URL: https://github.com/apache/knox/pull/891

   ## What changes were proposed in this pull request?
   
   I updated the existing login in `knox-functions.sh` to successfully check Java executables under `/usr` if no `JAVA_HOME` is set or Java is not available on the path.
   In addition to fixing the issue, I added an option to display the Java with the `--verbose` option (when using KnoxCLI, `--verbose true` should be used.
   
   ## How was this patch tested?
   
   Checked the updated scripts on [shellcheck.net](https://www.shellcheck.net/) and tested them manually:
   - `gateway.sh`
   ```
   $ bin/gateway.sh restart --verbose
   Found Java at /usr/local/opt/openjdk@8/bin/java
   Stopping Gateway with PID 12173 succeeded.
   Starting Gateway succeeded with PID 12346.
   
   $ bin/gateway.sh restart
   Stopping Gateway with PID 12346 succeeded.
   Starting Gateway succeeded with PID 12419.
   ```
   - `knoxcli.sh`
   ```
   $ bin/knoxcli.sh export-cert --type JKS --verbose true
   Found Java at /usr/local/opt/openjdk@8/bin/java
   Certificate gateway-identity has been successfully exported to: /Users/sandormolnar/test/knoxGateway/data/security/keystores/gateway-client-trust.jks
   
   $ bin/knoxcli.sh export-cert --type JKS
   Certificate gateway-identity has been successfully exported to: /Users/sandormolnar/test/knoxGateway/data/security/keystores/gateway-client-trust.jks
   ```
   - `ldap.sh`
   ```
   $ bin/ldap.sh start --verbose
   Found Java at /usr/local/opt/openjdk@8/bin/java
   Starting LDAP succeeded with PID 12531.
   
   $ bin/ldap.sh stop
   Stopping LDAP with PID 12531 succeeded.
   
   $ bin/ldap.sh start
   Starting LDAP succeeded with PID 12573.
   ```




Issue Time Tracking
-------------------

            Worklog Id:     (was: 910850)
    Remaining Estimate: 0h
            Time Spent: 10m

> Fix findJava in knox-functions.sh
> ---------------------------------
>
>                 Key: KNOX-3024
>                 URL: https://issues.apache.org/jira/browse/KNOX-3024
>             Project: Apache Knox
>          Issue Type: Bug
>          Components: Release
>    Affects Versions: 1.4.0, 1.5.0, 2.0.0, 1.6.0, 1.6.1, 1.6.2
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Blocker
>             Fix For: 2.1.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 5 years ago, when I added {{shellcheck}} support to our build in the scope of KNOX-1816, I introduced a bug in the {{findJava}} function in {{{}knox-functions.sh{}}}: when $JAVA_HOME is not set, and Java is not available on the path, the function tries to find java executables under {{{}/usr{}}}. However, the current implementation is wrong:
> {noformat}
> $ which java
> /usr/bin/which: no java in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
> $ echo $JAVA_HOME
> $ bin/knoxcli.sh export-cert --type JKS
> Warning: JAVA is not set and could not be found.
> ...  {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)