From 9a88b6e5887dca8bf93644db8e06e567e8e302ac Mon Sep 17 00:00:00 2001 From: Kaushal Kapasi Date: Fri, 16 Sep 2022 14:21:57 -0400 Subject: [PATCH] update build.gradle to use undercouch download to pull the specific version of DVC Bucketing WASM file before gradle assemble task is called --- build.gradle | 26 +++++++++++----- .../local/api/DVCLocalEventsApiClient.java | 6 ---- src/main/resources/bucketing-lib.release.wasm | Bin 133204 -> 133445 bytes .../sdk/server/cloud/DVCCloudClientTest.java | 29 +++++++++--------- .../sdk/server/common/api/DVCApiMock.java | 7 +++-- .../sdk/server/helpers/TestResponse.java | 11 +++---- .../sdk/server/local/DVCLocalClientTest.java | 6 ++-- .../sdk/server/local/LocalBucketingTest.java | 15 ++++----- 8 files changed, 54 insertions(+), 46 deletions(-) diff --git a/build.gradle b/build.gradle index be102e41..aec7c2be 100755 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ plugins { id 'idea' id 'eclipse' + id 'de.undercouch.download' version '5.2.0' id 'java' id 'java-library' id 'maven' @@ -65,9 +66,9 @@ uploadArchives { developers { developer { - id 'squarepegg' - name 'Nic Pegg' - email 'nic@devcycle.com' + id 'devcycle' + name 'DevCycle Engineering' + email 'support@devcycle.com' organization 'DevCycle' } } @@ -101,6 +102,21 @@ task execute(type:JavaExec) { classpath = sourceSets.main.runtimeClasspath } +def wasmResourcePath = "$projectDir/src/main/resources" +def wasmVersion = "1.1.1" +def wasmUrl = "https://unpkg.com/@devcycle/bucketing-assembly-script@$wasmVersion/build/bucketing-lib.release.wasm" +task downloadDVCBucketingWASM(type: Download) { + src wasmUrl + dest wasmResourcePath + doLast { + println "Completed DVC Bucketing WASM Download to $wasmResourcePath" + } +} + +build { + dependsOn downloadDVCBucketingWASM +} + ext { retrofit_version = "2.9.0" jackson_version = "2.13.3" @@ -129,10 +145,6 @@ dependencies { implementation ("io.github.kawamuray.wasmtime:wasmtime-java:$wasmtime_version") - implementation("com.squareup.okhttp3:logging-interceptor:$okhttp_version") { - exclude group: "com.squareup.okhttp3", module: "okhttp" - } - compileOnly("org.projectlombok:lombok:$lombok_version") testAnnotationProcessor("org.projectlombok:lombok:$lombok_version") diff --git a/src/main/java/com/devcycle/sdk/server/local/api/DVCLocalEventsApiClient.java b/src/main/java/com/devcycle/sdk/server/local/api/DVCLocalEventsApiClient.java index 4208cb63..37800a77 100644 --- a/src/main/java/com/devcycle/sdk/server/local/api/DVCLocalEventsApiClient.java +++ b/src/main/java/com/devcycle/sdk/server/local/api/DVCLocalEventsApiClient.java @@ -7,8 +7,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import okhttp3.OkHttpClient; -import okhttp3.logging.HttpLoggingInterceptor; -import okhttp3.logging.HttpLoggingInterceptor.Level; import retrofit2.Retrofit; import retrofit2.converter.jackson.JacksonConverterFactory; @@ -18,7 +16,6 @@ public final class DVCLocalEventsApiClient { private final OkHttpClient.Builder okBuilder; private final Retrofit.Builder adapterBuilder; - private HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -46,9 +43,6 @@ private DVCLocalEventsApiClient(DVCLocalOptions options) { public DVCLocalEventsApiClient(String serverKey, DVCLocalOptions options) { this(options); okBuilder.addInterceptor(new AuthorizationHeaderInterceptor(serverKey)); - logging.setLevel(Level.BODY); - - okBuilder.addInterceptor(logging); } public IDVCApi initialize() { diff --git a/src/main/resources/bucketing-lib.release.wasm b/src/main/resources/bucketing-lib.release.wasm index 393cff03629faa3686bec29172fa7646bac56eb9..e1f13e07c7c8ea715f4a9335b9fa0b250090e227 100644 GIT binary patch delta 28794 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 QLH)zKwR?_CjMiHIKkciD0RR91 diff --git a/src/test/java/com/devcycle/sdk/server/cloud/DVCCloudClientTest.java b/src/test/java/com/devcycle/sdk/server/cloud/DVCCloudClientTest.java index 0103c05b..0daa621b 100755 --- a/src/test/java/com/devcycle/sdk/server/cloud/DVCCloudClientTest.java +++ b/src/test/java/com/devcycle/sdk/server/cloud/DVCCloudClientTest.java @@ -1,18 +1,6 @@ package com.devcycle.sdk.server.cloud; -import com.devcycle.sdk.server.cloud.api.DVCCloudClient; -import com.devcycle.sdk.server.cloud.model.DVCCloudOptions; -import com.devcycle.sdk.server.common.api.IDVCApi; -import com.devcycle.sdk.server.common.api.DVCApiMock; -import com.devcycle.sdk.server.common.exception.DVCException; -import com.devcycle.sdk.server.common.model.*; -import com.devcycle.sdk.server.helpers.WhiteBox; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import static org.mockito.Mockito.when; import java.math.BigDecimal; import java.time.Instant; @@ -20,7 +8,20 @@ import java.util.Map; import java.util.UUID; -import static org.mockito.Mockito.when; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import com.devcycle.sdk.server.cloud.api.DVCCloudClient; +import com.devcycle.sdk.server.cloud.model.DVCCloudOptions; +import com.devcycle.sdk.server.common.api.DVCApiMock; +import com.devcycle.sdk.server.common.api.IDVCApi; +import com.devcycle.sdk.server.common.exception.DVCException; +import com.devcycle.sdk.server.common.model.*; +import com.devcycle.sdk.server.helpers.WhiteBox; /** * API tests for DevcycleApi diff --git a/src/test/java/com/devcycle/sdk/server/common/api/DVCApiMock.java b/src/test/java/com/devcycle/sdk/server/common/api/DVCApiMock.java index 847ffabe..95e44293 100644 --- a/src/test/java/com/devcycle/sdk/server/common/api/DVCApiMock.java +++ b/src/test/java/com/devcycle/sdk/server/common/api/DVCApiMock.java @@ -1,11 +1,12 @@ package com.devcycle.sdk.server.common.api; -import com.devcycle.sdk.server.helpers.TestResponse; +import java.util.Map; + import com.devcycle.sdk.server.common.model.*; +import com.devcycle.sdk.server.helpers.TestResponse; import com.devcycle.sdk.server.local.model.EventsBatch; -import retrofit2.Call; -import java.util.Map; +import retrofit2.Call; public class DVCApiMock implements IDVCApi { diff --git a/src/test/java/com/devcycle/sdk/server/helpers/TestResponse.java b/src/test/java/com/devcycle/sdk/server/helpers/TestResponse.java index 80a7ab71..c516309f 100644 --- a/src/test/java/com/devcycle/sdk/server/helpers/TestResponse.java +++ b/src/test/java/com/devcycle/sdk/server/helpers/TestResponse.java @@ -1,15 +1,14 @@ package com.devcycle.sdk.server.helpers; -import com.devcycle.sdk.server.common.model.DVCResponse; -import com.devcycle.sdk.server.common.model.Feature; -import com.devcycle.sdk.server.common.model.Variable; -import retrofit2.Call; -import retrofit2.mock.Calls; - import java.util.HashMap; import java.util.Map; import java.util.UUID; +import com.devcycle.sdk.server.common.model.*; + +import retrofit2.Call; +import retrofit2.mock.Calls; + public final class TestResponse { private TestResponse() { diff --git a/src/test/java/com/devcycle/sdk/server/local/DVCLocalClientTest.java b/src/test/java/com/devcycle/sdk/server/local/DVCLocalClientTest.java index 48371f8d..c3801ebc 100644 --- a/src/test/java/com/devcycle/sdk/server/local/DVCLocalClientTest.java +++ b/src/test/java/com/devcycle/sdk/server/local/DVCLocalClientTest.java @@ -3,9 +3,6 @@ import java.util.Map; import java.util.UUID; -import com.devcycle.sdk.server.common.model.PlatformData; -import com.devcycle.sdk.server.local.managers.EventQueueManager; -import com.devcycle.sdk.server.local.model.DVCLocalOptions; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; @@ -13,11 +10,14 @@ import org.mockito.junit.MockitoJUnitRunner; import com.devcycle.sdk.server.common.model.Feature; +import com.devcycle.sdk.server.common.model.PlatformData; import com.devcycle.sdk.server.common.model.User; import com.devcycle.sdk.server.common.model.Variable; import com.devcycle.sdk.server.helpers.WhiteBox; import com.devcycle.sdk.server.local.api.DVCLocalClient; import com.devcycle.sdk.server.local.bucketing.LocalBucketing; +import com.devcycle.sdk.server.local.managers.EventQueueManager; +import com.devcycle.sdk.server.local.model.DVCLocalOptions; @RunWith(MockitoJUnitRunner.class) public class DVCLocalClientTest { diff --git a/src/test/java/com/devcycle/sdk/server/local/LocalBucketingTest.java b/src/test/java/com/devcycle/sdk/server/local/LocalBucketingTest.java index 88115600..f190abef 100644 --- a/src/test/java/com/devcycle/sdk/server/local/LocalBucketingTest.java +++ b/src/test/java/com/devcycle/sdk/server/local/LocalBucketingTest.java @@ -1,5 +1,13 @@ package com.devcycle.sdk.server.local; +import java.util.UUID; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; + import com.devcycle.sdk.server.common.model.Event; import com.devcycle.sdk.server.common.model.User; import com.devcycle.sdk.server.local.bucketing.LocalBucketing; @@ -7,13 +15,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; - -import java.util.UUID; @RunWith(MockitoJUnitRunner.class) public class LocalBucketingTest {