-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from kaneeldias/main
Initialize OracleDB driver library
- Loading branch information
Showing
14 changed files
with
363 additions
and
2 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Lines starting with '#' are comments. | ||
# Each line is a file pattern followed by one or more owners. | ||
|
||
# See: https://help.github.com/articles/about-codeowners/ | ||
|
||
# These owners will be the default owners for everything in the repo. | ||
* @daneshk @niveathika @kaneeldias |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
name: "Bug Report" | ||
about: "Report a bug if something is not working as expected" | ||
labels: 'Type/Bug' | ||
|
||
--- | ||
|
||
**Description:** | ||
<!-- Give a brief description of the bug --> | ||
|
||
**Steps to reproduce:** | ||
|
||
**Affected Versions:** | ||
|
||
**OS, DB, other environment details and versions:** | ||
|
||
**Related Issues (optional):** | ||
<!-- Any related issues such as sub tasks, issues reported in other repositories (e.g component repositories), similar problems, etc. --> | ||
|
||
**Suggested Labels (optional):** | ||
<!-- Optional comma separated list of suggested labels. Non committers can’t assign labels to issues, so this will help issue creators who are not a committer to suggest possible labels--> | ||
|
||
**Suggested Assignees (optional):** | ||
<!--Optional comma separated list of suggested team members who should attend the issue. Non committers can’t assign issues to assignees, so this will help issue creators who are not a committer to suggest possible assignees--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
name: "Improvement Request" | ||
about: "Create an improvement request for an existing feature" | ||
labels: 'Type/Improvement' | ||
|
||
--- | ||
|
||
**Description:** | ||
<!-- Give a brief description of the improvement --> | ||
|
||
**Describe your problem(s)** | ||
|
||
**Describe your solution(s)** | ||
|
||
**Related Issues (optional):** | ||
<!-- Any related issues such as sub tasks, issues reported in other repositories (e.g component repositories), similar problems, etc. --> | ||
|
||
**Suggested Labels (optional):** | ||
<!-- Optional comma separated list of suggested labels. Non committers can’t assign labels to issues, so this will help issue creators who are not a committer to suggest possible labels--> | ||
|
||
**Suggested Assignees (optional):** | ||
<!--Optional comma separated list of suggested team members who should attend the issue. Non committers can’t assign issues to assignees, so this will help issue creators who are not a committer to suggest possible assignees--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
name: "New Feature Request" | ||
about: "Create a new feature request" | ||
labels: 'Type/NewFeature' | ||
|
||
--- | ||
|
||
**Description:** | ||
<!-- Give a brief description of the new feature --> | ||
|
||
**Describe your problem(s)** | ||
|
||
**Describe your solution(s)** | ||
|
||
**Related Issues (optional):** | ||
<!-- Any related issues such as sub tasks, issues reported in other repositories (e.g component repositories), similar problems, etc. --> | ||
|
||
**Suggested Labels (optional):** | ||
<!-- Optional comma separated list of suggested labels. Non committers can’t assign labels to issues, so this will help issue creators who are not a committer to suggest possible labels--> | ||
|
||
**Suggested Assignees (optional):** | ||
<!--Optional comma separated list of suggested team members who should attend the issue. Non committers can’t assign issues to assignees, so this will help issue creators who are not a committer to suggest possible assignees--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: "Task" | ||
about: "Create a task which you want to keep track" | ||
labels: 'Type/Task' | ||
|
||
--- | ||
|
||
**Description:** | ||
<!-- Give a brief description of the task --> | ||
|
||
**Describe your task(s)** | ||
|
||
**Related Issues (optional):** | ||
<!-- Any related issues such as sub tasks, issues reported in other repositories (e.g component repositories), similar problems, etc. --> | ||
|
||
**Suggested Labels (optional):** | ||
<!-- Optional comma separated list of suggested labels. Non committers can’t assign labels to issues, so this will help issue creators who are not a committer to suggest possible labels--> | ||
|
||
**Suggested Assignees (optional):** | ||
<!--Optional comma separated list of suggested team members who should attend the issue. Non committers can’t assign issues to assignees, so this will help issue creators who are not a committer to suggest possible assignees--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Ballerina Build | ||
uses: ballerina-platform/ballerina-action/@slbeta5 | ||
with: | ||
args: | ||
build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
name: Deployment | ||
|
||
on: | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Ballerina Build | ||
uses: ballerina-platform/ballerina-action/@slbeta5 | ||
with: | ||
args: | ||
build | ||
- name: Ballerina Push | ||
uses: ballerina-platform/ballerina-action/@slbeta5 | ||
with: | ||
args: | ||
push | ||
env: | ||
BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_ACCESS_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
name: 'Close stale pull requests' | ||
|
||
on: | ||
schedule: | ||
- cron: '30 19 * * *' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
stale: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/stale@v3 | ||
with: | ||
stale-pr-message: 'This PR has been open for more than 15 days with no activity. This will be closed in 3 days unless the `stale` label is removed or commented.' | ||
close-pr-message: 'Closed PR due to inactivity for more than 18 days.' | ||
days-before-pr-stale: 15 | ||
days-before-pr-close: 3 | ||
days-before-issue-stale: -1 | ||
days-before-issue-close: -1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
[package] | ||
org="ballerinax" | ||
name="oracledb.driver" | ||
version="1.0.0" | ||
authors=["Ballerina"] | ||
keywords=["OracleDB"] | ||
repository="https://github.com/ballerina-platform/module-ballerinax-oracledb.driver" | ||
license=["Apache-2.0"] | ||
distribution = "slbeta5" | ||
|
||
[[platform.java11.dependency]] | ||
groupId = "com.oracle.database.jdbc" | ||
artifactId = "ojdbc8" | ||
version = "21.3.0.0" | ||
|
||
[[platform.java11.dependency]] | ||
groupId = "com.oracle.database.xml" | ||
artifactId = "xdb" | ||
version = "21.3.0.0" | ||
|
||
[[platform.java11.dependency]] | ||
groupId = "com.oracle.database.xml" | ||
artifactId = "xmlparserv2" | ||
version = "12.2.0.1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
## Package overview | ||
|
||
This Package bundles the latest OracleDB drivers so that the OracleDB connector can be used in ballerina projects easily. | ||
|
||
## Compatibility | ||
|
||
| | Version | | ||
|:---|:---:| | ||
|Ballerina Language | **Swan Lake Beta 5** | | ||
|OracleDB Driver | **21.3.0.0** | | ||
|XDB | **21.3.0.0** | | ||
|Xmlparserv2 | **21.3.0.0** | | ||
|
||
|
||
> The above OracleDB drivers are released under the [Oracle Free Use Terms and Conditions](https://www.oracle.com/downloads/licenses/oracle-free-license.html). | ||
## Usage | ||
|
||
To add the OracleDB driver dependency the project, simply import the module as below, | ||
|
||
```ballerina | ||
import ballerina/sql; | ||
import ballerinax/oracledb; | ||
import ballerinax/oracledb.driver as _; | ||
``` | ||
|
||
# Useful Links | ||
* Chat live with us via our [Slack channel](https://ballerina.io/community/slack/). | ||
* Post all technical questions on Stack Overflow with the [#ballerina](https://stackoverflow.com/questions/tagged/ballerina) tag. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,45 @@ | ||
# module-ballerinax-oracledb.driver | ||
OracleDB driver package for Ballerina | ||
Ballerina OracleDB Driver Library | ||
=================== | ||
|
||
The OracleDB Driver library is one of the external library packages of the | ||
<a target="_blank" href="https://ballerina.io/">Ballerina</a> language. | ||
|
||
This Package bundles the latest OracleDB drivers so that the OracleDB connector can be used in ballerina projects easily. | ||
|
||
# Building from the Source | ||
## Setting 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) | ||
|
||
* [OpenJDK](https://adoptopenjdk.net/) | ||
|
||
> **Note:** Set the JAVA_HOME environment variable to the path name of the directory into which you installed JDK. | ||
|
||
2. Download and install [Ballerina SL Beta 5](https://ballerina.io/). | ||
|
||
## Building the Source | ||
|
||
Execute the commands below to build from the source after installing Ballerina Swan Lake Beta 5 version. | ||
|
||
1. To build the library: | ||
```shell script | ||
bal build | ||
``` | ||
|
||
2. To build the module without the tests: | ||
```shell script | ||
bal build --skip-tests | ||
``` | ||
# Contributing to Ballerina | ||
As an open source project, Ballerina welcomes contributions from the community. | ||
|
||
For more information, go to the [contribution guidelines](https://github.com/ballerina-platform/ballerina-lang/blob/main/CONTRIBUTING.md). | ||
|
||
# Code of Conduct | ||
All contributors are encouraged to read the [Ballerina Code of Conduct](https://ballerina.io/code-of-conduct). | ||
|
||
# Useful Links | ||
* Chat live with us via our [Slack channel](https://ballerina.io/community/slack/). | ||
* Post all technical questions on Stack Overflow with the [#ballerina](https://stackoverflow.com/questions/tagged/ballerina) tag. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// Copyright (c) 2021 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. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
// Copyright (c) 2021, 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. | ||
|
||
import ballerina/sql; | ||
import ballerinax/java.jdbc; | ||
import ballerina/test; | ||
|
||
string url = "jdbc:oracle:thin:@localhost:1521/ORCLCDB.localdomain"; | ||
string user = "balUser"; | ||
string password = "balpass"; | ||
|
||
@test:Config { | ||
groups: ["connection", "connection-init"] | ||
} | ||
function testWithURLParams() returns error? { | ||
jdbc:Client dbClient = check new (url, user, password); | ||
sql:Error? closeResult = dbClient.close(); | ||
test:assertExactEquals(closeResult, (), "Initialising connection with params fails."); | ||
} | ||
|
||
@test:Config { | ||
groups: ["connection", "connection-init"] | ||
} | ||
function testWithConnectionPool() returns error? { | ||
sql:ConnectionPool connectionPool = { | ||
maxOpenConnections: 25, | ||
maxConnectionLifeTime : 45, | ||
minIdleConnections : 15 | ||
}; | ||
jdbc:Client dbClient = check new (url = url, user = user, password = password, connectionPool = connectionPool); | ||
sql:Error? closeResult = dbClient.close(); | ||
test:assertExactEquals(closeResult, (), "Initialising connection with option max connection pool fails."); | ||
test:assertEquals(connectionPool.maxOpenConnections, 25, "Configured max connection config is wrong."); | ||
test:assertEquals(connectionPool.maxConnectionLifeTime, <decimal>45, "Configured max connection life time second is wrong."); | ||
test:assertEquals(connectionPool.minIdleConnections, 15, "Configured min idle connection is wrong."); | ||
} | ||
|
||
@test:Config { | ||
groups: ["connection", "connection-init"] | ||
} | ||
function testWithClosedClient1() returns error? { | ||
jdbc:Client dbClient = check new (url = url, user = user, password = password); | ||
sql:Error? closeResult = dbClient.close(); | ||
test:assertExactEquals(closeResult, (), "Initialising connection with connection params fails."); | ||
sql:ExecutionResult|sql:Error result = dbClient->execute(`CREATE TABLE test (id int)`); | ||
if (result is sql:Error) { | ||
string expectedErrorMessage = "SQL Client is already closed, hence further operations are not allowed"; | ||
test:assertTrue(result.message().startsWith(expectedErrorMessage), | ||
"Error message does not match, actual :\n'" + result.message() + "'\nExpected : \n" + expectedErrorMessage); | ||
} else { | ||
test:assertFail("Error expected"); | ||
} | ||
} |