From 3a84c6816678825fa241cbeef8c4ac2b1f88590b Mon Sep 17 00:00:00 2001 From: moiz arafat Date: Thu, 21 May 2020 09:38:43 -0400 Subject: [PATCH 1/5] misc_fixes --- .../yahoo/elide/async/models/AsyncQuery.java | 2 ++ .../elide/async/models/AsyncQueryResult.java | 2 ++ .../async/service/AsyncExecutorService.java | 1 + .../service/AsyncQueryCleanerThread.java | 4 +++- .../service/AsyncQueryCleanerThreadTest.java | 19 ++++++++++++++++++- .../coerce/converters/ISO8601DateSerde.java | 4 ++++ .../elide/spring/config/AsyncProperties.java | 2 ++ .../config/SwaggerControllerProperties.java | 2 ++ .../spring/controllers/GraphqlController.java | 1 + .../spring/controllers/SwaggerController.java | 5 ++++- .../example/models/jpa/v2/package-info.java | 3 +++ .../java/example/tests/ControllerTest.java | 3 ++- .../src/test/resources/application.yaml | 1 - 13 files changed, 44 insertions(+), 5 deletions(-) diff --git a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java index 2443509aa6..5562eab20e 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java @@ -12,6 +12,7 @@ import com.yahoo.elide.annotation.UpdatePermission; import lombok.Data; +import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -32,6 +33,7 @@ @UpdatePermission(expression = "Prefab.Role.None") @DeletePermission(expression = "Prefab.Role.None") @Data +@EqualsAndHashCode(callSuper = false) public class AsyncQuery extends AsyncBase implements PrincipalOwned { @Id @Column(columnDefinition = "varchar(36)") diff --git a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java index fc3e192057..a8d06ae5ff 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java @@ -13,6 +13,7 @@ import com.yahoo.elide.annotation.UpdatePermission; import lombok.Data; +import lombok.EqualsAndHashCode; import javax.persistence.Column; import javax.persistence.Entity; @@ -29,6 +30,7 @@ @CreatePermission(expression = "Prefab.Role.None") @DeletePermission(expression = "Prefab.Role.None") @Data +@EqualsAndHashCode(callSuper = false) public class AsyncQueryResult extends AsyncBase implements PrincipalOwned { @Id @Column(columnDefinition = "varchar(36)") diff --git a/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncExecutorService.java b/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncExecutorService.java index a4a0f56f53..549c6898e6 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncExecutorService.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncExecutorService.java @@ -85,6 +85,7 @@ public synchronized static AsyncExecutorService getInstance() { * Execute Query asynchronously. * @param queryObj Query Object * @param user User + * @param apiVersion api version */ public void executeQuery(AsyncQuery queryObj, User user, String apiVersion) { QueryRunner runner = runners.get(apiVersion); diff --git a/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java b/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java index fb24bb4872..654bdbbc9c 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java @@ -7,6 +7,7 @@ import com.yahoo.elide.Elide; import com.yahoo.elide.async.models.QueryStatus; +import com.yahoo.elide.utils.coerce.converters.ISO8601DateSerde; import lombok.AllArgsConstructor; import lombok.Data; @@ -77,7 +78,8 @@ private String evaluateFormattedFilterDate(int calendarUnit, int amount) { cal.setTime(new Date()); cal.add(calendarUnit, -(amount)); Date filterDate = cal.getTime(); - Format dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); + ISO8601DateSerde serde = (ISO8601DateSerde) elide.getElideSettings().getSerdes().get(Date.class); + Format dateFormat = new SimpleDateFormat(serde.getFormat()); String filterDateFormatted = dateFormat.format(filterDate); log.debug("FilterDateFormatted = {}", filterDateFormatted); return filterDateFormatted; diff --git a/elide-async/src/test/java/com/yahoo/elide/async/service/AsyncQueryCleanerThreadTest.java b/elide-async/src/test/java/com/yahoo/elide/async/service/AsyncQueryCleanerThreadTest.java index a9e1b987c4..ad3189eeca 100644 --- a/elide-async/src/test/java/com/yahoo/elide/async/service/AsyncQueryCleanerThreadTest.java +++ b/elide-async/src/test/java/com/yahoo/elide/async/service/AsyncQueryCleanerThreadTest.java @@ -13,11 +13,20 @@ import static org.mockito.Mockito.verify; import com.yahoo.elide.Elide; +import com.yahoo.elide.ElideSettingsBuilder; +import com.yahoo.elide.async.models.AsyncQuery; import com.yahoo.elide.async.models.QueryStatus; +import com.yahoo.elide.core.EntityDictionary; +import com.yahoo.elide.core.datastore.inmemory.HashMapDataStore; +import com.yahoo.elide.security.checks.Check; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.util.HashMap; +import java.util.Map; +import java.util.TimeZone; + public class AsyncQueryCleanerThreadTest { private AsyncQueryCleanerThread cleanerThread; @@ -26,7 +35,15 @@ public class AsyncQueryCleanerThreadTest { @BeforeEach public void setupMocks() { - elide = mock(Elide.class); + HashMapDataStore inMemoryStore = new HashMapDataStore(AsyncQuery.class.getPackage()); + Map> checkMappings = new HashMap<>(); + + elide = new Elide( + new ElideSettingsBuilder(inMemoryStore) + .withEntityDictionary(new EntityDictionary(checkMappings)) + .withISO8601Dates("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC")) + .build()); + asyncQueryDao = mock(DefaultAsyncQueryDAO.class); cleanerThread = new AsyncQueryCleanerThread(7, elide, 7, asyncQueryDao); } diff --git a/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java b/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java index ef28ae115a..9887418dd2 100644 --- a/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java +++ b/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java @@ -66,4 +66,8 @@ public Date deserialize(String val) { public String serialize(Date val) { return df.format(val); } + + public String getFormat() { + return df.getPattern(); + } } diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java index f95941ad22..9e1699ddf4 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java @@ -6,11 +6,13 @@ package com.yahoo.elide.spring.config; import lombok.Data; +import lombok.EqualsAndHashCode; /** * Extra properties for setting up async query support. */ @Data +@EqualsAndHashCode(callSuper = false) public class AsyncProperties extends ControllerProperties { /** diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java index b13002116f..75b025acbd 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java @@ -6,11 +6,13 @@ package com.yahoo.elide.spring.config; import lombok.Data; +import lombok.EqualsAndHashCode; /** * Extra controller properties for the Swagger document endpoint. */ @Data +@EqualsAndHashCode(callSuper = false) public class SwaggerControllerProperties extends ControllerProperties { /** diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/GraphqlController.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/GraphqlController.java index 8b0bd55625..9892a3492b 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/GraphqlController.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/GraphqlController.java @@ -62,6 +62,7 @@ public GraphqlController(Elide elide) { /** * Single entry point for GraphQL requests. * + * @param requestHeaders request headers * @param graphQLDocument post data as json document * @param principal The user principal * @return response diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/SwaggerController.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/SwaggerController.java index 55cb67c35b..e6f41648a0 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/SwaggerController.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/controllers/SwaggerController.java @@ -77,8 +77,10 @@ public SwaggerController(List docs) { public SwaggerController(Swagger doc) { log.debug("Started ~~"); documents = new HashMap<>(); + String apiVersion = doc.getInfo().getVersion(); + apiVersion = apiVersion == null ? NO_VERSION : apiVersion; - documents.put(Pair.of(NO_VERSION, ""), SwaggerBuilder.getDocument(doc)); + documents.put(Pair.of(apiVersion, ""), SwaggerBuilder.getDocument(doc)); } @GetMapping(value = {"/", ""}, produces = JSON_CONTENT_TYPE) @@ -111,6 +113,7 @@ public ResponseEntity call() throws Exception { /** * Read handler. * + * @param requestHeaders request headers * @param name document name * @return response The Swagger JSON document */ diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/models/jpa/v2/package-info.java b/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/models/jpa/v2/package-info.java index ed9eaa2bdb..bb06bbfd19 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/models/jpa/v2/package-info.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/models/jpa/v2/package-info.java @@ -3,6 +3,9 @@ * Licensed under the Apache License, Version 2.0 * See LICENSE file in project root for terms. */ +/** + * Models Package V2. + */ @ApiVersion(version = "1.0") package example.models.jpa.v2; diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/tests/ControllerTest.java b/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/tests/ControllerTest.java index 7d0031e87f..cfca612c80 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/tests/ControllerTest.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/test/java/example/tests/ControllerTest.java @@ -363,7 +363,8 @@ public void swaggerDocumentTest() { .statusCode(HttpStatus.SC_OK) .body("tags.name", containsInAnyOrder("group", "functionArgument", "metric", "metricFunction", "dimension", "column", "table", "asyncQuery", "asyncQueryResult", - "timeDimensionGrain", "timeDimension")); + "timeDimensionGrain", "timeDimension", "product", "playerCountry", "version", "playerStats", + "stats")); } @Test diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/test/resources/application.yaml b/elide-spring/elide-spring-boot-autoconfigure/src/test/resources/application.yaml index 0403f64509..d5e9bde87b 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/test/resources/application.yaml +++ b/elide-spring/elide-spring-boot-autoconfigure/src/test/resources/application.yaml @@ -12,7 +12,6 @@ elide: swagger: path: /doc enabled: true - version: "1.0" async: enabled: true threadPoolSize: 7 From e626af2bf15f06f93c5a28cf6921e7919979b58e Mon Sep 17 00:00:00 2001 From: moiz arafat Date: Thu, 21 May 2020 16:25:55 -0400 Subject: [PATCH 2/5] review comments --- .../src/main/java/com/yahoo/elide/async/models/AsyncQuery.java | 2 -- .../java/com/yahoo/elide/async/models/AsyncQueryResult.java | 2 -- .../java/com/yahoo/elide/spring/config/AsyncProperties.java | 2 -- .../yahoo/elide/spring/config/SwaggerControllerProperties.java | 2 -- 4 files changed, 8 deletions(-) diff --git a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java index 5562eab20e..2443509aa6 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQuery.java @@ -12,7 +12,6 @@ import com.yahoo.elide.annotation.UpdatePermission; import lombok.Data; -import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -33,7 +32,6 @@ @UpdatePermission(expression = "Prefab.Role.None") @DeletePermission(expression = "Prefab.Role.None") @Data -@EqualsAndHashCode(callSuper = false) public class AsyncQuery extends AsyncBase implements PrincipalOwned { @Id @Column(columnDefinition = "varchar(36)") diff --git a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java index a8d06ae5ff..fc3e192057 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/models/AsyncQueryResult.java @@ -13,7 +13,6 @@ import com.yahoo.elide.annotation.UpdatePermission; import lombok.Data; -import lombok.EqualsAndHashCode; import javax.persistence.Column; import javax.persistence.Entity; @@ -30,7 +29,6 @@ @CreatePermission(expression = "Prefab.Role.None") @DeletePermission(expression = "Prefab.Role.None") @Data -@EqualsAndHashCode(callSuper = false) public class AsyncQueryResult extends AsyncBase implements PrincipalOwned { @Id @Column(columnDefinition = "varchar(36)") diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java index 9e1699ddf4..f95941ad22 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/AsyncProperties.java @@ -6,13 +6,11 @@ package com.yahoo.elide.spring.config; import lombok.Data; -import lombok.EqualsAndHashCode; /** * Extra properties for setting up async query support. */ @Data -@EqualsAndHashCode(callSuper = false) public class AsyncProperties extends ControllerProperties { /** diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java index 75b025acbd..b13002116f 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/SwaggerControllerProperties.java @@ -6,13 +6,11 @@ package com.yahoo.elide.spring.config; import lombok.Data; -import lombok.EqualsAndHashCode; /** * Extra controller properties for the Swagger document endpoint. */ @Data -@EqualsAndHashCode(callSuper = false) public class SwaggerControllerProperties extends ControllerProperties { /** From 15261c31fbff9aef6476cae0a7509b346c8a63b0 Mon Sep 17 00:00:00 2001 From: moiz arafat Date: Thu, 28 May 2020 21:08:19 -0400 Subject: [PATCH 3/5] Review Comments --- .../async/service/AsyncQueryCleanerThread.java | 4 +--- .../utils/coerce/converters/ISO8601DateSerde.java | 4 ---- .../standalone/config/ElideResourceConfig.java | 14 +++++++++++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java b/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java index 654bdbbc9c..fb24bb4872 100644 --- a/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java +++ b/elide-async/src/main/java/com/yahoo/elide/async/service/AsyncQueryCleanerThread.java @@ -7,7 +7,6 @@ import com.yahoo.elide.Elide; import com.yahoo.elide.async.models.QueryStatus; -import com.yahoo.elide.utils.coerce.converters.ISO8601DateSerde; import lombok.AllArgsConstructor; import lombok.Data; @@ -78,8 +77,7 @@ private String evaluateFormattedFilterDate(int calendarUnit, int amount) { cal.setTime(new Date()); cal.add(calendarUnit, -(amount)); Date filterDate = cal.getTime(); - ISO8601DateSerde serde = (ISO8601DateSerde) elide.getElideSettings().getSerdes().get(Date.class); - Format dateFormat = new SimpleDateFormat(serde.getFormat()); + Format dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); String filterDateFormatted = dateFormat.format(filterDate); log.debug("FilterDateFormatted = {}", filterDateFormatted); return filterDateFormatted; diff --git a/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java b/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java index 9887418dd2..ef28ae115a 100644 --- a/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java +++ b/elide-core/src/main/java/com/yahoo/elide/utils/coerce/converters/ISO8601DateSerde.java @@ -66,8 +66,4 @@ public Date deserialize(String val) { public String serialize(Date val) { return df.format(val); } - - public String getFormat() { - return df.getPattern(); - } } diff --git a/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java b/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java index 1b671d234d..f076aeeace 100644 --- a/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java +++ b/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java @@ -11,6 +11,7 @@ import com.yahoo.elide.Elide; import com.yahoo.elide.ElideSettings; +import com.yahoo.elide.ElideSettingsBuilder; import com.yahoo.elide.async.hooks.ExecuteQueryHook; import com.yahoo.elide.async.hooks.UpdatePrincipalNameHook; import com.yahoo.elide.async.models.AsyncQuery; @@ -22,6 +23,7 @@ import com.yahoo.elide.contrib.swagger.resources.DocEndpoint; import com.yahoo.elide.core.DataStore; import com.yahoo.elide.core.EntityDictionary; +import com.yahoo.elide.core.filter.dialect.RSQLFilterDialect; import com.yahoo.elide.datastores.aggregation.QueryEngine; import com.yahoo.elide.datastores.aggregation.metadata.MetaDataStore; import com.yahoo.elide.standalone.Util; @@ -39,6 +41,7 @@ import java.util.List; import java.util.Optional; import java.util.Set; +import java.util.TimeZone; import java.util.function.Consumer; import javax.inject.Inject; import javax.persistence.EntityManagerFactory; @@ -113,9 +116,18 @@ protected void configure() { // Binding async service if (settings.enableAsync()) { + // Creating a new ElideSettings and Elide object for Async services + // which will have ISO8601 Dates. Used for DefaultAsyncQueryDAO. + ElideSettings asyncElideSettings = new ElideSettingsBuilder(elideSettings.getDataStore()) + .withEntityDictionary(elideSettings.getDictionary()) + .withISO8601Dates("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC")) + .build(); + + Elide asyncElide = new Elide(asyncElideSettings); + AsyncQueryDAO asyncQueryDao = settings.getAsyncQueryDAO(); if (asyncQueryDao == null) { - asyncQueryDao = new DefaultAsyncQueryDAO(elide, elide.getDataStore()); + asyncQueryDao = new DefaultAsyncQueryDAO(asyncElide, asyncElide.getDataStore()); } bind(asyncQueryDao).to(AsyncQueryDAO.class); From 9ac355f553692847c39b08445521a2d721f9c33d Mon Sep 17 00:00:00 2001 From: moiz arafat Date: Tue, 2 Jun 2020 17:37:54 -0400 Subject: [PATCH 4/5] DyFixes --- .../elide-dynamic-config-helpers/pom.xml | 16 ++++------------ .../spring/config/ElideAsyncConfiguration.java | 10 ++++++++++ .../standalone/config/ElideResourceConfig.java | 1 - 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/elide-contrib/elide-dynamic-config-helpers/pom.xml b/elide-contrib/elide-dynamic-config-helpers/pom.xml index a55c1eb7f9..a698a5a7b6 100644 --- a/elide-contrib/elide-dynamic-config-helpers/pom.xml +++ b/elide-contrib/elide-dynamic-config-helpers/pom.xml @@ -142,19 +142,11 @@ maven-checkstyle-plugin - maven-assembly-plugin - - - package - - single - - - + org.apache.maven.plugins + maven-compiler-plugin - - jar-with-dependencies - + 1.8 + 1.8 diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java index 529d219709..4282bfb57a 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java @@ -10,6 +10,8 @@ import static com.yahoo.elide.annotation.LifeCycleHookBinding.TransactionPhase.PRESECURITY; import com.yahoo.elide.Elide; +import com.yahoo.elide.ElideSettings; +import com.yahoo.elide.ElideSettingsBuilder; import com.yahoo.elide.async.hooks.ExecuteQueryHook; import com.yahoo.elide.async.hooks.UpdatePrincipalNameHook; import com.yahoo.elide.async.models.AsyncQuery; @@ -27,6 +29,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.TimeZone; + /** * Async Configuration For Elide Services. Override any of the beans (by defining your own) * and setting flags to disable in properties to change the default behavior. @@ -88,6 +92,12 @@ public AsyncCleanerService buildAsyncCleanerService(Elide elide, ElideConfigProp @ConditionalOnMissingBean @ConditionalOnProperty(prefix = "elide.async", name = "defaultAsyncQueryDAO", matchIfMissing = true) public AsyncQueryDAO buildAsyncQueryDAO(Elide elide) { + // Creating a new ElideSettings and Elide object for Async services + // which will have ISO8601 Dates. Used for DefaultAsyncQueryDAO. + ElideSettings asyncElideSettings = new ElideSettingsBuilder(elide.getDataStore()) + .withEntityDictionary(elide.getElideSettings().getDictionary()) + .withISO8601Dates("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC")) + .build(); return new DefaultAsyncQueryDAO(elide, elide.getDataStore()); } } diff --git a/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java b/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java index f076aeeace..3e9ab7c2a2 100644 --- a/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java +++ b/elide-standalone/src/main/java/com/yahoo/elide/standalone/config/ElideResourceConfig.java @@ -23,7 +23,6 @@ import com.yahoo.elide.contrib.swagger.resources.DocEndpoint; import com.yahoo.elide.core.DataStore; import com.yahoo.elide.core.EntityDictionary; -import com.yahoo.elide.core.filter.dialect.RSQLFilterDialect; import com.yahoo.elide.datastores.aggregation.QueryEngine; import com.yahoo.elide.datastores.aggregation.metadata.MetaDataStore; import com.yahoo.elide.standalone.Util; From ddd24533afc09dc606f8ac08f8515ec3d204dd7e Mon Sep 17 00:00:00 2001 From: moiz arafat Date: Tue, 2 Jun 2020 18:58:22 -0400 Subject: [PATCH 5/5] DyFixes --- .../com/yahoo/elide/spring/config/ElideAsyncConfiguration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java index 4282bfb57a..664c9b3723 100644 --- a/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java +++ b/elide-spring/elide-spring-boot-autoconfigure/src/main/java/com/yahoo/elide/spring/config/ElideAsyncConfiguration.java @@ -98,6 +98,7 @@ public AsyncQueryDAO buildAsyncQueryDAO(Elide elide) { .withEntityDictionary(elide.getElideSettings().getDictionary()) .withISO8601Dates("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC")) .build(); - return new DefaultAsyncQueryDAO(elide, elide.getDataStore()); + Elide asyncElide = new Elide(asyncElideSettings); + return new DefaultAsyncQueryDAO(asyncElide, asyncElide.getDataStore()); } }