-
Notifications
You must be signed in to change notification settings - Fork 8
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 #2 from kaneeldias/1.0.x
Add MSSQL connector with test cases for SL Alpha 5
- Loading branch information
Showing
8 changed files
with
235 additions
and
2 deletions.
There are no files selected for viewing
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: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- 1.0.x | ||
workflow_dispatch: | ||
pull_request: | ||
branches: | ||
- 1.0.x | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Ballerina Build | ||
uses: ballerina-platform/ballerina-action/@slalpha5 | ||
with: | ||
args: | ||
build -c --skip-tests | ||
|
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,26 @@ | ||
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/@slalpha5 | ||
with: | ||
args: | ||
build -c --skip-tests | ||
- name: Ballerina Push | ||
uses: ballerina-platform/ballerina-action/@slalpha5 | ||
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
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 @@ | ||
[package] | ||
org="ballerinax" | ||
name="mssql.driver" | ||
version="1.0.0" | ||
authors=["Ballerina"] | ||
keywords=["MSSQL", "SQL Server"] | ||
repository="https://github.com/ballerina-platform/module-ballerinax-mssql.driver" | ||
license=["Apache-2.0"] | ||
|
||
[[platform.java11.dependency]] | ||
groupId = "com.microsoft.sqlserver" | ||
artifactId = "mssql-jdbc" | ||
version = "9.4.0.jre11" | ||
|
||
[build-options] | ||
observabilityIncluded = true |
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,18 @@ | ||
## Package overview | ||
|
||
This Package bundles the latest MSSQL driver so that the mssql connector can be used in ballerina projects easily. | ||
|
||
## Compatibility | ||
|
||
Ballerina Language Version **Swan Lake Alpha 5** | ||
MSSQL Driver Version **9.4.0.jre11** | ||
|
||
## Usage | ||
|
||
To add the MSSQL driver dependency the project simply import the module as below, | ||
|
||
```ballerina | ||
import ballerina/sql; | ||
import ballerinax/mssql; | ||
import ballerinax/mssql.driver as _; | ||
``` |
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-mssql.driver | ||
Ballerina MSSQL DB Driver | ||
Ballerina MSSQL Driver Library | ||
=================== | ||
|
||
The MSSQL 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 MSSQL driver so that the mssql 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 Alpha 5](https://ballerina.io/). | ||
|
||
## Building the Source | ||
|
||
Execute the commands below to build from the source after installing Ballerina Swan Lake Alpha 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,18 @@ | ||
// 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/jballerina.java as _; | ||
|
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,66 @@ | ||
// 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:sqlserver://localhost:1433;"; | ||
string user = "sa"; | ||
string password = "Test123#"; | ||
|
||
@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 : 15, | ||
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>15, "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"); | ||
} | ||
} | ||
|