diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index 69ad51b4..00000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: "CodeQL"
-
-on:
- push:
- branches:
- - "main"
- - "releases/**"
- pull_request:
- branches:
- - "main"
- - "releases/**"
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
-
- strategy:
- fail-fast: false
- matrix:
- language: ['java']
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
- with:
- fetch-depth: 2
-
- - run: git checkout HEAD^2
- if: ${{ github.event_name == 'pull_request' }}
-
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v1
- with:
- languages: ${{ matrix.language }}
-
- - name: Build project
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -B clean package --file pom.xml --settings ci/settings.xml -DskipTests=true
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v1
diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml
index 06a83aa9..a64ca821 100644
--- a/.github/workflows/continuous_integration.yml
+++ b/.github/workflows/continuous_integration.yml
@@ -4,45 +4,20 @@ on:
push:
branches:
- "main"
- - "releases/**"
pull_request:
branches:
- "main"
- - "releases/**"
jobs:
build_jdk8:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up JDK 8
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v3
with:
- java-version: 1.8
- - name: Build with Maven
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -B package --file pom.xml --settings ci/settings.xml -DskipTests=true
- build_jdk9:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 9
- uses: actions/setup-java@v1
- with:
- java-version: 9
- - name: Build with Maven
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -B package --file pom.xml --settings ci/settings.xml -DskipTests=true
- build_jdk10:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 10
- uses: actions/setup-java@v1
- with:
- java-version: 10
+ java-version: 8
+ distribution: zulu
- name: Build with Maven
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -50,59 +25,25 @@ jobs:
build_jdk11:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up JDK 11
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v3
with:
java-version: 11
+ distribution: zulu
- name: Build with Maven
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn -B package --file pom.xml --settings ci/settings.xml -DskipTests=true
- build_jdk12:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 12
- uses: actions/setup-java@v1
- with:
- java-version: 12
- - name: Build with Maven
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -B package --file pom.xml --settings ci/settings.xml -DskipTests=true
- build_jdk13:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 13
- uses: actions/setup-java@v1
- with:
- java-version: 13
- - name: Build with Maven
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -B package --file pom.xml --settings ci/settings.xml -DskipTests=true
- build_jdk14:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 14
- uses: actions/setup-java@v1
- with:
- java-version: 14
- - name: Build with Maven
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -B package --file pom.xml --settings ci/settings.xml -DskipTests=true
- build_jdk15:
+ build_jdk17:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 15
- uses: actions/setup-java@v1
+ - uses: actions/checkout@v3
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
with:
- java-version: 15
+ java-version: 17
+ distribution: zulu
- name: Build with Maven
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -110,11 +51,12 @@ jobs:
integration_test:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up JDK 11
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v3
with:
java-version: 11
+ distribution: zulu
- name: Build with Maven
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 35c7278c..85946b40 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,11 +10,12 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up JDK
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v3
with:
- java-version: 1.8
+ java-version: 8
+ distribution: zulu
- name: Build with Maven
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/agrirouter-sdk-java-api/pom.xml b/agrirouter-sdk-java-api/pom.xml
index 281c7bc8..52838434 100644
--- a/agrirouter-sdk-java-api/pom.xml
+++ b/agrirouter-sdk-java-api/pom.xml
@@ -6,7 +6,7 @@
com.agrirouter.api
agrirouter-sdk-java
- 2.0.0-SNAPSHOT
+ 2.3.0
AGRIROUTER SDK JAVA - API
agrirouter-sdk-java-api
diff --git a/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/env/Constants.java b/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/env/Constants.java
new file mode 100644
index 00000000..a877157d
--- /dev/null
+++ b/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/env/Constants.java
@@ -0,0 +1,9 @@
+package com.dke.data.agrirouter.api.env;
+
+/** Constants for the SDK. */
+public interface Constants {
+ String DEFAULT_PASSWORD = "changeit";
+ String PROTOCOL = "TLSv1.2";
+ String CERT_ALIAS = "cert-alias";
+ String KEY_ALIAS = "key-alias";
+}
diff --git a/agrirouter-sdk-java-convenience/pom.xml b/agrirouter-sdk-java-convenience/pom.xml
index d1b341de..d2ade9b1 100644
--- a/agrirouter-sdk-java-convenience/pom.xml
+++ b/agrirouter-sdk-java-convenience/pom.xml
@@ -5,7 +5,7 @@
com.agrirouter.api
agrirouter-sdk-java
- 2.0.0-SNAPSHOT
+ 2.3.0
AGRIROUTER SDK JAVA - CONVENIENCE
agrirouter-sdk-java-convenience
diff --git a/agrirouter-sdk-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/client/MqttOptionService.java b/agrirouter-sdk-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/client/MqttOptionService.java
index f52b88cc..216b7376 100644
--- a/agrirouter-sdk-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/client/MqttOptionService.java
+++ b/agrirouter-sdk-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/client/MqttOptionService.java
@@ -3,6 +3,7 @@
import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse;
import com.dke.data.agrirouter.api.dto.onboard.RouterDevice;
import com.dke.data.agrirouter.api.enums.CertificationType;
+import com.dke.data.agrirouter.api.env.Constants;
import com.dke.data.agrirouter.api.env.Environment;
import com.dke.data.agrirouter.api.exception.CouldNotCreateMqttOptionException;
import com.dke.data.agrirouter.impl.EnvironmentalService;
@@ -90,7 +91,7 @@ private SocketFactory getSocketFactory(
if (certificationType == CertificationType.PEM) {
kmf.init(
this.keyStoreCreationService.createAndReturnKeystoreFromPEM(certificate, password),
- "changeit".toCharArray());
+ Constants.DEFAULT_PASSWORD.toCharArray());
} else {
if (certificationType == CertificationType.P12) {
kmf.init(
@@ -98,7 +99,7 @@ private SocketFactory getSocketFactory(
password.toCharArray());
}
}
- SSLContext context = SSLContext.getInstance("TLSv1.2");
+ SSLContext context = SSLContext.getInstance(Constants.PROTOCOL);
context.init(kmf.getKeyManagers(), null, null);
return context.getSocketFactory();
} catch (NoSuchAlgorithmException e) {
diff --git a/agrirouter-sdk-java-impl/pom.xml b/agrirouter-sdk-java-impl/pom.xml
index e72ac42c..60e3fd1c 100644
--- a/agrirouter-sdk-java-impl/pom.xml
+++ b/agrirouter-sdk-java-impl/pom.xml
@@ -6,7 +6,7 @@
com.agrirouter.api
agrirouter-sdk-java
- 2.0.0-SNAPSHOT
+ 2.3.0
AGRIROUTER SDK JAVA - IMPL
agrirouter-sdk-java-impl
diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/RequestFactory.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/RequestFactory.java
index ffba1af0..5c0c1075 100644
--- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/RequestFactory.java
+++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/RequestFactory.java
@@ -1,6 +1,7 @@
package com.dke.data.agrirouter.impl;
import com.dke.data.agrirouter.api.enums.CertificationType;
+import com.dke.data.agrirouter.api.env.Constants;
import com.dke.data.agrirouter.api.env.Environment;
import com.dke.data.agrirouter.api.exception.CertificationTypeNotSupportedException;
import com.dke.data.agrirouter.api.exception.CouldNotCreateDynamicKeyStoreException;
@@ -64,7 +65,7 @@ private static Client createClient(
case PEM:
return ClientBuilder.newBuilder()
.withConfig(clientConfig)
- .keyStore(keyStore, KeyStoreCreationService.TEMPORARY_KEY_PASSWORD)
+ .keyStore(keyStore, Constants.DEFAULT_PASSWORD)
.build();
case P12:
return ClientBuilder.newBuilder()
diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/common/ssl/KeyStoreCreationService.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/common/ssl/KeyStoreCreationService.java
index b27703ea..a9461869 100644
--- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/common/ssl/KeyStoreCreationService.java
+++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/common/ssl/KeyStoreCreationService.java
@@ -1,11 +1,13 @@
package com.dke.data.agrirouter.impl.common.ssl;
+import com.dke.data.agrirouter.api.env.Constants;
import com.dke.data.agrirouter.api.exception.CouldNotCreateDynamicKeyStoreException;
import com.dke.data.agrirouter.api.service.HasLogger;
import java.io.ByteArrayInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
@@ -21,16 +23,12 @@
public class KeyStoreCreationService implements HasLogger {
- public static final String TEMPORARY_KEY_PASSWORD = "changeit";
-
private static final String BEGIN_DELIMITER_PRIVATE_KEY = "-----BEGIN ENCRYPTED PRIVATE KEY-----";
private static final String END_DELIMITER_PRIVATE_KEY = "-----END ENCRYPTED PRIVATE KEY-----";
private static final String BEGIN_DELIMITER_CERTIFICATE = "-----BEGIN CERTIFICATE-----";
private static final String END_DELIMITER_CERTIFICATE = "-----END CERTIFICATE-----";
- private static final String DEFAULT_PASSWORD = "changeit";
-
public SocketFactory getSocketFactory(
List rootCertificates, String certificate, String password) throws Exception {
this.logMethodBegin(rootCertificates, certificate, password);
@@ -154,8 +152,8 @@ String createKeyStoreInClasspath(X509Certificate cert, PrivateKey key)
this.getNativeLogger().trace("Store keystore within temporary folder.");
keystore.store(
- new FileOutputStream("./target/test-classes/" + tmpKeystoreName + ".jks"),
- TEMPORARY_KEY_PASSWORD.toCharArray());
+ Files.newOutputStream(Paths.get("./target/test-classes/" + tmpKeystoreName + ".jks")),
+ Constants.DEFAULT_PASSWORD.toCharArray());
this.logMethodEnd(tmpKeystoreName);
return tmpKeystoreName;
@@ -226,17 +224,17 @@ private KeyStore createKeyStore(X509Certificate x509Certificate, PrivateKey key)
this.getNativeLogger().trace("Create JKS keystore.");
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(null);
- keystore.setCertificateEntry("cert-alias", x509Certificate);
+ keystore.setCertificateEntry(Constants.CERT_ALIAS, x509Certificate);
this.getNativeLogger().trace("Add certificate to the key store.");
keystore.setKeyEntry(
- "key-alias", key, getDefaultPassword(), new Certificate[] {x509Certificate});
+ Constants.KEY_ALIAS, key, getDefaultPassword(), new Certificate[] {x509Certificate});
this.logMethodEnd(keystore);
return keystore;
}
private static char[] getDefaultPassword() {
- return DEFAULT_PASSWORD.toCharArray();
+ return Constants.DEFAULT_PASSWORD.toCharArray();
}
}
diff --git a/agrirouter-sdk-java-tests/pom.xml b/agrirouter-sdk-java-tests/pom.xml
index 080d0a9b..6f34fdac 100644
--- a/agrirouter-sdk-java-tests/pom.xml
+++ b/agrirouter-sdk-java-tests/pom.xml
@@ -5,7 +5,7 @@
agrirouter-sdk-java
com.agrirouter.api
- 2.0.0-SNAPSHOT
+ 2.3.0
4.0.0
AGRIROUTER SDK JAVA - TESTS
diff --git a/pom.xml b/pom.xml
index 8c185a92..78dc2922 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.agrirouter.api
agrirouter-sdk-java
- 2.0.0-SNAPSHOT
+ 2.3.0
pom
AGRIROUTER SDK JAVA