From a0ec954241ca0f82a9691abc6c83fc019becf2a8 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:27:20 +0100 Subject: [PATCH 01/18] Getter and Setter in Transloadit.java --- .../java/com/transloadit/sdk/Transloadit.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 29a30a9..1662f6e 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -14,6 +14,8 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** @@ -33,6 +35,7 @@ public class Transloadit { protected int retryAttemptsRequestException = 0; // default value protected ArrayList qualifiedErrorsForRetry; protected int retryDelay = 0; // default value + protected ArrayList additionalTransloaditHeaders; /** * A new instance to transloadit client. @@ -47,8 +50,9 @@ public Transloadit(String key, @Nullable String secret, long duration, String ho this.secret = secret; this.duration = duration; this.hostUrl = hostUrl; - shouldSignRequest = secret != null; - qualifiedErrorsForRetry = new ArrayList(Collections.singletonList("java.net.SocketTimeoutException")); + this.shouldSignRequest = secret != null; + this.qualifiedErrorsForRetry = new ArrayList(Collections.singletonList("java.net.SocketTimeoutException")); + this.additionalTransloaditHeaders = new ArrayList(); } /** * A new instance to transloadit client. @@ -396,5 +400,31 @@ public void setRetryDelay(int delay) throws LocalOperationException { } } + /** + * Returns additional Transloadit Headers, which are sent along with the request. + * @return List of additional Transloadit Headers + */ + public ArrayList getAdditionalTransloaditHeaders() { + return this.additionalTransloaditHeaders; + } + /** + * Adds a Transloadit Header, which will be sent along with the request. + * @param sdkName Name of the used extra Software / SDK + * @param versionNumber Semantic Version Number of the used SDK + * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters + */ + public void setAdditionalTransloaditHeaders(String sdkName, String versionNumber) throws LocalOperationException { + Pattern illegalChars = Pattern.compile("[.:,;\"'+]", Pattern.CASE_INSENSITIVE); + Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)",Pattern.CASE_INSENSITIVE); + + Matcher charMatcher = illegalChars.matcher(sdkName); + Matcher versionMatcher = semanticVersion.matcher(versionNumber); + if (charMatcher.find() || !versionMatcher.matches()) { + throw new LocalOperationException("Provided version number does not match expected format of" + + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)"); + } + String header = sdkName + ":" + versionNumber; + additionalTransloaditHeaders.add(header); + } } From f20dc5e90181c3550003ef9b2bc9242ebc758784 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:32:01 +0100 Subject: [PATCH 02/18] Getter and Setter in Transloadit.java --- src/main/java/com/transloadit/sdk/Transloadit.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 1662f6e..ec2f97b 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -415,14 +415,14 @@ public ArrayList getAdditionalTransloaditHeaders() { * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters */ public void setAdditionalTransloaditHeaders(String sdkName, String versionNumber) throws LocalOperationException { - Pattern illegalChars = Pattern.compile("[.:,;\"'+]", Pattern.CASE_INSENSITIVE); - Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)",Pattern.CASE_INSENSITIVE); + Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); + Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)", Pattern.CASE_INSENSITIVE); Matcher charMatcher = illegalChars.matcher(sdkName); Matcher versionMatcher = semanticVersion.matcher(versionNumber); if (charMatcher.find() || !versionMatcher.matches()) { throw new LocalOperationException("Provided version number does not match expected format of" - + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)"); + + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName conains [.:,;\"'\\+]"); } String header = sdkName + ":" + versionNumber; additionalTransloaditHeaders.add(header); From d4555145f57e9b054b164a977f8895d4c85ade29 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:34:15 +0100 Subject: [PATCH 03/18] Getter and Setter in Transloadit.java --- src/main/java/com/transloadit/sdk/Transloadit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index ec2f97b..3761893 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -422,7 +422,7 @@ public void setAdditionalTransloaditHeaders(String sdkName, String versionNumber Matcher versionMatcher = semanticVersion.matcher(versionNumber); if (charMatcher.find() || !versionMatcher.matches()) { throw new LocalOperationException("Provided version number does not match expected format of" - + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName conains [.:,;\"'\\+]"); + + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName contains [.:,;\"'\\+]"); } String header = sdkName + ":" + versionNumber; additionalTransloaditHeaders.add(header); From ee1f20cbb6f32aa79ffd00ecdf2d2e0a63623a62 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Wed, 12 Jan 2022 01:28:39 +0100 Subject: [PATCH 04/18] Getter and Setter Tests in TransloaditTest.java --- .../java/com/transloadit/sdk/Transloadit.java | 2 ++ .../com/transloadit/sdk/TransloaditTest.java | 34 +++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 3761893..e80f82b 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -415,6 +415,8 @@ public ArrayList getAdditionalTransloaditHeaders() { * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters */ public void setAdditionalTransloaditHeaders(String sdkName, String versionNumber) throws LocalOperationException { + versionNumber = versionNumber.replaceAll("\\s+", ""); + sdkName = sdkName.replaceAll("\\s+", ""); Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)", Pattern.CASE_INSENSITIVE); diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index a436e61..66a2405 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -13,6 +13,7 @@ import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; +import javax.validation.constraints.AssertTrue; import java.io.IOException; import java.util.HashMap; //CHECKSTYLE:OFF @@ -235,7 +236,7 @@ public void getBill() throws LocalOperationException, RequestException, IOExcept * {@link Transloadit#setQualifiedErrorsForRetry(ArrayList)} are working as supposed. */ @Test - public void getAndsetqualifiedErrorsForRetry() { + public void getAndSetqualifiedErrorsForRetry() { ArrayList exceptionTemplate = new ArrayList(); exceptionTemplate.add("java.net.SocketTimeoutException"); exceptionTemplate.add("Socket.blah.Exception"); @@ -258,7 +259,7 @@ public void getAndsetqualifiedErrorsForRetry() { * @throws LocalOperationException */ @Test - public void getAndsetTimeoutRetry() throws LocalOperationException { + public void getAndSetTimeoutRetry() throws LocalOperationException { assertEquals(0, transloadit.getRetryDelay()); transloadit.setRetryDelay(5); assertEquals(5, transloadit.getRetryDelay()); @@ -271,5 +272,34 @@ public void getAndsetTimeoutRetry() throws LocalOperationException { assertTrue(exception instanceof LocalOperationException); } + + /** + * Test if AdditionalTransloaditHeaders are working properly. + */ + @Test + public void getAndSetAdditionalTransloaditHeaders() throws LocalOperationException { + Transloadit testTransloadit = new Transloadit("key", "secret"); + testTransloadit.setAdditionalTransloaditHeaders(" Test-SDK ", "0.0.1"); + ArrayList headerList = testTransloadit.getAdditionalTransloaditHeaders(); + String header = headerList.get(0); + assertEquals("Test-SDK:0.0.1", header); + + // Test if exceptions are thrown + Exception ex1 = new Exception(); + try { + testTransloadit.setAdditionalTransloaditHeaders("Android-SDK", "3.3.3.4"); + } catch (Exception e) { + ex1 = e; + } + + Exception ex2 = new Exception(); + try { + testTransloadit.setAdditionalTransloaditHeaders("Android,SDK", "3.3.3"); + } catch (Exception e) { + ex2 = e; + } + assertTrue(ex1 instanceof LocalOperationException); + assertTrue(ex2 instanceof LocalOperationException); + } } From d113d7db79b824859feda34fafbbf095cdf13417 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Wed, 12 Jan 2022 01:35:43 +0100 Subject: [PATCH 05/18] Getter and Setter Tests in TransloaditTest.java --- .../java/com/transloadit/sdk/Transloadit.java | 16 ++++++++-------- .../com/transloadit/sdk/TransloaditTest.java | 13 ++++++------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index e80f82b..8f01e72 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -35,7 +35,7 @@ public class Transloadit { protected int retryAttemptsRequestException = 0; // default value protected ArrayList qualifiedErrorsForRetry; protected int retryDelay = 0; // default value - protected ArrayList additionalTransloaditHeaders; + protected ArrayList additionalTransloaditClientHeaderContent; /** * A new instance to transloadit client. @@ -52,7 +52,7 @@ public Transloadit(String key, @Nullable String secret, long duration, String ho this.hostUrl = hostUrl; this.shouldSignRequest = secret != null; this.qualifiedErrorsForRetry = new ArrayList(Collections.singletonList("java.net.SocketTimeoutException")); - this.additionalTransloaditHeaders = new ArrayList(); + this.additionalTransloaditClientHeaderContent = new ArrayList(); } /** * A new instance to transloadit client. @@ -401,20 +401,20 @@ public void setRetryDelay(int delay) throws LocalOperationException { } /** - * Returns additional Transloadit Headers, which are sent along with the request. + * Returns additional Information which will be sent alongside with the request in the Transloadit-Client Header. * @return List of additional Transloadit Headers */ - public ArrayList getAdditionalTransloaditHeaders() { - return this.additionalTransloaditHeaders; + public ArrayList getAdditionalTransloaditClientHeaderContent() { + return this.additionalTransloaditClientHeaderContent; } /** - * Adds a Transloadit Header, which will be sent along with the request. + * Adds Information, which will be sent alongside with the request in the Transloadit-Client Header. * @param sdkName Name of the used extra Software / SDK * @param versionNumber Semantic Version Number of the used SDK * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters */ - public void setAdditionalTransloaditHeaders(String sdkName, String versionNumber) throws LocalOperationException { + public void setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { versionNumber = versionNumber.replaceAll("\\s+", ""); sdkName = sdkName.replaceAll("\\s+", ""); Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); @@ -427,6 +427,6 @@ public void setAdditionalTransloaditHeaders(String sdkName, String versionNumber + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName contains [.:,;\"'\\+]"); } String header = sdkName + ":" + versionNumber; - additionalTransloaditHeaders.add(header); + additionalTransloaditClientHeaderContent.add(header); } } diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index 66a2405..a4645c3 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -13,7 +13,6 @@ import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; -import javax.validation.constraints.AssertTrue; import java.io.IOException; import java.util.HashMap; //CHECKSTYLE:OFF @@ -277,24 +276,24 @@ public void getAndSetTimeoutRetry() throws LocalOperationException { * Test if AdditionalTransloaditHeaders are working properly. */ @Test - public void getAndSetAdditionalTransloaditHeaders() throws LocalOperationException { + public void getAndSetdditionalTransloaditClientHeaderContent() throws LocalOperationException { Transloadit testTransloadit = new Transloadit("key", "secret"); - testTransloadit.setAdditionalTransloaditHeaders(" Test-SDK ", "0.0.1"); - ArrayList headerList = testTransloadit.getAdditionalTransloaditHeaders(); - String header = headerList.get(0); + testTransloadit.setAdditionalTransloaditClientHeaderContent(" Test-SDK ", "0.0.1"); + ArrayList headerList = testTransloadit.getAdditionalTransloaditClientHeaderContent(); + String header = (String) headerList.get(0); assertEquals("Test-SDK:0.0.1", header); // Test if exceptions are thrown Exception ex1 = new Exception(); try { - testTransloadit.setAdditionalTransloaditHeaders("Android-SDK", "3.3.3.4"); + testTransloadit.setAdditionalTransloaditClientHeaderContent("Android-SDK", "3.3.3.4"); } catch (Exception e) { ex1 = e; } Exception ex2 = new Exception(); try { - testTransloadit.setAdditionalTransloaditHeaders("Android,SDK", "3.3.3"); + testTransloadit.setAdditionalTransloaditClientHeaderContent("Android,SDK", "3.3.3"); } catch (Exception e) { ex2 = e; } From 13ea9b849768ef8340df54398b21c67e9011cc3e Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Wed, 12 Jan 2022 17:31:30 +0100 Subject: [PATCH 06/18] Finish on Transloadit.class modifications --- .../java/com/transloadit/sdk/Request.java | 11 -- .../java/com/transloadit/sdk/Transloadit.java | 105 ++++++++++++------ .../com/transloadit/sdk/TransloaditTest.java | 34 +++++- 3 files changed, 104 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Request.java b/src/main/java/com/transloadit/sdk/Request.java index 9c0ba38..ef50dfc 100644 --- a/src/main/java/com/transloadit/sdk/Request.java +++ b/src/main/java/com/transloadit/sdk/Request.java @@ -53,17 +53,6 @@ public class Request { retryAttemptsRequestExceptionLeft = transloadit.getRetryAttemptsRequestException(); qualifiedErrorsForRetry = transloadit.getQualifiedErrorsForRetry(); retryDelay = transloadit.getRetryDelay(); - Properties prop = new Properties(); - InputStream in = getClass().getClassLoader().getResourceAsStream("version.properties"); - try { - prop.load(in); - version = "java-sdk:" + prop.getProperty("versionNumber").replace("'", ""); - in.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } catch (NullPointerException npe) { - version = "java-sdk:unknown"; - } } /** diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 8f01e72..1235884 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -10,10 +10,9 @@ import com.transloadit.sdk.response.Response; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -36,6 +35,7 @@ public class Transloadit { protected ArrayList qualifiedErrorsForRetry; protected int retryDelay = 0; // default value protected ArrayList additionalTransloaditClientHeaderContent; + protected String versionInfo; /** * A new instance to transloadit client. @@ -53,6 +53,7 @@ public Transloadit(String key, @Nullable String secret, long duration, String ho this.shouldSignRequest = secret != null; this.qualifiedErrorsForRetry = new ArrayList(Collections.singletonList("java.net.SocketTimeoutException")); this.additionalTransloaditClientHeaderContent = new ArrayList(); + this.versionInfo = loadVersionInfo(); } /** * A new instance to transloadit client. @@ -99,6 +100,72 @@ public void setRequestSigning(boolean flag) throws LocalOperationException { } } + /** + * Loads the current version from the 'version.properties' File and builds an Info String for the + * "Transloadit-Client" header. + * @return String with content: "java-sdk:" + */ + protected String loadVersionInfo() { + Properties prop = new Properties(); + String versionInfo; + InputStream in = getClass().getClassLoader().getResourceAsStream("version.properties"); + try { + prop.load(in); + versionInfo = "java-sdk:" + prop.getProperty("versionNumber").replace("'", ""); + in.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (NullPointerException npe) { + versionInfo = "java-sdk:unknown"; + } + return versionInfo; + } + + /** + * Returns additional Information which will be sent alongside with the request in the Transloadit-Client Header. + * @return List of additional Transloadit Headers + */ + public ArrayList getAdditionalTransloaditClientHeaderContent() { + return this.additionalTransloaditClientHeaderContent; + } + + /** + * Adds Information, which will be sent alongside with the request in the Transloadit-Client Header. + * @param sdkName Name of the used extra Software / SDK + * @param versionNumber Semantic Version Number of the used SDK + * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters + */ + public void setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { + versionNumber = versionNumber.replaceAll("\\s+", ""); + sdkName = sdkName.replaceAll("\\s+", ""); + Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); + Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)", Pattern.CASE_INSENSITIVE); + + Matcher charMatcher = illegalChars.matcher(sdkName); + Matcher versionMatcher = semanticVersion.matcher(versionNumber); + if (charMatcher.find() || !versionMatcher.matches()) { + throw new LocalOperationException("Provided version number does not match expected format of" + + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName contains [.:,;\"'\\+]"); + } + String header = sdkName + ":" + versionNumber; + additionalTransloaditClientHeaderContent.add(header); + } + + /** + * This method builds the String for the Transloadit Client Header, including the SDK Information and all the contens + * of {@link Transloadit#additionalTransloaditClientHeaderContent}. + * @return String + */ + protected String getTransloaditClientHeader() { + StringBuilder clientHeader = new StringBuilder(this.versionInfo); + if (!this.additionalTransloaditClientHeaderContent.isEmpty()) { + for (String str : additionalTransloaditClientHeaderContent) { + clientHeader.append(", ").append(str); + } + } + return clientHeader.toString(); + } + /** * Adjusts number of retry attempts that should be taken if a "RATE_LIMIT_REACHED" error appears * during assembly processing. @@ -399,34 +466,4 @@ public void setRetryDelay(int delay) throws LocalOperationException { this.retryDelay = delay; } } - - /** - * Returns additional Information which will be sent alongside with the request in the Transloadit-Client Header. - * @return List of additional Transloadit Headers - */ - public ArrayList getAdditionalTransloaditClientHeaderContent() { - return this.additionalTransloaditClientHeaderContent; - } - - /** - * Adds Information, which will be sent alongside with the request in the Transloadit-Client Header. - * @param sdkName Name of the used extra Software / SDK - * @param versionNumber Semantic Version Number of the used SDK - * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters - */ - public void setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { - versionNumber = versionNumber.replaceAll("\\s+", ""); - sdkName = sdkName.replaceAll("\\s+", ""); - Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); - Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)", Pattern.CASE_INSENSITIVE); - - Matcher charMatcher = illegalChars.matcher(sdkName); - Matcher versionMatcher = semanticVersion.matcher(versionNumber); - if (charMatcher.find() || !versionMatcher.matches()) { - throw new LocalOperationException("Provided version number does not match expected format of" - + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName contains [.:,;\"'\\+]"); - } - String header = sdkName + ":" + versionNumber; - additionalTransloaditClientHeaderContent.add(header); - } } diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index a4645c3..9dfc8fe 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -18,6 +18,8 @@ //CHECKSTYLE:OFF import java.util.Map; // Suppress warning as the Map import is needed for the JavaDoc Comments import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; //CHECKSTYLE:ON import static org.junit.Assert.assertEquals; @@ -273,7 +275,9 @@ public void getAndSetTimeoutRetry() throws LocalOperationException { } /** - * Test if AdditionalTransloaditHeaders are working properly. + * Test if AdditionalTransloaditHeaders are working properly. This concerns + * {@link Transloadit#getAdditionalTransloaditClientHeaderContent()} and + * {@link Transloadit#setAdditionalTransloaditClientHeaderContent(String, String)} */ @Test public void getAndSetdditionalTransloaditClientHeaderContent() throws LocalOperationException { @@ -300,5 +304,33 @@ public void getAndSetdditionalTransloaditClientHeaderContent() throws LocalOpera assertTrue(ex1 instanceof LocalOperationException); assertTrue(ex2 instanceof LocalOperationException); } + + /** + * Tests if the version Info is obtained correctly with {@link Transloadit#loadVersionInfo()} + */ + @Test + public void loadVersionInfo() { + String info = transloadit.loadVersionInfo(); + Pattern versionPattern = Pattern.compile( + "^[a-z-]*[:]([0-9]+)\\.([0-9]+)\\.([0-9]+)$", Pattern.CASE_INSENSITIVE); + Matcher matcher = versionPattern.matcher(info); + assertTrue(matcher.matches()); + } + + /** + * This test checks if the Tranlsoadit-CLient Header string is built with + * {@link Transloadit#getTransloaditClientHeader()}. + */ + @Test + public void getTransloaditClientHeader() throws LocalOperationException { + Transloadit testTransloadit = new Transloadit("Key", "Secret"); + String info = testTransloadit.loadVersionInfo(); + testTransloadit.setAdditionalTransloaditClientHeaderContent("android-sdk", "2.2.2"); + testTransloadit.setAdditionalTransloaditClientHeaderContent("Uppy", "11.0.123"); + + String comparisonString = info + ", android-sdk:2.2.2, Uppy:11.0.123"; + assertEquals(comparisonString, testTransloadit.getTransloaditClientHeader()); + } + } From f7be0035cf8af167d3e0a21e5ec4d8a9bdf39fa0 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Wed, 12 Jan 2022 17:44:09 +0100 Subject: [PATCH 07/18] Finish modifications --- .../java/com/transloadit/sdk/Request.java | 19 +++++++------ .../java/com/transloadit/sdk/Transloadit.java | 28 ++++++++++++------- .../com/transloadit/sdk/TransloaditTest.java | 2 +- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Request.java b/src/main/java/com/transloadit/sdk/Request.java index ef50dfc..e0fbdf5 100644 --- a/src/main/java/com/transloadit/sdk/Request.java +++ b/src/main/java/com/transloadit/sdk/Request.java @@ -37,11 +37,11 @@ public class Request { private Transloadit transloadit; private OkHttpClient httpClient = new OkHttpClient(); - private String version; private int retryAttemptsRateLimitLeft; protected int retryAttemptsRequestExceptionLeft; private ArrayList qualifiedErrorsForRetry; private int retryDelay; + private String transloaditClientHeader; /** * Constructs a new instance of the {@link Request} object in to prepare a new HTTP-Request to the Transloadit API. @@ -49,10 +49,11 @@ public class Request { */ Request(Transloadit transloadit) { this.transloadit = transloadit; - retryAttemptsRateLimitLeft = transloadit.getRetryAttemptsRateLimit(); - retryAttemptsRequestExceptionLeft = transloadit.getRetryAttemptsRequestException(); - qualifiedErrorsForRetry = transloadit.getQualifiedErrorsForRetry(); - retryDelay = transloadit.getRetryDelay(); + this.transloaditClientHeader = transloadit.getTransloaditClientHeader(); + this.retryAttemptsRateLimitLeft = transloadit.getRetryAttemptsRateLimit(); + this.retryAttemptsRequestExceptionLeft = transloadit.getRetryAttemptsRequestException(); + this.qualifiedErrorsForRetry = transloadit.getQualifiedErrorsForRetry(); + this.retryDelay = transloadit.getRetryDelay(); } /** @@ -68,7 +69,7 @@ okhttp3.Response get(String url, Map params) String fullUrl = getFullUrl(url); okhttp3.Request request = new okhttp3.Request.Builder() .url(addUrlParams(fullUrl, toPayload(params))) - .addHeader("Transloadit-Client", version) + .addHeader("Transloadit-Client", this.transloaditClientHeader) .build(); try { @@ -117,7 +118,7 @@ okhttp3.Response post(String url, Map params, okhttp3.Request request = new okhttp3.Request.Builder().url(getFullUrl(url)) .post(getBody(payload, files, fileStreams)) - .addHeader("Transloadit-Client", version) + .addHeader("Transloadit-Client", this.transloaditClientHeader) .build(); try { @@ -165,7 +166,7 @@ okhttp3.Response delete(String url, Map params) okhttp3.Request request = new okhttp3.Request.Builder() .url(getFullUrl(url)) .delete(getBody(toPayload(params), null)) - .addHeader("Transloadit-Client", version) + .addHeader("Transloadit-Client", this.transloaditClientHeader) .build(); try { @@ -195,7 +196,7 @@ okhttp3.Response put(String url, Map data) okhttp3.Request request = new okhttp3.Request.Builder() .url(getFullUrl(url)) .put(getBody(toPayload(data), null)) - .addHeader("Transloadit-Client", version) + .addHeader("Transloadit-Client", this.transloaditClientHeader) .build(); try { diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 1235884..89d11db 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -12,7 +12,11 @@ import java.io.IOException; import java.io.InputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -51,7 +55,8 @@ public Transloadit(String key, @Nullable String secret, long duration, String ho this.duration = duration; this.hostUrl = hostUrl; this.shouldSignRequest = secret != null; - this.qualifiedErrorsForRetry = new ArrayList(Collections.singletonList("java.net.SocketTimeoutException")); + this.qualifiedErrorsForRetry = new ArrayList( + Collections.singletonList("java.net.SocketTimeoutException")); this.additionalTransloaditClientHeaderContent = new ArrayList(); this.versionInfo = loadVersionInfo(); } @@ -101,9 +106,9 @@ public void setRequestSigning(boolean flag) throws LocalOperationException { } /** - * Loads the current version from the 'version.properties' File and builds an Info String for the - * "Transloadit-Client" header. - * @return String with content: "java-sdk:" + * Loads the current version from the version.properties File and builds an Info String for the + * Transloadit-Client header. + * @return String with content: java-sdk:version */ protected String loadVersionInfo() { Properties prop = new Properties(); @@ -133,9 +138,11 @@ public ArrayList getAdditionalTransloaditClientHeaderContent() { * Adds Information, which will be sent alongside with the request in the Transloadit-Client Header. * @param sdkName Name of the used extra Software / SDK * @param versionNumber Semantic Version Number of the used SDK - * @throws LocalOperationException if version number has a wrong input format or the sdkName contains illegal characters + * @throws LocalOperationException if version number has a wrong input format or + * the sdkName contains illegal characters */ - public void setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { + public void setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) + throws LocalOperationException { versionNumber = versionNumber.replaceAll("\\s+", ""); sdkName = sdkName.replaceAll("\\s+", ""); Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); @@ -152,7 +159,8 @@ public void setAdditionalTransloaditClientHeaderContent(String sdkName, String v } /** - * This method builds the String for the Transloadit Client Header, including the SDK Information and all the contens + * This method builds the String for the Transloadit Client Header, + * including the SDK Information and all the contents. * of {@link Transloadit#additionalTransloaditClientHeaderContent}. * @return String */ @@ -192,8 +200,8 @@ public int getRetryAttemptsRateLimit() { /** - *

This is an experimental debugging feature and should therefore best not be turned on at all or only with - * the utmost caution.

+ * This is an experimental debugging feature and should therefore best not be turned on at all or only with + * the utmost caution. * This method adjusts number of retry attempts that should be taken if specific "REQUEST_EXCEPTION" are * occuring during assembly processing. * The Default value for every Transloadit instance is 0 extra retries. diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index 9dfc8fe..c014e78 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -306,7 +306,7 @@ public void getAndSetdditionalTransloaditClientHeaderContent() throws LocalOpera } /** - * Tests if the version Info is obtained correctly with {@link Transloadit#loadVersionInfo()} + * Tests if the version Info is obtained correctly with {@link Transloadit#loadVersionInfo()}. */ @Test public void loadVersionInfo() { From f86f4b03281f9f5b1cd1547735c805f839bad2db Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Wed, 12 Jan 2022 17:47:26 +0100 Subject: [PATCH 08/18] Update Linter to more recent version in order to solve its issues --- .github/workflows/lintChanges.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lintChanges.yml b/.github/workflows/lintChanges.yml index 136faac..be6b335 100644 --- a/.github/workflows/lintChanges.yml +++ b/.github/workflows/lintChanges.yml @@ -18,7 +18,7 @@ jobs: fetch-depth: 0 - name: Lint_Java - uses: github/super-linter@v3 + uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: true # lint all files VALIDATE_JAVA: true # only lint Java files From bb8562ea0fe0b0cd1ac90c826520aa2285f720c0 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Wed, 12 Jan 2022 17:51:01 +0100 Subject: [PATCH 09/18] Update Linter to more recent version in order to solve its issues --- src/main/java/com/transloadit/sdk/Request.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/transloadit/sdk/Request.java b/src/main/java/com/transloadit/sdk/Request.java index e0fbdf5..da24fd2 100644 --- a/src/main/java/com/transloadit/sdk/Request.java +++ b/src/main/java/com/transloadit/sdk/Request.java @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import java.util.Properties; import java.util.Random; /** From 70f9b7288a0b5dd414673b022953e2389a96f71b Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 15 Jan 2022 15:58:21 +0100 Subject: [PATCH 10/18] Make it possible to add an unknown SDK version --- .../java/com/transloadit/sdk/Transloadit.java | 9 +++++++-- .../com/transloadit/sdk/TransloaditTest.java | 19 +++++++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 89d11db..b8fe0af 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -141,7 +141,7 @@ public ArrayList getAdditionalTransloaditClientHeaderContent() { * @throws LocalOperationException if version number has a wrong input format or * the sdkName contains illegal characters */ - public void setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) + public String setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { versionNumber = versionNumber.replaceAll("\\s+", ""); sdkName = sdkName.replaceAll("\\s+", ""); @@ -150,12 +150,17 @@ public void setAdditionalTransloaditClientHeaderContent(String sdkName, String v Matcher charMatcher = illegalChars.matcher(sdkName); Matcher versionMatcher = semanticVersion.matcher(versionNumber); - if (charMatcher.find() || !versionMatcher.matches()) { + if (charMatcher.find() || (!versionMatcher.matches() && (!versionNumber.equals("unknown")))) { throw new LocalOperationException("Provided version number does not match expected format of" + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName contains [.:,;\"'\\+]"); } + if (versionNumber.equals("0.0.0")) { + versionNumber = "unknown"; + } + String header = sdkName + ":" + versionNumber; additionalTransloaditClientHeaderContent.add(header); + return header; } /** diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index c014e78..9b73a73 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -21,9 +21,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; //CHECKSTYLE:ON +import static org.junit.Assert.*; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; /** * Unit test for {@link Transloadit} class. Api-Responses are simulated by mocking the server's response. @@ -303,6 +302,22 @@ public void getAndSetdditionalTransloaditClientHeaderContent() throws LocalOpera } assertTrue(ex1 instanceof LocalOperationException); assertTrue(ex2 instanceof LocalOperationException); + + // Test special cases + + Exception ex3 = new Exception(); + String str1 = ""; + String str2 = ""; + try { + str1 = testTransloadit.setAdditionalTransloaditClientHeaderContent("Android-SDK", "unknown"); + str2 = testTransloadit.setAdditionalTransloaditClientHeaderContent("Android-SDK", "0.0.0"); + + } catch (LocalOperationException e) { + ex3 = e; + } + assertFalse(ex3 instanceof LocalOperationException); + assertTrue(str1.contains("unknown")); + assertTrue(str2.contains("unknown")); } /** From 6528b0eebc3d44af43e9f50da9cb88687965d359 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 15 Jan 2022 16:12:38 +0100 Subject: [PATCH 11/18] Make the linter Happy again --- src/test/java/com/transloadit/sdk/TransloaditTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index 9b73a73..58c735c 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -21,7 +21,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; //CHECKSTYLE:ON -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; /** From 3a48cfc2e8675b7a47205159e3759287754b3040 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 15 Jan 2022 16:18:41 +0100 Subject: [PATCH 12/18] Make the linter Happy again --- src/main/java/com/transloadit/sdk/Transloadit.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index b8fe0af..337ab16 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -140,6 +140,7 @@ public ArrayList getAdditionalTransloaditClientHeaderContent() { * @param versionNumber Semantic Version Number of the used SDK * @throws LocalOperationException if version number has a wrong input format or * the sdkName contains illegal characters + * @return Header String */ public String setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { From 16caaa59484414887f06d07b1f644e5c85ed013a Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 15 Jan 2022 18:17:15 +0100 Subject: [PATCH 13/18] Protected modifier for both methods --- src/main/java/com/transloadit/sdk/Transloadit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 337ab16..8509c25 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -142,7 +142,7 @@ public ArrayList getAdditionalTransloaditClientHeaderContent() { * the sdkName contains illegal characters * @return Header String */ - public String setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) + protected String setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) throws LocalOperationException { versionNumber = versionNumber.replaceAll("\\s+", ""); sdkName = sdkName.replaceAll("\\s+", ""); From 2ada2c73e360c53048c3d8caea7b0ba9f68b8544 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 29 Jan 2022 12:24:38 +0100 Subject: [PATCH 14/18] Updated header management --- .../java/com/transloadit/sdk/Request.java | 12 ++-- .../java/com/transloadit/sdk/Transloadit.java | 58 ++-------------- .../com/transloadit/sdk/TransloaditTest.java | 66 +------------------ 3 files changed, 11 insertions(+), 125 deletions(-) diff --git a/src/main/java/com/transloadit/sdk/Request.java b/src/main/java/com/transloadit/sdk/Request.java index da24fd2..81412fa 100644 --- a/src/main/java/com/transloadit/sdk/Request.java +++ b/src/main/java/com/transloadit/sdk/Request.java @@ -40,7 +40,7 @@ public class Request { protected int retryAttemptsRequestExceptionLeft; private ArrayList qualifiedErrorsForRetry; private int retryDelay; - private String transloaditClientHeader; + private String version; /** * Constructs a new instance of the {@link Request} object in to prepare a new HTTP-Request to the Transloadit API. @@ -48,11 +48,11 @@ public class Request { */ Request(Transloadit transloadit) { this.transloadit = transloadit; - this.transloaditClientHeader = transloadit.getTransloaditClientHeader(); this.retryAttemptsRateLimitLeft = transloadit.getRetryAttemptsRateLimit(); this.retryAttemptsRequestExceptionLeft = transloadit.getRetryAttemptsRequestException(); this.qualifiedErrorsForRetry = transloadit.getQualifiedErrorsForRetry(); this.retryDelay = transloadit.getRetryDelay(); + this.version = transloadit.getVersionInfo(); } /** @@ -68,7 +68,7 @@ okhttp3.Response get(String url, Map params) String fullUrl = getFullUrl(url); okhttp3.Request request = new okhttp3.Request.Builder() .url(addUrlParams(fullUrl, toPayload(params))) - .addHeader("Transloadit-Client", this.transloaditClientHeader) + .addHeader("Transloadit-Client", this.version) .build(); try { @@ -117,7 +117,7 @@ okhttp3.Response post(String url, Map params, okhttp3.Request request = new okhttp3.Request.Builder().url(getFullUrl(url)) .post(getBody(payload, files, fileStreams)) - .addHeader("Transloadit-Client", this.transloaditClientHeader) + .addHeader("Transloadit-Client", this.version) .build(); try { @@ -165,7 +165,7 @@ okhttp3.Response delete(String url, Map params) okhttp3.Request request = new okhttp3.Request.Builder() .url(getFullUrl(url)) .delete(getBody(toPayload(params), null)) - .addHeader("Transloadit-Client", this.transloaditClientHeader) + .addHeader("Transloadit-Client", this.version) .build(); try { @@ -195,7 +195,7 @@ okhttp3.Response put(String url, Map data) okhttp3.Request request = new okhttp3.Request.Builder() .url(getFullUrl(url)) .put(getBody(toPayload(data), null)) - .addHeader("Transloadit-Client", this.transloaditClientHeader) + .addHeader("Transloadit-Client", this.version) .build(); try { diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 59d42f9..3da1def 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -17,9 +17,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * This class serves as a client interface to the Transloadit API. @@ -38,7 +35,6 @@ public class Transloadit { protected int retryAttemptsRequestException = 0; // default value protected ArrayList qualifiedErrorsForRetry; protected int retryDelay = 0; // default value - protected ArrayList additionalTransloaditClientHeaderContent; protected String versionInfo; /** @@ -57,7 +53,6 @@ public Transloadit(String key, @Nullable String secret, long duration, String ho this.shouldSignRequest = secret != null; this.qualifiedErrorsForRetry = new ArrayList( Collections.singletonList("java.net.SocketTimeoutException")); - this.additionalTransloaditClientHeaderContent = new ArrayList(); this.versionInfo = loadVersionInfo(); } /** @@ -127,58 +122,13 @@ protected String loadVersionInfo() { } /** - * Returns additional Information which will be sent alongside with the request in the Transloadit-Client Header. - * @return List of additional Transloadit Headers + * Returns a version Info String, which can be sent as header-value with a {@link Request}. + * @return Version info as Header-String */ - public ArrayList getAdditionalTransloaditClientHeaderContent() { - return this.additionalTransloaditClientHeaderContent; + String getVersionInfo() { + return this.versionInfo; } - /** - * Adds Information, which will be sent alongside with the request in the Transloadit-Client Header. - * @param sdkName Name of the used extra Software / SDK - * @param versionNumber Semantic Version Number of the used SDK - * @throws LocalOperationException if version number has a wrong input format or - * the sdkName contains illegal characters - * @return Header String - */ - protected String setAdditionalTransloaditClientHeaderContent(String sdkName, String versionNumber) - throws LocalOperationException { - versionNumber = versionNumber.replaceAll("\\s+", ""); - sdkName = sdkName.replaceAll("\\s+", ""); - Pattern illegalChars = Pattern.compile("[.:,;\"'\\+]", Pattern.CASE_INSENSITIVE); - Pattern semanticVersion = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)", Pattern.CASE_INSENSITIVE); - - Matcher charMatcher = illegalChars.matcher(sdkName); - Matcher versionMatcher = semanticVersion.matcher(versionNumber); - if (charMatcher.find() || (!versionMatcher.matches() && (!versionNumber.equals("unknown")))) { - throw new LocalOperationException("Provided version number does not match expected format of" - + " ^([0-9]+)\\.([0-9]+)\\.([0-9]+)" + " or sdkName contains [.:,;\"'\\+]"); - } - if (versionNumber.equals("0.0.0")) { - versionNumber = "unknown"; - } - - String header = sdkName + ":" + versionNumber; - additionalTransloaditClientHeaderContent.add(header); - return header; - } - - /** - * This method builds the String for the Transloadit Client Header, - * including the SDK Information and all the contents. - * of {@link Transloadit#additionalTransloaditClientHeaderContent}. - * @return String - */ - protected String getTransloaditClientHeader() { - StringBuilder clientHeader = new StringBuilder(this.versionInfo); - if (!this.additionalTransloaditClientHeaderContent.isEmpty()) { - for (String str : additionalTransloaditClientHeaderContent) { - clientHeader.append(", ").append(str); - } - } - return clientHeader.toString(); - } /** * Adjusts number of retry attempts that should be taken if a "RATE_LIMIT_REACHED" error appears diff --git a/src/test/java/com/transloadit/sdk/TransloaditTest.java b/src/test/java/com/transloadit/sdk/TransloaditTest.java index 58c735c..312a05d 100644 --- a/src/test/java/com/transloadit/sdk/TransloaditTest.java +++ b/src/test/java/com/transloadit/sdk/TransloaditTest.java @@ -22,7 +22,6 @@ import java.util.regex.Pattern; //CHECKSTYLE:ON import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -275,53 +274,6 @@ public void getAndSetTimeoutRetry() throws LocalOperationException { } - /** - * Test if AdditionalTransloaditHeaders are working properly. This concerns - * {@link Transloadit#getAdditionalTransloaditClientHeaderContent()} and - * {@link Transloadit#setAdditionalTransloaditClientHeaderContent(String, String)} - */ - @Test - public void getAndSetdditionalTransloaditClientHeaderContent() throws LocalOperationException { - Transloadit testTransloadit = new Transloadit("key", "secret"); - testTransloadit.setAdditionalTransloaditClientHeaderContent(" Test-SDK ", "0.0.1"); - ArrayList headerList = testTransloadit.getAdditionalTransloaditClientHeaderContent(); - String header = (String) headerList.get(0); - assertEquals("Test-SDK:0.0.1", header); - - // Test if exceptions are thrown - Exception ex1 = new Exception(); - try { - testTransloadit.setAdditionalTransloaditClientHeaderContent("Android-SDK", "3.3.3.4"); - } catch (Exception e) { - ex1 = e; - } - - Exception ex2 = new Exception(); - try { - testTransloadit.setAdditionalTransloaditClientHeaderContent("Android,SDK", "3.3.3"); - } catch (Exception e) { - ex2 = e; - } - assertTrue(ex1 instanceof LocalOperationException); - assertTrue(ex2 instanceof LocalOperationException); - - // Test special cases - - Exception ex3 = new Exception(); - String str1 = ""; - String str2 = ""; - try { - str1 = testTransloadit.setAdditionalTransloaditClientHeaderContent("Android-SDK", "unknown"); - str2 = testTransloadit.setAdditionalTransloaditClientHeaderContent("Android-SDK", "0.0.0"); - - } catch (LocalOperationException e) { - ex3 = e; - } - assertFalse(ex3 instanceof LocalOperationException); - assertTrue(str1.contains("unknown")); - assertTrue(str2.contains("unknown")); - } - /** * Tests if the version Info is obtained correctly with {@link Transloadit#loadVersionInfo()}. */ @@ -331,23 +283,7 @@ public void loadVersionInfo() { Pattern versionPattern = Pattern.compile( "^[a-z-]*[:]([0-9]+)\\.([0-9]+)\\.([0-9]+)$", Pattern.CASE_INSENSITIVE); Matcher matcher = versionPattern.matcher(info); - assertTrue(matcher.matches()); + assertTrue(matcher.find()); } - - /** - * This test checks if the Tranlsoadit-CLient Header string is built with - * {@link Transloadit#getTransloaditClientHeader()}. - */ - @Test - public void getTransloaditClientHeader() throws LocalOperationException { - Transloadit testTransloadit = new Transloadit("Key", "Secret"); - String info = testTransloadit.loadVersionInfo(); - testTransloadit.setAdditionalTransloaditClientHeaderContent("android-sdk", "2.2.2"); - testTransloadit.setAdditionalTransloaditClientHeaderContent("Uppy", "11.0.123"); - - String comparisonString = info + ", android-sdk:2.2.2, Uppy:11.0.123"; - assertEquals(comparisonString, testTransloadit.getTransloaditClientHeader()); - } - } From d76a65047ca6d98c2eaa66c0f7d5e90fab63d5f3 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 29 Jan 2022 13:07:40 +0100 Subject: [PATCH 15/18] Changed version.properties location --- build.gradle | 4 ++-- src/main/java/com/transloadit/sdk/Transloadit.java | 2 +- .../version.properties} | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename src/main/resources/{java-sdk-version.properties => java-sdk-version/version.properties} (100%) diff --git a/build.gradle b/build.gradle index 432a9fa..37d293f 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ targetCompatibility = 1.8 group 'com.transloadit.sdk' -def config = new ConfigSlurper().parse(new File("${projectDir}/src/main/resources/java-sdk-version.properties").toURI().toURL()) +def config = new ConfigSlurper().parse(new File("${projectDir}/src/main/resources/java-sdk-version/version.properties").toURI().toURL()) version = config.versionNumber description = "A Java Integration of the Transloadit's (https://transloadit.com) file uploading and encoding service." @@ -26,7 +26,7 @@ dependencies { implementation 'io.tus.java.client:tus-java-client:0.4.5' implementation 'joda-time:joda-time:2.10.13' implementation 'com.squareup.okhttp3:okhttp:4.9.3' - implementation 'org.json:json:20210307' + implementation 'org.json:json:20211205' implementation 'commons-codec:commons-codec:1.15' implementation 'io.socket:socket.io-client:1.0.1' testImplementation 'junit:junit:4.13.2' diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index 3da1def..ee54790 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -108,7 +108,7 @@ public void setRequestSigning(boolean flag) throws LocalOperationException { protected String loadVersionInfo() { Properties prop = new Properties(); String versionInfo; - InputStream in = getClass().getClassLoader().getResourceAsStream("java-sdk-version.properties"); + InputStream in = getClass().getClassLoader().getResourceAsStream("version.properties"); try { prop.load(in); versionInfo = "java-sdk:" + prop.getProperty("versionNumber").replace("'", ""); diff --git a/src/main/resources/java-sdk-version.properties b/src/main/resources/java-sdk-version/version.properties similarity index 100% rename from src/main/resources/java-sdk-version.properties rename to src/main/resources/java-sdk-version/version.properties From 087df6eae25072f34af12f828984cef4837849a6 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 29 Jan 2022 19:52:59 +0100 Subject: [PATCH 16/18] Changed version.properties location in Transloadit.class in order to fix jUnit test, which obtained the version.properties file from the tus library --- src/main/java/com/transloadit/sdk/Transloadit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/transloadit/sdk/Transloadit.java b/src/main/java/com/transloadit/sdk/Transloadit.java index ee54790..acaf2d4 100644 --- a/src/main/java/com/transloadit/sdk/Transloadit.java +++ b/src/main/java/com/transloadit/sdk/Transloadit.java @@ -108,7 +108,7 @@ public void setRequestSigning(boolean flag) throws LocalOperationException { protected String loadVersionInfo() { Properties prop = new Properties(); String versionInfo; - InputStream in = getClass().getClassLoader().getResourceAsStream("version.properties"); + InputStream in = getClass().getClassLoader().getResourceAsStream("java-sdk-version/version.properties"); try { prop.load(in); versionInfo = "java-sdk:" + prop.getProperty("versionNumber").replace("'", ""); From 8032ce2af6dd9c866b32411222c60456536120d1 Mon Sep 17 00:00:00 2001 From: florian <60937022+cdr-chakotay@users.noreply.github.com> Date: Sat, 29 Jan 2022 19:57:21 +0100 Subject: [PATCH 17/18] Prepared 0.4.2 Release --- CHANGELOG.md | 4 ++++ README.md | 4 ++-- src/main/resources/java-sdk-version/version.properties | 2 +- src/test/java/com/transloadit/sdk/RequestTest.java | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b562752..0e38800 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### 0.4.2 / 2021-01-29 ### +* Added possibility for SDKs using this SDK to send their own version number to the server in the Transloadit-Client header as well. +* Resolved some file-name conflicts with the tus_java_client library. + ### 0.4.1 / 2021-09-26 ### * Added debugging features regarding HTTP-requests, which should not be used in production without contacting Transloadit support. diff --git a/README.md b/README.md index 14871c2..74b63bf 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Existing users should take note of the [JCenter shutdown](https://jfrog.com/blog **Gradle:** ```groovy -implementation 'com.transloadit.sdk:transloadit:0.3.0' +implementation 'com.transloadit.sdk:transloadit:0.4.2' ``` **Maven:** @@ -29,7 +29,7 @@ implementation 'com.transloadit.sdk:transloadit:0.3.0' com.transloadit.sdk transloadit - 0.4.1 + 0.4.2 ``` diff --git a/src/main/resources/java-sdk-version/version.properties b/src/main/resources/java-sdk-version/version.properties index dbd933a..052a353 100644 --- a/src/main/resources/java-sdk-version/version.properties +++ b/src/main/resources/java-sdk-version/version.properties @@ -1 +1 @@ -versionNumber='0.4.1' +versionNumber='0.4.2' diff --git a/src/test/java/com/transloadit/sdk/RequestTest.java b/src/test/java/com/transloadit/sdk/RequestTest.java index 4f855f2..0ac2a1e 100644 --- a/src/test/java/com/transloadit/sdk/RequestTest.java +++ b/src/test/java/com/transloadit/sdk/RequestTest.java @@ -61,10 +61,11 @@ public void setUp() throws Exception { public void get() throws Exception { request.get("/foo"); + mockServerClient.verify(HttpRequest.request() .withPath("/foo") .withMethod("GET") - .withHeader("Transloadit-Client", "java-sdk:0.4.1")); + .withHeader("Transloadit-Client", "java-sdk:0.4.2")); } From 380d877c92b31ae3dad43a12d48e375769421794 Mon Sep 17 00:00:00 2001 From: Marius Date: Thu, 3 Feb 2022 10:25:36 +0100 Subject: [PATCH 18/18] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e38800..b987db3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ### 0.4.2 / 2021-01-29 ### -* Added possibility for SDKs using this SDK to send their own version number to the server in the Transloadit-Client header as well. -* Resolved some file-name conflicts with the tus_java_client library. +* Added possibility for SDKs using this SDK to send their own version number to the server in the Transloadit-Client header. +* Resolved some file-name conflicts with the tus-java-client library. ### 0.4.1 / 2021-09-26 ### * Added debugging features regarding HTTP-requests, which should not be used in production without contacting Transloadit support.