Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync Java 17 migration branch with master #502

Closed
wants to merge 22 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f85f2b3
Migrate to Java 17
gabilang Jun 22, 2023
1bb553c
Update bal gradle version
warunalakshitha Jun 26, 2023
0896fef
Merge pull request #493 from gabilang/java_17_migration
warunalakshitha Jun 26, 2023
21e26da
[Automated] Update the native jar versions
warunalakshitha Jun 26, 2023
6bc0385
[Automated] Update the native jar versions
warunalakshitha Jun 26, 2023
64a6fbf
Migrate to Java 17
warunalakshitha Jun 26, 2023
37c2fbc
Merge pull request #494 from warunalakshitha/java17-migration
warunalakshitha Jun 26, 2023
68c1ac3
[Automated] Update the native jar versions
warunalakshitha Jul 10, 2023
94ff721
Disable failing tests temporarily
gabilang Jul 10, 2023
5dbbc29
Disable falling test
warunalakshitha Jul 10, 2023
287f951
[Automated] Update the native jar versions
warunalakshitha Jul 11, 2023
589a779
[Automated] Update the native jar versions
warunalakshitha Jul 11, 2023
51cf974
[Automated] Update the native jar versions
warunalakshitha Jul 11, 2023
573c2de
[Automated] Update the native jar versions
warunalakshitha Jul 11, 2023
afa4b55
Fix oracle jdk download link
gabilang Jul 14, 2023
c77bd1b
Change gradle version
gabilang Jul 14, 2023
ccf197a
Merge pull request #499 from gabilang/fix-jdk-link
gabilang Jul 16, 2023
6da2909
Merge branch 'master' into java_17_migration
gabilang Jul 26, 2023
a36af65
Add git attributes file
gabilang Jul 26, 2023
3cec722
Update lang version
gabilang Jul 26, 2023
1a4ecf9
Update GraalVM build to Java 17
gabilang Jul 26, 2023
4e9041e
Refactor env var handling for Java 17
warunalakshitha Jul 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Ensure all Java files use LF.
*.java eol=lf
8 changes: 4 additions & 4 deletions .github/workflows/build-timestamped-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ jobs:
if: github.repository_owner == 'ballerina-platform'
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Change to Timestamped Version
run: |
startTime=$(TZ="Asia/Kolkata" date +'%Y%m%d-%H%M00')
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-with-bal-test-graalvm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
lang_tag:
description: Branch/Release Tag of the Ballerina Lang
required: true
default: master
default: java_17_migration
lang_version:
description: Ballerina Lang Version (If given ballerina lang buid will be skipped)
required: false
Expand All @@ -30,7 +30,7 @@ jobs:
call_stdlib_workflow:
name: Run StdLib Workflow
if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }}
uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-template.yml@main
uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-template.yml@java_17_migration
with:
lang_tag: ${{ inputs.lang_tag }}
lang_version: ${{ inputs.lang_version }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/central-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'ballerina-platform'
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Build with Gradle
env:
packageUser: ${{ github.actor }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'ballerina-platform'
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Build with Gradle
env:
packageUser: ${{ github.actor }}
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ jobs:
name: Build on Ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Build with Gradle
env:
packageUser: ${{ github.actor }}
Expand All @@ -29,11 +29,11 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Build with Gradle
env:
packageUser: ${{ github.actor }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/trivy-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ jobs:
name: Build on Ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Build with Gradle
env:
packageUser: ${{ github.actor }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update_specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Get current date
id: date
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ This repository only contains the source code for the package.

### Set up the prerequisites

1. Download and install Java SE Development Kit (JDK) version 11 (from one of the following locations).
* [Oracle](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)
1. Download and install Java SE Development Kit (JDK) version 17 (from one of the following locations).
* [Oracle](https://www.oracle.com/java/technologies/downloads/)

* [OpenJDK](https://adoptium.net/)

Expand Down
18 changes: 9 additions & 9 deletions ballerina/Ballerina.toml
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
[package]
org = "ballerina"
name = "os"
version = "1.7.0"
version = "1.7.1"
authors = ["Ballerina"]
keywords = ["environment"]
repository = "https://github.com/ballerina-platform/module-ballerina-os"
icon = "icon.png"
license = ["Apache-2.0"]
distribution = "2201.7.0"

[platform.java11]
[platform.java17]
graalvmCompatible = true

[[platform.java11.dependency]]
[[platform.java17.dependency]]
groupId = "io.ballerina.stdlib"
artifactId = "os-native"
version = "1.7.0"
path = "../native/build/libs/os-native-1.7.0.jar"
version = "1.7.1"
path = "../native/build/libs/os-native-1.7.1-SNAPSHOT.jar"

[[platform.java11.dependency]]
[[platform.java17.dependency]]
groupId = "io.ballerina.stdlib"
artifactId = "io-native"
version = "1.5.0"
path = "./lib/io-native-1.5.0.jar"

[[platform.java11.dependency]]
[[platform.java17.dependency]]
groupId = "io.ballerina.stdlib"
artifactId = "os-test-utils"
version = "1.7.0"
path = "../test-utils/build/libs/os-test-utils-1.7.0.jar"
version = "1.7.1"
path = "../test-utils/build/libs/os-test-utils-1.7.1-SNAPSHOT.jar"
4 changes: 2 additions & 2 deletions ballerina/Dependencies.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

[ballerina]
dependencies-toml-version = "2"
distribution-version = "2201.7.0"
distribution-version = "2201.8.0-20230726-145300-b2bdf796"

[[package]]
org = "ballerina"
Expand Down Expand Up @@ -47,7 +47,7 @@ dependencies = [
[[package]]
org = "ballerina"
name = "os"
version = "1.7.0"
version = "1.7.1"
dependencies = [
{org = "ballerina", name = "io"},
{org = "ballerina", name = "jballerina.java"},
Expand Down
13 changes: 4 additions & 9 deletions ballerina/os.bal
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,12 @@ public type EnvProperties record {|
# + name - Name of the environment variable
# + return - Environment variable value if it exists or else, an empty string
public isolated function getEnv(string name) returns string {
var value = java:toString(nativeGetEnv(java:fromString(name)));
if value is string {
return value;
}
return "";
return nativeGetEnv(name);
}

isolated function nativeGetEnv(handle key) returns handle = @java:Method {
name: "getenv",
'class: "java.lang.System",
paramTypes: ["java.lang.String"]
isolated function nativeGetEnv(string key) returns string = @java:Method {
name: "getEnv",
'class: "io.ballerina.stdlib.os.nativeimpl.GetEnv"
} external;

# Returns the current user's name.
Expand Down
1 change: 0 additions & 1 deletion ballerina/tests/os_test.bal
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import ballerina/io;

configurable string bal_exec_path = ?;

@test:Config {}
function testGetEnv() {
string expectedValue = getExpectedValidEnv();
test:assertEquals(getEnv("JAVA_HOME"), expectedValue);
Expand Down
4 changes: 2 additions & 2 deletions ballerina/tests/resources/hello3.bal
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
// specific language governing permissions and limitations
// under the License.

import ballerina/log;
import ballerina/io;

public function main() {
log:printDebug("debug message");
io:println("debug message");
}
4 changes: 2 additions & 2 deletions build-config/checkstyle/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ apply plugin: 'java'

task downloadCheckstyleRuleFiles(type: Download) {
src([
'https://raw.githubusercontent.com/wso2/code-quality-tools/v1.3/checkstyle/checkstyle.xml',
'https://raw.githubusercontent.com/wso2/code-quality-tools/v1.3/checkstyle/suppressions.xml'
'https://raw.githubusercontent.com/wso2/code-quality-tools/v1.4/checkstyle/jdk-17/checkstyle.xml',
'https://raw.githubusercontent.com/wso2/code-quality-tools/v1.4/checkstyle/jdk-17/suppressions.xml'
])
overwrite false
onlyIfNewer true
Expand Down
8 changes: 4 additions & 4 deletions build-config/resources/Ballerina.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,22 @@ icon = "icon.png"
license = ["Apache-2.0"]
distribution = "2201.7.0"

[platform.java11]
[platform.java17]
graalvmCompatible = true

[[platform.java11.dependency]]
[[platform.java17.dependency]]
groupId = "io.ballerina.stdlib"
artifactId = "os-native"
version = "@toml.version@"
path = "../native/build/libs/[email protected]@.jar"

[[platform.java11.dependency]]
[[platform.java17.dependency]]
groupId = "io.ballerina.stdlib"
artifactId = "io-native"
version = "@io.version@"
path = "./lib/[email protected]@.jar"

[[platform.java11.dependency]]
[[platform.java17.dependency]]
groupId = "io.ballerina.stdlib"
artifactId = "os-test-utils"
version = "@toml.version@"
Expand Down
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
*/

plugins {
id "com.github.spotbugs" version "4.0.5"
id "com.github.johnrengelman.shadow" version "5.2.0"
id "de.undercouch.download" version "4.0.4"
id "net.researchgate.release" version "2.8.0"
id "com.github.spotbugs" version "${githubSpotBugsVersion}"
id "com.github.johnrengelman.shadow" version "${shadowJarVersion}"
id "de.undercouch.download" version "${undercouchDownloadVersion}"
id "net.researchgate.release" version "${researchgateReleaseVersion}"
}

ext.ballerinaLangVersion = project.ballerinaLangVersion
ext.puppycrawlCheckstyleVersion = "8.18"
ext.puppycrawlCheckstyleVersion = "${puppycrawlCheckstyleVersion}"
ext.slf4jVersion = "1.7.30"
ext.apacheCommonsVersion = "3.8.1"

Expand Down
10 changes: 8 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@ org.gradle.caching=true
group=io.ballerina.stdlib
version=1.7.1-SNAPSHOT

ballerinaGradlePluginVersion=1.1.0
ballerinaGradlePluginVersion=2.0.0
githubSpotBugsVersion=5.0.14
shadowJarVersion=7.1.2
undercouchDownloadVersion=5.4.0
researchgateReleaseVersion=2.8.0
puppycrawlCheckstyleVersion=10.12.0

ballerinaLangVersion= 2201.7.0

ballerinaLangVersion=2201.8.0-20230726-145300-b2bdf796
stdlibIoVersion=1.5.0
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Copyright (c) 2023, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package io.ballerina.stdlib.os.nativeimpl;

import io.ballerina.runtime.api.Environment;
import io.ballerina.runtime.api.PredefinedTypes;
import io.ballerina.runtime.api.creators.TypeCreator;
import io.ballerina.runtime.api.creators.ValueCreator;
import io.ballerina.runtime.api.types.MapType;
import io.ballerina.runtime.api.utils.StringUtils;
import io.ballerina.runtime.api.values.BMap;
import io.ballerina.runtime.api.values.BString;

import java.util.Map;

import static io.ballerina.stdlib.os.utils.OSConstants.ENV_VAR_KEY;

/**
* Extern function of ballerina.os:getEnv.
*
* @since 1.5.1
*/
public class GetEnv {

private GetEnv() {

}

public static BString getEnv(Environment env, BString key) {
Object envVarMap = env.getStrandLocal(ENV_VAR_KEY);
BMap<BString, Object> envMap;
if (envVarMap == null) {
MapType mapType = TypeCreator.createMapType(PredefinedTypes.TYPE_STRING);
envMap = ValueCreator.createMapValue(mapType);
Map<String, String> jEnvMap = System.getenv();
for (Map.Entry<String, String> entry : jEnvMap.entrySet()) {
envMap.put(StringUtils.fromString(entry.getKey()), StringUtils.fromString(entry.getValue()));
}
env.setStrandLocal(ENV_VAR_KEY, envMap);
} else {
envMap = (BMap<BString, Object>) envVarMap;
}
Object value = envMap.get(key);
if (value == null) {
return StringUtils.fromString("");
}
return (BString) value;
}
}
Loading
Loading