Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
d441a28
SK-1666 implement invoke connection public interface
skyflow-shravan Oct 15, 2024
c4ad6c5
SK-1666 validations for invoke connection request
skyflow-shravan Oct 18, 2024
4e61b52
SK-1684 Add unit tests
skyflow-vivek Nov 1, 2024
184124b
SK-1680 Changed info logs to error logs in validation checks
skyflow-vivek Nov 1, 2024
8df4058
SK-1684 Add unit tests
skyflow-vivek Nov 5, 2024
be856d0
SK-1684 Add unit tests for bearer token utilities
skyflow-vivek Nov 6, 2024
fc336f0
SK-1684 Add unit tests for signed data tokens
skyflow-vivek Nov 7, 2024
9f3bd92
SK-1684 Add unit tests for Java SDK v2
skyflow-vivek Nov 8, 2024
9447fcc
Merge branch 'SK-1684-add-unit-tests' into SK-1666-implement-invoke-c…
skyflow-vivek Nov 8, 2024
8fcfdf3
Merge pull request #122 from skyflowapi/SK-1666-implement-invoke-conn…
skyflow-vivek Nov 8, 2024
f148469
SK-1666 Fix conflicts and build issues after merge
skyflow-vivek Nov 8, 2024
f529a23
SK-1684 Add unit tests for invoke connection
skyflow-vivek Nov 15, 2024
8efdf12
SK-1623 Java SDK v2
skyflow-vivek Nov 15, 2024
6027972
SK-1623 Downgrade dotenv to work with java 8
skyflow-vivek Nov 15, 2024
f4affdf
SK-1767 Fix unit tests not running in CI pipeline
skyflow-vivek Nov 18, 2024
8fa94f7
SK-1767 Add new secret for Java SDK v2 tests
skyflow-vivek Nov 18, 2024
8e9193e
SK-1767 Fix issues in CI pipeline
skyflow-vivek Nov 18, 2024
f63b903
SK-1767 Fix compilation issues in CI pipeline
skyflow-vivek Nov 18, 2024
f092e78
SK-1682 Modified the structure of Skyflow error
skyflow-vivek Nov 19, 2024
9ec99b4
SK-1623 Fix minor issues in Java SDK v2
skyflow-vivek Nov 19, 2024
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
19 changes: 13 additions & 6 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: PR CI Checks

on: [ pull_request ]
on: [pull_request]

jobs:
check-commit-message:
Expand All @@ -11,18 +11,18 @@ jobs:
uses: gsactions/commit-message-checker@v1
with:
pattern: '\[?[A-Z]{1,5}-[1-9][0-9]*.+$'
flags: 'gm'
excludeDescription: 'true'
checkAllCommitMessages: 'true'
flags: "gm"
excludeDescription: "true"
checkAllCommitMessages: "true"
accessToken: ${{ secrets.PAT_ACTIONS }}
error: 'One of your your commit messages is not matching the format with JIRA ID Ex: ( SDK-123 commit message )'
error: "One of your your commit messages is not matching the format with JIRA ID Ex: ( SDK-123 commit message )"
Test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
with:
java-version: '1.8'
java-version: "1.8"

- name: create-json
id: create-json
Expand All @@ -31,6 +31,13 @@ jobs:
name: "credentials.json"
json: ${{ secrets.TEST_CREDENTIALS_FILE_STRING }}

- name: create env
id: create-env
run: |
touch .env
echo SKYFLOW_CREDENTIALS=${{ secrets.SKYFLOW_CREDENTIALS }} >> .env
echo TEST_EXPIRED_TOKEN=${{ secrets.TEST_EXPIRED_TOKEN }} >> .env

- name: Build & Run tests with Maven
run: mvn -B package -DTEST_EXPIRED_TOKEN=${{ secrets.TEST_EXPIRED_TOKEN }} -DTEST_DATA_CREDENTIALS_FILE=${{ secrets.TEST_DATA_CREDENTIALS_FILE }} -f pom.xml

Expand Down
78 changes: 52 additions & 26 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<groupId>com.skyflow</groupId>
<artifactId>skyflow-java</artifactId>
<version>1.15.0</version>
<packaging>pom</packaging>
<packaging>jar</packaging>

<name>${project.groupId}:${project.artifactId}</name>
<description>Skyflow SDK for the Java programming language</description>
Expand All @@ -25,10 +25,6 @@
<name>skyflow</name>
</developer>
</developers>
<modules>
<module>v1</module>
<module>v2</module>
</modules>
<scm>
<connection>scm:git:git://github.com:skyflowapi/skyflow-java.git</connection>
<developerConnection>scm:git:ssh://github.com:skyflowapi/skyflow-java.git</developerConnection>
Expand All @@ -41,6 +37,11 @@
<okhttp-version>4.12.0</okhttp-version>
<gson-version>2.10.1</gson-version>
<gson-fire-version>1.9.0</gson-fire-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<okhttp-version>4.12.0</okhttp-version>
<junit-version>4.13.2</junit-version>
<javax-xml-bind-version>2.3.1</javax-xml-bind-version>
<jakarta-annotation-version>1.3.5</jakarta-annotation-version>
</properties>

<distributionManagement>
Expand All @@ -55,47 +56,64 @@
</distributionManagement>

<dependencies>
<!-- newly added v2 dependencies -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.13.0</version>
<groupId>io.github.cdimascio</groupId>
<artifactId>dotenv-java</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
<groupId>io.gsonfire</groupId>
<artifactId>gson-fire</artifactId>
<version>${gson-fire-version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson-version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp-version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>logging-interceptor</artifactId>
<version>${okhttp-version}</version>
</dependency>
<!-- existing dependencies -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta-annotation-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${javax-xml-bind-version}</version>
</dependency>
<!-- existing test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -142,6 +160,14 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<excludePackageNames>
:com.skyflow.generated.rest
:com.skyflow.generated.rest.api
:com.skyflow.generated.rest.auth
:com.skyflow.generated.rest.models
</excludePackageNames>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
Expand Down
86 changes: 86 additions & 0 deletions src/main/java/com/skyflow/ConnectionClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package com.skyflow;

import com.skyflow.config.ConnectionConfig;
import com.skyflow.config.Credentials;
import com.skyflow.errors.ErrorCode;
import com.skyflow.errors.ErrorMessage;
import com.skyflow.errors.SkyflowException;
import com.skyflow.logs.InfoLogs;
import com.skyflow.serviceaccount.util.Token;
import com.skyflow.utils.Constants;
import com.skyflow.utils.Utils;
import com.skyflow.utils.logger.LogUtil;
import com.skyflow.utils.validations.Validations;
import io.github.cdimascio.dotenv.Dotenv;

public class ConnectionClient {
private final ConnectionConfig connectionConfig;
protected String token;
protected String apiKey;
private Credentials commonCredentials;
private Credentials finalCredentials;

protected ConnectionClient(ConnectionConfig connectionConfig, Credentials credentials) {
super();
this.connectionConfig = connectionConfig;
this.commonCredentials = credentials;
}

protected ConnectionConfig getConnectionConfig() {
return connectionConfig;

Check warning on line 30 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L30

Added line #L30 was not covered by tests
}

protected void setCommonCredentials(Credentials commonCredentials) {
this.commonCredentials = commonCredentials;
prioritiseCredentials();
}

protected void updateConnectionConfig(ConnectionConfig connectionConfig) {
prioritiseCredentials();
}

protected void setBearerToken() throws SkyflowException {
prioritiseCredentials();
Validations.validateCredentials(this.finalCredentials);

Check warning on line 44 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L43-L44

Added lines #L43 - L44 were not covered by tests
if (this.finalCredentials.getApiKey() != null) {
setApiKey();
return;

Check warning on line 47 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L46-L47

Added lines #L46 - L47 were not covered by tests
} else if (Token.isExpired(token)) {
LogUtil.printInfoLog(InfoLogs.BEARER_TOKEN_EXPIRED.getLog());
token = Utils.generateBearerToken(this.finalCredentials);

Check warning on line 50 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L49-L50

Added lines #L49 - L50 were not covered by tests
} else {
LogUtil.printInfoLog(InfoLogs.REUSE_BEARER_TOKEN.getLog());

Check warning on line 52 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L52

Added line #L52 was not covered by tests
}
}

Check warning on line 54 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L54

Added line #L54 was not covered by tests

private void setApiKey() {
if (apiKey == null) {
apiKey = this.finalCredentials.getApiKey();

Check warning on line 58 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L58

Added line #L58 was not covered by tests
} else {
LogUtil.printInfoLog(InfoLogs.REUSE_API_KEY.getLog());

Check warning on line 60 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L60

Added line #L60 was not covered by tests
}
}

Check warning on line 62 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L62

Added line #L62 was not covered by tests

private void prioritiseCredentials() {
try {
if (this.connectionConfig.getCredentials() != null) {
this.finalCredentials = this.connectionConfig.getCredentials();
} else if (this.commonCredentials != null) {
this.finalCredentials = this.commonCredentials;
} else {
Dotenv dotenv = Dotenv.load();
String sysCredentials = dotenv.get(Constants.ENV_CREDENTIALS_KEY_NAME);

Check warning on line 72 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L71-L72

Added lines #L71 - L72 were not covered by tests
if (sysCredentials == null) {
throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(),
ErrorMessage.EmptyCredentials.getMessage());

Check warning on line 75 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L74-L75

Added lines #L74 - L75 were not covered by tests
} else {
this.finalCredentials = new Credentials();
this.finalCredentials.setCredentialsString(sysCredentials);

Check warning on line 78 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L77-L78

Added lines #L77 - L78 were not covered by tests
}
}
} catch (Exception e) {
throw new RuntimeException(e);

Check warning on line 82 in src/main/java/com/skyflow/ConnectionClient.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/skyflow/ConnectionClient.java#L81-L82

Added lines #L81 - L82 were not covered by tests
}
}

}
Loading
Loading